ProtectedisWhether the schema requires a non-null/non-undefined value.
Sets the requirement flag. Must be a boolean.
ProtectedpreprocessorsA list of preprocessors associated with the Builder
ProtectedtypeThe string identifier of the schema type (e.g. 'string', 'number', 'object').
Sets the schema type identifier. Must be a non-empty string.
ProtectedvalidatorsA list of validators associated with the Builder
Adds a preprocessor to a preprocessors list
Adds a validator to validators list.
ProtectedassureEnsures a ValidationErrorMessageProvider is valid.
If provider is undefined, falls back to defaultValue.
Function providers are bound to this for access to schema state.
the provider to validate, or undefined
fallback provider when provider is not supplied
a valid ValidationErrorMessageProvider
Clears type set by call to .hasType<T>(), default schema type inference will be used
for schema returned by this call.
Remove all preprocessors for this schema.
Remove all validators for this schema.
ProtectedcreateProtected method used to create a new instance of the Builder
defined by the props object. Should be used to instantiate new
builders to keep builder's immutability.
ProtectedgetResolves a ValidationErrorMessageProvider to a string error message.
Handles both string providers and function providers (sync or async).
the error message provider (string or function)
the value that caused the validation error
the resolved error message string
Set type of schema explicitly. notUsed param is needed only for case when JS is used. E.g. when you
can't call method like schema.hasType<Date>(), so instead you can call schema.hasType(new Date())
with the same result.
Optional_notUsed: TGenerates a serializable object describing the defined schema
If set to false, schema will be optional (null or undefined values
will be considered as valid).
Array of schemas participating in the union.
Array of preprocessor functions
Custom error message provider for the 'is required' validation error.
String id of schema type, e.g. string', numberorobject`.
Array of validator functions
Adds a new schema option described by schema.
schema must be an instance of SchemaBuilder class ancestor.
schema to be added as an option.
ProtectedpreRuns preprocessors, validators, and the required/optional check on object.
Subclasses call this at the start of their validate() implementation to get
a preprocessed value wrapped in a transaction, along with any early errors.
the value to pre-validate
Optionalcontext: ValidationContext<SchemaBuilder<any, any>>optional validation context settings
a PreValidationResult containing the preprocessed transaction, context, and any errors
Removes first option from the union schema.
Removes option by its index. If index is out of bounds,
an error is thrown.
index of the option, starting from 0.
Removes all options and replaces them by single schema option.
Equivalent to union(schema) function, but could be useful in some cases.
schema to be added as a single option to the new schema.
Performs validation of the union schema over object.
Optionalcontext: ValidationContextOptional ValidationContext settings.
Union schema builder class. Allows to create schemas containing alternatives. E.g. string | number | Date. Use it when you want to define a schema for a value that can be of different types. The type of the value will be determined by the first schema that succeeds validation. Any schema type can be supplied as variant. Which means that you are not limited to primitive types and can construct complex types as well, e.g. object | array.
NOTE this class is exported only to give opportunity to extend it by inheriting. It is not recommended to create an instance of this class directly. Use union() function instead.
Example
Example
Example
See
union