AbstractThe expected input type for this schema
The output type after validation and transformation
The output type with camelCase field names
Creates a new BaseType instance with optional configuration.
Optionaloptions: FieldOptionsField options like bail mode and nullability
Optionalvalidations: Validation<any>[]Initial set of validations to apply
Define the input type of the schema for TypeScript inference
The output value type of the field after validation. The property points to a type only and not the real value.
Type marker for camelCase output type inference
Abstract[Each subtype should implement the compile method that returns one of the known compiler nodes for the validation engine.
Name of the property being compiled
Reference store for the compiler
Parser options
Compiled compiler node
AbstractcloneThe child class must implement the clone method to create a deep copy of the schema instance.
A cloned instance of this schema
Define a method to parse the input value. The method is invoked before any validation and hence you must perform type-checking to know the value you are working with.
Parser function to transform the input value
This schema instance for method chaining
Push a validation to the validations chain.
Validation rule or rule builder to add
This schema instance for method chaining
Enable/disable the bail mode. In bail mode, the field validations are stopped after the first error.
Whether to enable bail mode
This schema instance for method chaining
Mark the field under validation as optional. An optional field allows both null and undefined values.
A new OptionalModifier wrapping this schema
Mark the field under validation to be null. The null value will be written to the output as well.
If optional and nullable are used together, then both undefined
and null values will be allowed.
A new NullableModifier wrapping this schema
The BaseType class abstracts the repetitive parts of creating a custom schema type. It provides common functionality like validation chaining, optional/nullable modifiers, and compilation logic.
Example