Class TypedEventEmitter<Events, Arguments, SuperclassArguments>

Typed Event Emitter class which can act as a Base Model for all our model and communication events. This makes it much easier for us to distinguish between events, as we now need to properly type this, so that our events are not stringly-based and prone to silly typos.

Type parameters:

  • Events - List of all events emitted by this TypedEventEmitter. Normally an enum type.
  • Arguments - A ListenerMap type providing mappings from event names to listener types.
  • SuperclassArguments - TODO: not really sure. Alternative listener mappings, I think? But only honoured for .emit?

Type Parameters

  • Events extends string

  • Arguments extends ListenerMap<Events>

  • SuperclassArguments extends ListenerMap<any> = Arguments

Hierarchy

Constructors

  • Type Parameters

    • Events extends string

    • Arguments extends ListenerMap<Events>

    • SuperclassArguments extends ListenerMap<any> = Arguments

    Parameters

    • Optional options: EventEmitterOptions

    Returns TypedEventEmitter<Events, Arguments, SuperclassArguments>

Methods

  • Synchronously calls each of the listeners registered for the event named event, in the order they were registered, passing the supplied arguments to each.

    Type Parameters

    • T extends string

    Parameters

    • event: T

      The name of the event to emit

    • Rest ...args: Parameters<SuperclassArguments[T]>

      Arguments to pass to the listener

    Returns boolean

    true if the event had listeners, false otherwise.

  • Type Parameters

    • T extends string

    Parameters

    Returns boolean

  • Similar to emit but calls all listeners within a Promise.all and returns the promise chain

    Type Parameters

    • T extends string

    Parameters

    • event: T

      The name of the event to emit

    • Rest ...args: Parameters<SuperclassArguments[T]>

      Arguments to pass to the listener

    Returns Promise<boolean>

    true if the event had listeners, false otherwise.

  • Type Parameters

    • T extends string

    Parameters

    Returns Promise<boolean>

  • Returns the number of listeners listening to the event named event.

    Parameters

    Returns number

  • Adds the listener function to the end of the listeners array for the event named event.

    No checks are made to see if the listener has already been added. Multiple calls passing the same combination of event and listener will result in the listener being added, and called, multiple times.

    By default, event listeners are invoked in the order they are added. The prependListener method can be used as an alternative to add the event listener to the beginning of the listeners array.

    Type Parameters

    • T extends string

    Parameters

    • event: T

      The name of the event.

    • listener: Listener<Events, Arguments, T>

      The callback function

    Returns TypedEventEmitter<Events, Arguments, SuperclassArguments>

    a reference to the EventEmitter, so that calls can be chained.

  • Adds a one-time listener function for the event named event. The next time event is triggered, this listener is removed and then invoked.

    Returns a reference to the EventEmitter, so that calls can be chained.

    By default, event listeners are invoked in the order they are added. The prependOnceListener method can be used as an alternative to add the event listener to the beginning of the listeners array.

    Type Parameters

    • T extends string

    Parameters

    • event: T

      The name of the event.

    • listener: Listener<Events, Arguments, T>

      The callback function

    Returns TypedEventEmitter<Events, Arguments, SuperclassArguments>

    a reference to the EventEmitter, so that calls can be chained.

  • Adds the listener function to the beginning of the listeners array for the event named event.

    No checks are made to see if the listener has already been added. Multiple calls passing the same combination of event and listener will result in the listener being added, and called, multiple times.

    Type Parameters

    • T extends string

    Parameters

    • event: T

      The name of the event.

    • listener: Listener<Events, Arguments, T>

      The callback function

    Returns TypedEventEmitter<Events, Arguments, SuperclassArguments>

    a reference to the EventEmitter, so that calls can be chained.

  • Adds a one-timelistener function for the event named event to the beginning of the listeners array. The next time event is triggered, this listener is removed, and then invoked.

    Type Parameters

    • T extends string

    Parameters

    • event: T

      The name of the event.

    • listener: Listener<Events, Arguments, T>

      The callback function

    Returns TypedEventEmitter<Events, Arguments, SuperclassArguments>

    a reference to the EventEmitter, so that calls can be chained.

  • Removes all listeners, or those of the specified event.

    It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

    Parameters

    • Optional event: EventEmitterEvents | Events

      The name of the event. If undefined, all listeners everywhere are removed.

    Returns TypedEventEmitter<Events, Arguments, SuperclassArguments>

    a reference to the EventEmitter, so that calls can be chained.

  • Removes the specified listener from the listener array for the event named event.

    Type Parameters

    • T extends string

    Parameters

    • event: T
    • listener: Listener<Events, Arguments, T>

    Returns TypedEventEmitter<Events, Arguments, SuperclassArguments>

    a reference to the EventEmitter, so that calls can be chained.

Generated using TypeDoc