Skip to content

defineRule ​

Defines a rule. It returns the rule unchanged, typed so that create() gets its params parsed.

ts
const rule = defineRule<TParams>(def)

Generics ​

Parameters ​

Explanation ​

Register the rule with createSchemaBuilder's rules option, under the name definitions use in rule.

Returns ​

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 } })

Guides ​

Types ​