UNPKG

nope-js-node

Version:

NoPE Runtime for Nodejs. For Browser-Support please use nope-browser

58 lines (57 loc) 2.23 kB
/** * @author Martin Karkowski * @email m.karkowski@zema.de * @create date 2021-03-22 19:03:15 * @modify date 2022-01-10 15:56:50 * @desc [description] */ import { ILogger } from "js-logger"; import { EventnameToEventType, ICommunicationInterface, IEmitter } from "../../types/nope"; import { INopeObservable } from "../../types/nope/nopeObservable.interface"; /** * A Basic Mirror, used to share the events in a Mirror Style. * This Layer should not be used directly. this should only * be extended. * * @export * @class EventMirror * @implements {ICommunicationMirror} */ export declare class EventCommunicationInterface implements ICommunicationInterface { protected _emitter: IEmitter; protected _logger?: ILogger; readonly receivesOwnMessages: boolean; /** * Function which will be used to subscribe Data * * @param {(symbol | ValidEventTypesOfMirror)} event The Event to listen to * @param {(...args: any[]) => void} listener The "Listener" (A Callback, which will be called) * @memberof EventMirror */ on<T extends keyof EventnameToEventType>(eventname: T, cb: (data: EventnameToEventType[T]) => void): Promise<void>; /** * Function, which will be used to emit data * * @param {ValidEventTypesOfMirror} event the name fo the event to emit something * @param {*} data the data to emit * @memberof EventMirror */ emit<T extends keyof EventnameToEventType>(eventname: T, data: EventnameToEventType[T]): Promise<void>; /** * Flag, showing whether the Mirror is connected or not. * * @type {INopeObservable<boolean>} * @memberof EventMirror */ connected: INopeObservable<boolean>; dispose(): Promise<void>; /** * Creates an instance of EventMirror. * @param {IEmitter} [_emitter=new EventEmitter() as any] The Type of Emitter to use. * @param {ILogger} [_logger] a Logger * @memberof EventMirror */ constructor(_emitter?: IEmitter, _logger?: ILogger, receivesOwnMessages?: boolean); detailListeners(type: "event" | "rpc" | "data" | "response", listeners: string[]): void; id: string; }