ExParamsSchema.Definition (ex_params_schema v0.1.0)

Copy Markdown View Source

DSL と map 形式のフィールド定義を正規化・検証します。

このモジュールは関連する機能をまとめる入口です。個別の処理は NormalizerValidatorCompiler に分割されています。

Summary

Functions

map 形式のスキーマ定義を検証済みフィールドへコンパイルします。

フィールド定義をパーサーが利用する構造体へコンパイルします。

map 形式のスキーマをフィールド定義のリストへ変換します。

DSL option と JSON Schema keyword の対応を返します。

1 つの型定義を型と option に分解し、内部表現へ正規化します。

フィールド定義全体を正規化し、名前と入力キーの重複を検証します。

Types

normalized_definition()

@type normalized_definition() ::
  {type :: ExParamsSchema.field_type(),
   options :: ExParamsSchema.field_options()}

Functions

compile!(schema)

@spec compile!(%{required(atom()) => ExParamsSchema.definition()}) :: [
  ExParamsSchema.Definition.Field.t()
]

map 形式のスキーマ定義を検証済みフィールドへコンパイルします。

compile_fields!(fields)

@spec compile_fields!([ExParamsSchema.field()]) :: [
  ExParamsSchema.Definition.Field.t()
]

フィールド定義をパーサーが利用する構造体へコンパイルします。

fields_from_map!(schema)

@spec fields_from_map!(%{required(atom()) => ExParamsSchema.definition()}) :: [
  ExParamsSchema.field()
]

map 形式のスキーマをフィールド定義のリストへ変換します。

json_schema_options()

@spec json_schema_options() :: Keyword.t(String.t())

DSL option と JSON Schema keyword の対応を返します。

normalize!(definition)

1 つの型定義を型と option に分解し、内部表現へ正規化します。

normalize_fields!(fields)

@spec normalize_fields!([ExParamsSchema.field()]) :: [ExParamsSchema.field()]

フィールド定義全体を正規化し、名前と入力キーの重複を検証します。