Documentation / zerotal / validator / FieldRule
Abstract Interface: FieldRule
Defined in: packages/validator/src/FieldRule.ts:27
Extended by
Properties
_def
abstractreadonly_def:FieldRuleDefinition
Defined in: packages/validator/src/FieldRule.ts:28
Methods
required()
required(
message?):this
Defined in: packages/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
optional()
optional():
this
Defined in: packages/validator/src/FieldRule.ts:42
Returns
this
nullable()
nullable():
this
Defined in: packages/validator/src/FieldRule.ts:47
Returns
this
default()
default(
value):this
Defined in: packages/validator/src/FieldRule.ts:52
Parameters
value
unknown
Returns
this
sometimes()
sometimes():
this
Defined in: packages/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)
requiredIf()
requiredIf(
fieldOrFn,value?):this
Defined in: packages/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')
requiredUnless()
requiredUnless(
fieldOrFn,value?):this
Defined in: packages/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')
accepted()
accepted(
message?):this
Defined in: packages/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()
declined()
declined(
message?):this
Defined in: packages/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()
custom()
custom(
fn,message?):this
Defined in: packages/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;
})
requiredWith()
requiredWith(
fields):this
Defined in: packages/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'])
requiredWithout()
requiredWithout(
fields):this
Defined in: packages/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'])
requiredWithAll()
requiredWithAll(
fields):this
Defined in: packages/validator/src/FieldRule.ts:178
This field is required when ALL of the listed fields are present.
Parameters
fields
string[]
Returns
this
requiredWithoutAll()
requiredWithoutAll(
fields):this
Defined in: packages/validator/src/FieldRule.ts:187
This field is required when ALL of the listed fields are absent.
Parameters
fields
string[]
Returns
this
prohibitedIf()
prohibitedIf(
field,value):this
Defined in: packages/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')
prohibitedUnless()
prohibitedUnless(
field,value):this
Defined in: packages/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')
bail()
bail():
this
Defined in: packages/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()