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

    Class EventDelegate<T>

    Raccourci ergonomique vers EventHandler avec un seul générique.

    Permet d'instancier un gestionnaire d'événement en ne spécifiant que le type du callback, sans avoir à décomposer manuellement TArgs :

    // Avec EventDelegate — un seul générique
    const onClick = new EventDelegate<(e: MouseEvent) => void>();

    // Équivalent avec EventHandler — verbeux
    const onClick = new EventHandler<[MouseEvent], (e: MouseEvent) => void>();
    type OnFrameCreatedCallback = (frame: FrameData) => void;

    const onFrameCreated = new EventDelegate<OnFrameCreatedCallback>();
    onFrameCreated.add('handler', (frame) => console.log(frame));
    onFrameCreated.invoke(frameData);
    • EventHandler pour l'API complète avec contrôle fin des génériques
    • JsCircularEvent pour la variante circulaire

    Type Parameters

    • T extends Func = Func

      Type du callback. Parameters<T> et ReturnType<T> sont automatiquement extraits pour alimenter EventHandler. Par défaut Func.

    Hierarchy (View Summary)

    Index

    Constructors

    Accessors

    • get keys(): string[]

      Retourne la liste des clés des callbacks actuellement enregistrés.

      Returns string[]

      const keys = event.keys; // ['handler1', 'handler2']
      

    Methods

    • Protected

      Retourne les données associées à la clé donnée, ou null si la clé n'existe pas.

      Point d'accès protégé au dictionnaire interne — permet aux classes concrètes d'accéder aux données d'un callback sans exposer #_callbacks directement.

      Parameters

      • key: string

        La clé du callback à récupérer.

      Returns MayBe<IEventData<Parameters<T>, T>>

      Les données du callback, ou null si la clé est absente.

    • Ajoute un callback avec une clé spécifique.

      Parameters

      • key: string

        Clé identifiant le callback.

      • event: T

        Le callback à ajouter.

      • ...args: Partial<TArgs>

        Arguments par défaut transmis au callback à chaque appel.

      Returns this

      L'instance courante pour permettre le chaînage.

    • Déclenche tous les callbacks enregistrés et retourne leur résultat sous une forme simplifiée.

      Parameters

      • ...args: Parameters

        Arguments transmis à chaque callback lors de l'appel.

      Returns Nullable<ReturnType<T> | ReturnType<T>[]>

      null si aucun callback, la valeur directe si un seul, un tableau de valeurs si plusieurs.

      Utilisez invoke à la place. invoke retourne un EventCallResult discriminé qui permet de distinguer sans ambiguïté les trois cas, même si ReturnType<T> est lui-même un objet ou un tableau.

    • Supprime tous les callbacks enregistrés en une seule opération O(1).

      Capture la liste des callbacks avant l'effacement, puis déclenche onHandlerCleared après — garantissant que la Map est vide avant la notification, sans risque de double déclenchement si un observateur appelle add dans son callback.

      Returns this

      L'instance courante pour permettre le chaînage.

    • Vérifie si un callback est enregistré sous la clé donnée.

      Parameters

      • key: string

        La clé à vérifier.

      Returns boolean

      true si un callback existe pour cette clé, false sinon.

    • Déclenche tous les callbacks enregistrés avec les arguments fournis.

      Chaque callback est appelé avec ses arguments par défaut suivis des arguments passés à invoke. Les callbacks sont appelés dans leur ordre d'enregistrement, indépendamment les uns des autres.

      Le résultat dépend du nombre de callbacks enregistrés :

      • { type: 'empty' } si aucun callback n'est enregistré.
      • { type: 'single', value } si un seul callback est enregistré.
      • { type: 'multiple', values } si plusieurs callbacks sont enregistrés.

      Parameters

      • ...params: Parameters

        Arguments transmis à chaque callback lors de l'appel.

      Returns EventCallResult<T>

      Un EventCallResult décrivant le résultat de l'appel.

      const result = event.invoke('bonjour');

      switch (result.type) {
      case 'empty': break;
      case 'single': console.log(result.value); break;
      case 'multiple': console.log(result.values); break;
      }
    • Ajoute un callback en générant automatiquement une clé unique.

      Parameters

      • event: T

        Le callback à ajouter.

      • ...args: Partial<TArgs>

        Arguments par défaut transmis au callback à chaque appel.

      Returns string

      La clé générée.