Sycophant.Schema.Normalizer (sycophant v0.4.2)

Copy Markdown

Normalizes Zoi or JSON Schema input into a NormalizedSchema.

Zoi structs are converted to JSON Schema via JsonSchema.to_json_schema/1, then additionalProperties: false is injected recursively on object types. Plain maps are stringified and resolved directly without injection. Both paths downgrade Draft 2020-12 keywords (prefixItems -> items).

Summary

Functions

Normalizes a Zoi or JSON Schema into a NormalizedSchema with a pre-resolved schema for validation.

Functions

normalize(schema)

@spec normalize(Zoi.schema() | map()) ::
  {:ok, Sycophant.Schema.NormalizedSchema.t()} | {:error, Splode.Error.t()}

Normalizes a Zoi or JSON Schema into a NormalizedSchema with a pre-resolved schema for validation.