Documentation / @facturometro/validator / defineRuleset
Function: defineRuleset() ​
defineRuleset(
definition):Ruleset
Defined in: packages/validator/src/rulesets/define.ts:193
Defines a ruleset constant.
The definition is checked for a rule id that appears twice and frozen; everything that involves other rulesets - requires, disable, override, duplicate ids across constants - is checked when a composition is compiled, that is on the first validate() with it or on registerRuleset(). See the design's "Rulesets & extension API" for the full semantics.
Parameters ​
definition ​
The definition.
Returns ​
The frozen ruleset.
Throws ​
When a rule id appears twice in rules.
Example ​
ts
import { defineRuleset, en16931Ruleset, peppolRuleset, rule, validate } from '@facturometro/validator';
const acme = defineRuleset({
id: 'acme',
version: '1.0.0',
requires: [peppolRuleset],
rules: [
rule.custom('ACME-R-001', {
at: 'document',
message: 'A purchase order reference is required.',
severity: 'fatal',
test: (document) => document.orderReference?.id !== undefined,
}),
],
disable: ['PEPPOL-EN16931-R003'],
override: { 'BR-52': { severity: 'warning' } },
});
validate(invoice, { ruleset: [en16931Ruleset, peppolRuleset, acme] });