変換済みの値を JSON Schema 検証用の JSON 互換の値へ変換します。
日付、日時、enum、custom type、ネストした object・array の表現を変換します。
Summary
Functions
@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"}
@spec project_value( ExParamsSchema.Definition.Field.normalized_type(), ExParamsSchema.value() ) :: ExParamsSchema.value()
型に応じて単一の値を JSON 互換の値へ変換します。
iex> ExParamsSchema.Schema.Projector.project_value({:array, :date, []}, [~D[2026-07-22]])
["2026-07-22"]