Skip to main content

Variable: validators

const validators: object

Defined in: packages/core/src/helpers.ts:287

Type-safe validators for common patterns

Type Declaration

email

email: <T>(field) => CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Validate email format

Type Parameters

T

T extends Record<string, unknown> = Record<string, unknown>

Parameters

field

string

Returns

CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Example

const validate = validators.email('email');
const result = await validate({ email: 'not-valid' });
// { valid: false, errors: ['email must be a valid email'], warnings: [] }

length

length: <T>(field, min, max) => CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: string[]; }, undefined>

Validate string length

Type Parameters

T

T extends Record<string, unknown> = Record<string, unknown>

Parameters

field

string

min

number

max

number

Returns

CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: string[]; }, undefined>

Example

const validate = validators.length('name', 2, 50);
const result = await validate({ name: 'A' });
// { valid: false, errors: ['name must be at least 2 characters'], warnings: [] }

pattern

pattern: <T>(field, regex, message) => CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Validate pattern match (regex)

Type Parameters

T

T extends Record<string, unknown> = Record<string, unknown>

Parameters

field

string

regex

RegExp

message

string

Returns

CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Example

const validate = validators.pattern('zip', /^\d{5}$/, 'Must be a 5-digit zip code');
const result = await validate({ zip: 'abc' });
// { valid: false, errors: ['Must be a 5-digit zip code'], warnings: [] }

range

range: <T>(field, min, max) => CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Validate number range

Type Parameters

T

T extends Record<string, unknown> = Record<string, unknown>

Parameters

field

string

min

number

max

number

Returns

CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Example

const validate = validators.range('age', 0, 120);
const result = await validate({ age: 150 });
// { valid: false, errors: ['age must be between 0 and 120'], warnings: [] }

required

required: <T>(fields, message?) => CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Validate required fields

Type Parameters

T

T

Parameters

fields

keyof T[]

message?

string

Returns

CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Example

const validate = validators.required<{ name: string; email: string }>(['name', 'email']);
const result = await validate({ name: '', email: 'a@b.com' });
// { valid: false, errors: ['name is required'], warnings: [] }

url

url: <T>(field) => CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Validate URL format

Type Parameters

T

T extends Record<string, unknown> = Record<string, unknown>

Parameters

field

string

Returns

CallableDeterministic<T, { errors: string[]; valid: boolean; warnings: never[]; }, undefined>

Example

const validate = validators.url('website');
const result = await validate({ website: 'not-a-url' });
// { valid: false, errors: ['website must be a valid URL'], warnings: [] }