Aller au contenu
English

publishArtifact

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

Encode une valeur selon son contrat, calcule son empreinte SHA-256 et son id adressé par contenu, puis stocke les octets avec store.put(). Renvoie l’ArtifactReference ; producteur et parents sont enregistrés tels quels, sans authentification. Rejette si l’encodage échoue, si une référence parente est invalide ou si le store refuse les octets.

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

  • storeRequis
    ArtifactStore
    Store qui reçoit les octets encodés sous l’id de l’artefact.
  • contractRequis
    ArtifactContract<T>
    Contrat qui valide et encode la valeur ; son nom, sa version et son encodage sont enregistrés dans la référence.
  • valueRequis
    T
    Valeur à publier ; le contrat la valide avant l’encodage.
  • optionsRequis
    PublishArtifactOptions
    Producteur à enregistrer, références parentes ordonnées et signal d’annulation.
  • options.producerRequis
    ArtifactProducer
    Exécution, clé de tâche et tentative enregistrées dans la référence et son id, telles quelles : Outpost ne les authentifie pas.
  • options.parentsOptionnel
    readonly ArtifactReference[] | undefined
    Références dont cet artefact est dérivé, dans l’ordre ; leurs ids sont enregistrés dans parents et dans l’id. Une référence invalide ou en double fait échouer la publication.
  • options.signalOptionnel
    AbortSignal | undefined
    Son annulation rejette la publication avec la raison du signal ; les octets déjà stockés sont conservés.

Promise<ArtifactReference>

export declare function publishArtifact<T>(
  store: ArtifactStore,
  contract: ArtifactContract<T>,
  value: T,
  options: PublishArtifactOptions,
): Promise<ArtifactReference>;