JSV.ErrorFormatter (jsv v0.8.1)

View Source

Error formatting helpers.

Errors are grouped by:

  • Instance location: the bit of data that was invalidated
  • Schema location: the part of the schema that invalidated it
  • Evaluation path: the path followed from the root to this schema location

Summary

Functions

Returns a JSON-able version of the errors contained in the ValidationError.

Returns an output unit with valid: true for the given JSV.Validator. This can be substitued to an Error struct in the nested details of an error. Mostly used to show multiple validated schemas with :oneOf.

Types

annotation()

@type annotation() :: %{
  :valid => boolean(),
  :instanceLocation => binary(),
  :evaluationPath => binary(),
  :schemaLocation => binary(),
  optional(:errors) => [collected_error()],
  optional(:detail) => [annotation()]
}

collected_error()

@type collected_error() :: %{
  :kind => atom(),
  :message => String.t(),
  optional(:detail) => [annotation()]
}

raw_path()

@type raw_path() :: [raw_path()] | binary() | integer() | atom()

Functions

format_data_path(rev_data_path)

@spec format_data_path(raw_path()) :: String.t()

normalize_error(e, opts \\ [])

@spec normalize_error(
  JSV.ValidationError.t(),
  keyword()
) :: map()

Returns a JSON-able version of the errors contained in the ValidationError.

This is generatlly useful to generate HTTP API responses or message broker responses.

Options

  • :sort - Either :asc or :desc. Defaults to :desc so the most deeply nested errors, i.e the root cause of errors, are displayed first. Errors are sorted by instanceLocation.

valid_annot(subschema, vctx)

Returns an output unit with valid: true for the given JSV.Validator. This can be substitued to an Error struct in the nested details of an error. Mostly used to show multiple validated schemas with :oneOf.