Logos DX
    Preparing search index...

    Class ObserverRelay<TEvents, TCtx>Abstract

    Type Parameters

    • TEvents extends Record<string, any>
    • TCtx extends object
    Index

    Constructors

    Properties

    emit: <E extends string | number | symbol | RegExp>(
        event: E,
        data?: E extends keyof TEvents
            ? TEvents[E]
            : E extends string ? Record<E, any>[E] : unknown,
    ) => void

    Type Declaration

      • <E extends string | number | symbol | RegExp>(
            event: E,
            data?: E extends keyof TEvents
                ? TEvents[E]
                : E extends string ? Record<E, any>[E] : unknown,
        ): void
      • Emits an event

        Type Parameters

        • E extends string | number | symbol | RegExp

        Parameters

        Returns void

    off: (event: string | RegExp | keyof TEvents, listener?: Function) => void

    Type Declaration

    on: {
        <E extends string | number | symbol>(
            event: E,
            options?: ObserverEngine.ListenerOptions,
        ): EventGenerator<RelayEvents<TEvents, TCtx>, E>;
        <E extends string>(
            event: E,
            options?: ObserverEngine.ListenerOptions,
        ): EventGenerator<Record<E, any>>;
        <E extends string | number | symbol>(
            event: E,
            listener: ObserverEngine.EventCallback<RelayEvents<TEvents, TCtx>[E]>,
            options?: ObserverEngine.ListenerOptions,
        ): ObserverEngine.Cleanup;
        <E extends string>(
            event: E,
            listener: ObserverEngine.EventCallback<Record<E, any>>,
            options?: ObserverEngine.ListenerOptions,
        ): ObserverEngine.Cleanup;
        (
            event: RegExp,
            options?: ObserverEngine.ListenerOptions,
        ): EventGenerator<RelayEvents<TEvents, TCtx>, RegExp>;
        (
            event: RegExp,
            listener: ObserverEngine.EventCallback<
                ObserverEngine.RgxEmitData<RelayEvents<TEvents, TCtx>>,
            >,
            options?: ObserverEngine.ListenerOptions,
        ): ObserverEngine.Cleanup;
    }

    Type Declaration

    once: {
        <E extends string | number | symbol>(
            event: E,
            options?: ObserverEngine.ListenerOptions,
        ): EventPromise<RelayEvents<TEvents, TCtx>[E]>;
        <E extends string>(
            event: E,
            options?: ObserverEngine.ListenerOptions,
        ): EventPromise<Record<E, any>>;
        <E extends string | number | symbol>(
            event: E,
            listener: ObserverEngine.EventCallback<RelayEvents<TEvents, TCtx>[E]>,
            options?: ObserverEngine.ListenerOptions,
        ): ObserverEngine.Cleanup;
        <E extends string>(
            event: E,
            listener: ObserverEngine.EventCallback<Record<E, any>>,
            options?: ObserverEngine.ListenerOptions,
        ): ObserverEngine.Cleanup;
        (
            event: RegExp,
            options?: ObserverEngine.ListenerOptions,
        ): EventPromise<ObserverEngine.RgxEmitData<RelayEvents<TEvents, TCtx>>>;
        (
            event: RegExp,
            listener: ObserverEngine.EventCallback<
                ObserverEngine.RgxEmitData<RelayEvents<TEvents, TCtx>>,
            >,
            options?: ObserverEngine.ListenerOptions,
        ): ObserverEngine.Cleanup;
    }

    Type Declaration

    queue: <E extends string | number | symbol | RegExp>(
        event: E,
        process: (data: EventData<RelayEvents<TEvents, TCtx>, E>) => any,
        options: QueueOpts,
    ) => EventQueue<RelayEvents<TEvents, TCtx>, E>

    Accessors

    Methods

    • Returns {
          pub: {
              hasSpy: boolean;
              listenerCounts: Record<string, number>;
              listeners: (keyof TEvents)[];
              rgxListeners: string[];
          };
          sub: {
              hasSpy: boolean;
              listenerCounts: Record<string, number>;
              listeners: (keyof TEvents)[];
              rgxListeners: string[];
          };
      }