Skip to content

refine

DDataParser.checkerRefine(predicate, options?) crée un checker personnalisé. Il s'intègre partout (schema.addChecker, option checkers, API extended.refine) et réutilise le moteur d'erreurs (path, message, valeur rejetée).

Exemple interactif

Quand l'utiliser ?

  • Valider un motif métier non couvert par les checkers natifs (IBAN, slug, etc.).
  • Centraliser une règle réutilisable entre plusieurs schémas (checkerRefine est une valeur réutilisable).
  • Exprimer des règles sur des structures complexes (objets, tuples...) en s'appuyant sur addChecker.

Contrat checker

Le contrat repose sur le type de sortie du parser ciblé : un checker DataParserChecker<..., T> est compatible avec un parser dont la sortie est T.

Lorsque le prédicat est déclaré comme un type guard TypeScript, le checker affine aussi le type de sortie du parser. parse(...), Output<typeof schema>, les contraintes Clean et les NewTypes portent alors le sous-type validé au lieu du type source plus large.

Raffinement par type guard

Exemples supplémentaires

Valider des coordonnées

Voir aussi

  • string - Parser pour les chaînes de caractères
  • literal - Parser pour les valeurs littérales

Diffusé sous licence MIT.