@rotomeca/event - v5.0.0
    Preparing search index...

    Type Alias CircularEventCallResult<TRecord>

    CircularEventCallResult:
        | { type: "empty" }
        | { type: "record"; value: TRecord }
        | { originalValue: unknown; type: "other"; value: Nullable<TRecord> }

    Représente le résultat d'un appel à un CircularEventHandler.

    Ce type discriminé permet de distinguer sans ambiguïté les trois cas possibles lors de la propagation circulaire, même si TRecord contient des propriétés dont la valeur est un objet imbriqué.

    Type Parameters

    • TRecord extends Record<string, unknown>

      Type du record propagé entre les callbacks, doit étendre Record<string, unknown>.

    Type Declaration

    • { type: "empty" }

      Aucun callback enregistré — la propagation n'a pas eu lieu.

    • { type: "record"; value: TRecord }

      Propagation normale — value contient le record final fusionné après le passage de tous les callbacks.

    • { originalValue: unknown; type: "other"; value: Nullable<TRecord> }

      La valeur initiale n'était pas un plain object — elle a été encapsulée dans { default: originalValue } pour permettre quand même la propagation. value contient le résultat du fallback, originalValue la valeur d'origine.

    const result = pipeline.invoke({ count: 0, label: '' });

    switch (result.type) {
    case 'empty':
    // Aucun callback enregistré — le record n'a pas été traité
    break;
    case 'record':
    console.log(result.value); // TRecord fusionné après tous les callbacks
    break;
    case 'other':
    console.warn('Valeur inattendue :', result.originalValue);
    console.log(result.value); // TRecord ou null — résultat du fallback
    break;
    }
    • CircularEventHandler.invoke
    • EventCallResult pour le type équivalent sur EventHandler