defineRule
Defines a rule. It returns the rule unchanged, typed so that create() gets its params parsed.
ts
const rule = defineRule<TParams>(def)Generics
TParamsextends AnyObjectSchema
Parameters
defRuleDef<TParams>
Explanation
Register the rule with createSchemaBuilder's rules option, under the name definitions use in rule.
Returns
ruleRuleDef<TParams>
Example
ts
const even = defineRule({
kinds: ['number'],
meta: { label: 'Even number', category: 'number' },
create: (_, message) =>
v.check((input: number) => input % 2 === 0, message),
})
const builder = createSchemaBuilder({ rules: { even } })