CliSubprocessCore.Schema (CliSubprocessCore v0.1.0)

Copy Markdown View Source

Canonical schema helpers and shared validation error types for common-lane dynamic boundaries.

Summary

Types

error_detail()

@type error_detail() :: %{
  message: String.t(),
  errors: map(),
  issues: [issue_detail()]
}

issue_detail()

@type issue_detail() :: %{code: atom(), message: String.t(), path: [term()]}

parse_error(tag)

@type parse_error(tag) :: {tag, error_detail()}

Functions

error_details(errors)

@spec error_details([Zoi.Error.t()]) :: error_detail()

merge_extra(projected, extra)

@spec merge_extra(map(), map()) :: map()

parse(schema, value, tag)

@spec parse(Zoi.schema(), term(), term()) ::
  {:ok, term()} | {:error, parse_error(term())}

parse!(schema, value, tag)

@spec parse!(Zoi.schema(), term(), term()) :: term()

split_extra(map, keys)

@spec split_extra(map(), [term()]) :: {map(), map()}

to_map(struct, keys)

@spec to_map(
  struct(),
  [atom()]
) :: map()