nope-js-node
Version:
NoPE Runtime for Nodejs. For Browser-Support please use nope-browser
58 lines (57 loc) • 2.23 kB
TypeScript
/**
* @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;
}