Aller au contenu
English

defineJsonArtifact

import { defineJsonArtifact } from "@elie-laloum/outpost";

Déclare un contrat nommé et versionné pour une valeur JSON sans perte ; schema la valide à la publication puis à la lecture. Lève une erreur si name ou version est vide ou dépasse 1024 caractères.

Exemple complet et règles détaillées.

  • optionsRequis
    JsonArtifactOptions<T>
    Nom et version du contrat, et schéma appliqué à la publication et à la lecture.
  • options.nameRequis
    string
    Nom du contrat, non vide et de 1024 caractères au maximum. Une lecture exige le même nom.
  • options.versionRequis
    string
    Version du contrat que vous choisissez, non vide et de 1024 caractères au maximum. Une lecture exige la même version : changez-la quand le format change.
  • options.schemaRequis
    StandardValidator<T> | ((input: unknown) => T | Promise<T>)
    Validateur Standard Schema (Zod, Valibot…) ou fonction qui renvoie la valeur contrôlée ou lève une erreur. S’applique avant l’encodage et après le décodage ; sa sortie est la valeur stockée et renvoyée.

ArtifactContract<T>

export declare function defineJsonArtifact<T>(
  options: JsonArtifactOptions<T>,
): ArtifactContract<T>;