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

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

Hierarchy (view full)

Constructors

Properties

__type: Invariant<string> = ...

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<string, unknown>)
previousSchema?: SchemaBase<any>
base: StringSchema = ...

Accessors

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

    Returns string

Methods

  • Returns a validator that asserts if this validator and the next passes.

    Type Parameters

    • U

    Parameters

    • nextValidator: Validator<U, any>

      The validator to run after the current.

    Returns ValueSchema<string & U>

    Returns a new ValueSchema intersecting this validator and the next.

    andValidators

  • 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 string

    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 string

  • Creates a validator that asserts that the input string matches the given regex.

    Parameters

    • regex: RegExp

    Returns StringSchema

  • Creates a validator that asserts that the input string has at most the given maximum length.

    Parameters

    • max: number

      The string must be at most this length.

    Returns StringSchema

  • Prepends this validator allowing for null or undefined.

    Returns ValueSchema<undefined | null | string>

  • Creates a validator that asserts that the input string has at least the given minimum length.

    Parameters

    • min: number

      The string must be at least this length.

    Returns StringSchema

  • Creates a validator that asserts that the input string has no whitespace characters. Whitespace characters include space, new line, carriage return, and tab.

    Returns StringSchema

  • Creates a validator that asserts that the input is not empty.

    Returns StringSchema

  • Returns a validator that asserts if this validator or the next passes.

    Implementation note: subclasses should not change the schema instance returned unless all chainable validators accept input type 'unknown'.

    Type Parameters

    • U

    Parameters

    • nextValidator: Validator<U, any>

      The validator to run after the current.

    Returns ValueSchema<string | U>

    Returns a new ValueSchema providing the union of this validator and the next.

  • 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.