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 (
checkerRefineest 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.
