Skip to main content
zerotal

Documentation


Documentation / @zerotal/validator / ArrayRule

Class: ArrayRule<T>

Defined in: validator/src/FieldRule.ts:515

Extends

Type Parameters

T

T extends FieldRule

Constructors

Constructor

new ArrayRule<T>(item): ArrayRule<T>

Defined in: validator/src/FieldRule.ts:518

Parameters

item

T

Returns

ArrayRule<T>

Overrides

FieldRule.constructor

Properties

_def

readonly _def: ArrayDef

Defined in: validator/src/FieldRule.ts:516

Overrides

FieldRule._def

Methods

required()

required(message?): this

Defined in: validator/src/FieldRule.ts:36

Mark this field as required (the default). Useful for readability, for re-asserting after .optional(), or to attach a custom "is required" message:

rule.string().required("Please enter your name").min(2)

Parameters

message?

string

Returns

this

Inherited from

FieldRule.required


optional()

optional(): this

Defined in: validator/src/FieldRule.ts:42

Returns

this

Inherited from

FieldRule.optional


nullable()

nullable(): this

Defined in: validator/src/FieldRule.ts:47

Returns

this

Inherited from

FieldRule.nullable


default()

default(value): this

Defined in: validator/src/FieldRule.ts:52

Parameters

value

unknown

Returns

this

Inherited from

FieldRule.default


sometimes()

sometimes(): this

Defined in: validator/src/FieldRule.ts:66

Only run this field's rules if the field is present in the input. Absent fields are silently skipped and excluded from the output. Use for optional PATCH fields that should only be validated when provided.

Returns

this

Example

bio: rules.string().sometimes().max(500)

Inherited from

FieldRule.sometimes


requiredIf()

requiredIf(fieldOrFn, value?): this

Defined in: validator/src/FieldRule.ts:79

Make this field required only when another field equals a specific value.

Parameters

fieldOrFn

string | ((input) => boolean)

value?

unknown

Returns

this

Example

address: rules.string().requiredIf('hasShipping', true)
address: rules.string().requiredIf(input => input.method === 'pickup')

Inherited from

FieldRule.requiredIf


requiredUnless()

requiredUnless(fieldOrFn, value?): this

Defined in: validator/src/FieldRule.ts:98

Make this field required unless another field equals a specific value.

Parameters

fieldOrFn

string | ((input) => boolean)

value?

unknown

Returns

this

Example

phone: rules.string().requiredUnless('contactMethod', 'email')

Inherited from

FieldRule.requiredUnless


accepted()

accepted(message?): this

Defined in: validator/src/FieldRule.ts:118

The value must be truthy: true, 1, '1', 'yes', 'on', 'true'. Use for "agree to terms" checkboxes.

Parameters

message?

string

Returns

this

Example

terms: rules.boolean().accepted()

Inherited from

FieldRule.accepted


declined()

declined(message?): this

Defined in: validator/src/FieldRule.ts:129

The value must be falsy: false, 0, '0', 'no', 'off', 'false'.

Parameters

message?

string

Returns

this

Example

newsletter: rules.boolean().declined()

Inherited from

FieldRule.declined


custom()

custom(fn, message?): this

Defined in: validator/src/FieldRule.ts:144

Run a custom synchronous or asynchronous validation function. Return true to pass, false for a generic error, or a string as the error message.

Parameters

fn

CustomFn

message?

string

Returns

this

Example

username: rules.string().custom(async (value) => {
  const taken = await Username.isTaken(value as string);
  return taken ? 'This username is already taken.' : true;
})

Inherited from

FieldRule.custom


requiredWith()

requiredWith(fields): this

Defined in: validator/src/FieldRule.ts:157

This field is required when ANY of the listed fields are present in input.

Parameters

fields

string[]

Returns

this

Example

cardCvv: rules.string().requiredWith(['cardNumber', 'cardExpiry'])

Inherited from

FieldRule.requiredWith


requiredWithout()

requiredWithout(fields): this

Defined in: validator/src/FieldRule.ts:169

This field is required when ANY of the listed fields are absent from input.

Parameters

fields

string[]

Returns

this

Example

email: rules.string().requiredWithout(['phone'])

Inherited from

FieldRule.requiredWithout


requiredWithAll()

requiredWithAll(fields): this

Defined in: validator/src/FieldRule.ts:178

This field is required when ALL of the listed fields are present.

Parameters

fields

string[]

Returns

this

Inherited from

FieldRule.requiredWithAll


requiredWithoutAll()

requiredWithoutAll(fields): this

Defined in: validator/src/FieldRule.ts:187

This field is required when ALL of the listed fields are absent.

Parameters

fields

string[]

Returns

this

Inherited from

FieldRule.requiredWithoutAll


prohibitedIf()

prohibitedIf(field, value): this

Defined in: validator/src/FieldRule.ts:199

This field must be absent when another field equals the given value.

Parameters

field

string

value

unknown

Returns

this

Example

adminCode: rules.string().prohibitedIf('role', 'guest')

Inherited from

FieldRule.prohibitedIf


prohibitedUnless()

prohibitedUnless(field, value): this

Defined in: validator/src/FieldRule.ts:210

This field must be absent unless another field equals the given value.

Parameters

field

string

value

unknown

Returns

this

Example

discount: rules.number().prohibitedUnless('role', 'admin')

Inherited from

FieldRule.prohibitedUnless


bail()

bail(): this

Defined in: validator/src/FieldRule.ts:222

Stop validating this field after the first failing rule. Without bail(), all rules are checked and all errors collected.

Returns

this

Example

email: rules.string().email().unique('users', 'email').bail()

Inherited from

FieldRule.bail


min()

min(length, message?): this

Defined in: validator/src/FieldRule.ts:530

Parameters

length

number

message?

string

Returns

this


max()

max(length, message?): this

Defined in: validator/src/FieldRule.ts:535

Parameters

length

number

message?

string

Returns

this


size()

size(n, message?): this

Defined in: validator/src/FieldRule.ts:541

Exact item count.

Parameters

n

number

message?

string

Returns

this