ExParamsSchema.Schema.Projector (ex_params_schema v0.1.0)

Copy Markdown View Source

変換済みの値を JSON Schema 検証用の JSON 互換の値へ変換します。

日付、日時、enum、custom type、ネストした object・array の表現を変換します。

Summary

Functions

検証済みのフィールド値を JSON 互換の map へ変換します。

型に応じて単一の値を JSON 互換の値へ変換します。

Functions

project(fields, parsed)

@spec project([ExParamsSchema.Definition.Field.t()], map()) :: map()

検証済みのフィールド値を JSON 互換の map へ変換します。

省略可能なフィールドの nil は出力から除外します。

iex> fields = ExParamsSchema.Definition.compile_fields!([
...>   {:published_on, :date, []},
...>   {:label, :string, [optional: true]}
...> ])
iex> ExParamsSchema.Schema.Projector.project(fields, %{published_on: ~D[2026-07-23], label: nil})
%{"published_on" => "2026-07-23"}

project_value(arg1, value)

型に応じて単一の値を JSON 互換の値へ変換します。

iex> ExParamsSchema.Schema.Projector.project_value({:array, :date, []}, [~D[2026-07-22]])
["2026-07-22"]