Evidence
Une Evidence est une marque de passage métier attachée au type d'une valeur clean. Elle sert à prouver qu'une étape précise du flux a déjà été exécutée, sans modifier la valeur métier elle-même.
Concrètement, une fonction peut retourner une entité enrichie avec une evidence, et une fonction suivante peut exiger cette même evidence dans son type d'entrée. Cela garantit, à la compilation, que la première étape a bien été appelée avant la seconde.
Exemple interactif
Syntaxe
appendEvidence est la fonction utilisée pour ajouter une evidence.
Classique
typescript
function appendEvidence<
GenericInput extends C.AppendEvidenceInput,
GenericEvidenceName extends string
>(
input: GenericInput,
evidenceName: GenericEvidenceName,
): GenericInput & C.Evidence<GenericEvidenceName>Currifiée
typescript
function appendEvidence<
GenericInput extends C.AppendEvidenceInput
EvidenceName extends string
>(
evidenceName: GenericEvidenceName,
): (input: GenericInput) => GenericInput & C.Evidence<GenericEvidenceName>Paramètres
input: valeur clean (primitive,ConstrainedType,NewTypeouEntity) à enrichir avec une evidence.evidenceName: nom métier de l'evidence à attacher (ex."validated","authorized","loaded").
Valeur de retour
Retourne la même valeur d'entrée, enrichie avec C.Evidence<evidenceName> dans son type.
Cette marque peut ensuite être requise par d'autres fonctions pour verrouiller l'ordre d'appel métier.
Voir aussi
flag- Ajoute un flag sur les entités via un handler dédié.useCase- Orchestre les flux métier où des evidences peuvent être attachées.chainedFunction- Modélise des actions métier ordonnées, souvent combinées avec des evidences de passage.
