Class SchemaBase<T>Abstract

A base class for validation state. Provides methods for chaining.

Subclass constructors must accept a single argument: the new validator.

Type Parameters

  • in out T

Hierarchy (view full)

Implements

Constructors

  • Constructs the first link in a schema chain.

    Type Parameters

    • in out T

    Parameters

    Returns SchemaBase<T>

  • Constructs linking to the given previous schema.

    Type Parameters

    • in out T

    Parameters

    Returns SchemaBase<T>

Properties

__type: Invariant<T> = ...

Enforces T is in an invariant position. This prevents a validator with more strict rules is assigned to a less strict type, which can cause unexpected validation errors.

currentValidator: Validator<any, any>
operation?: ((validatorA: Validator<any, unknown>, validatorB: Validator<any, any>) => Validator<T, unknown>)
previousSchema?: SchemaBase<any>

Accessors

  • get description(): string
  • A short description of the validator.

    Returns string

Methods

  • Validates the given input, asserting that the input is type T. If the input is not valid, a ValidationError will be thrown.

    Parameters

    • input: unknown

      The input to validate.

    • Optionalorigin: string

      The error origin. ErrorOrigin.API by default.

    • Optionalpath: readonly string[]

      The current field path to this validator.

    Returns asserts input is T

    Returns the input, cast as the validated type T

  • Constructs a new schema with a validator chaining the current validator with the provided next in an AND operation.

    Parameters

    • nextValidator: Validator<any, any>

      The validator to run after the current.

    Returns any

    Returns a new Schema instance the same class with a new validator chaining the current validator with the given next in an AND operation.

  • Clones this schema, transforming all validators with the given mutator.

    Parameters

    • transform: ((validator: Validator<any, unknown>) => Validator<any, unknown>)

      A transformer which takes an existing validator in the chain and returns a new one. Validators should be considered to be immutable; transform should not change the input but instead return a new validator.

    Returns any

  • Returns true if the input is valid according to this validator.

    Parameters

    • input: unknown

    Returns input is T

  • Parameters

    Returns any

  • Parameters

    Returns any

  • Validates the provided input, returning a list of error messages, or an empty array if the input passes this validator.

    Parameters

    • input: unknown

      The input to validate.

    • Optionaloptions: ValidationOptions

      Validation options.

    • Optionalpath: readonly string[]

      The current field path to this validator.

    Returns readonly ValidationErrorMessage[]

    Returns an array of validation failures. If options.all is not true, only the first error will be returned.