Centralized module registry for Exonerate.
Consolidates all module lookups (types, combining filters, object filters, array filters, format validators) into a single module for easier maintenance and discoverability.
Summary
Functions
Returns all type names.
Returns the module for an array filter.
Returns all array filter modules.
Returns all built-in format names (including those without dedicated modules).
Returns the module for a combining filter.
Returns true if the given filter name is a standard combining filter.
Returns the standard combining filter names (excludes dependentSchemas).
Returns the module for a format validator.
Returns all format module mappings.
Generic module lookup by category.
Returns the module for an object filter.
Returns the finalizer object filter modules.
Returns the iterator object filter modules.
Returns the outer object filter modules (non-iterator).
Returns the module for a JSON type.
Functions
@spec all_types() :: [String.t()]
Returns all type names.
Returns the module for an array filter.
Examples
iex> Exonerate.Modules.array_filter("items")
Exonerate.Filter.Items
iex> Exonerate.Modules.array_filter("uniqueItems")
Exonerate.Filter.UniqueItems
Returns all array filter modules.
Returns all built-in format names (including those without dedicated modules).
Returns the module for a combining filter.
Examples
iex> Exonerate.Modules.combining("allOf")
Exonerate.Combining.AllOf
iex> Exonerate.Modules.combining("$ref")
Exonerate.Combining.Ref
iex> Exonerate.Modules.combining("dependentSchemas")
Exonerate.Combining.DependentSchemas
Returns true if the given filter name is a standard combining filter.
Note: Returns false for "dependentSchemas" since it's object-specific.
For a check that includes all combining-style filters, use combining/1 != nil.
@spec combining_filters() :: [String.t()]
Returns the standard combining filter names (excludes dependentSchemas).
These are the combining filters that apply to all types, not just objects.
Returns the module for a format validator.
Examples
iex> Exonerate.Modules.format("email")
Exonerate.Formats.Email
iex> Exonerate.Modules.format("uri")
Exonerate.Formats.Uri
Returns all format module mappings.
Generic module lookup by category.
Categories
:type- JSON type modules:combining- Combining filter modules:object- Object filter modules:array- Array filter modules:format- Format validator modules
Examples
iex> Exonerate.Modules.lookup(:type, "string")
Exonerate.Type.String
iex> Exonerate.Modules.lookup(:combining, "allOf")
Exonerate.Combining.AllOf
Returns the module for an object filter.
Examples
iex> Exonerate.Modules.object_filter("properties")
Exonerate.Filter.Properties
iex> Exonerate.Modules.object_filter("required")
Exonerate.Filter.Required
Returns the finalizer object filter modules.
Returns the iterator object filter modules.
Returns the outer object filter modules (non-iterator).
Returns the module for a JSON type.
Examples
iex> Exonerate.Modules.type("string")
Exonerate.Type.String
iex> Exonerate.Modules.type("object")
Exonerate.Type.Object