MCPcopy Create free account
hub / github.com/formkit/formkit / parseRules

Function parseRules

packages/validation/src/validation.ts:589–624  ·  view source on GitHub ↗
(
  validation: undefined | string | FormKitValidationIntent[],
  rules: FormKitValidationRules,
  node: FormKitNode
)

Source from the content-addressed store, hash-verified

587 * @internal
588 */
589export function parseRules(
590 validation: undefined | string | FormKitValidationIntent[],
591 rules: FormKitValidationRules,
592 node: FormKitNode
593): FormKitValidation[] {
594 if (!validation) return []
595 const intents =
596 typeof validation === 'string'
597 ? extractRules(validation)
598 : clone(validation)
599 return intents.reduce((validations, args) => {
600 let rule = args.shift() as string | FormKitValidationRule
601 const hints = {}
602 if (typeof rule === 'string') {
603 const [ruleName, parsedHints] = parseHints(rule)
604 if (has(rules, ruleName)) {
605 rule = rules[ruleName]
606 Object.assign(hints, parsedHints)
607 }
608 }
609 if (typeof rule === 'function') {
610 validations.push({
611 observer: createObserver(node),
612 rule,
613 args,
614 timer: 0,
615 state: null,
616 queued: true,
617 deps: new Map(),
618 ...defaultHints,
619 ...fnHints(hints, rule),
620 })
621 }
622 return validations
623 }, [] as FormKitValidation[])
624}
625
626/**
627 * A string of validation rules written in FormKitRule notation.

Callers 3

validation.spec.tsFile · 0.90
rebootFunction · 0.85
createValidationPluginFunction · 0.85

Calls 6

cloneFunction · 0.90
hasFunction · 0.90
createObserverFunction · 0.90
extractRulesFunction · 0.85
parseHintsFunction · 0.85
fnHintsFunction · 0.85

Tested by

no test coverage detected