UNPKG

nope-js-node

Version:

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

63 lines (62 loc) 2.99 kB
/** * @author Martin Karkowski * @email m.karkowski@zema.de */ /// <reference types="node" /> import { EventEmitter } from "events"; import { ILogger } from "js-logger"; import { ValidLoggerDefinition } from "../logger/index.browser"; import { Eventname, EventnameToEventType, ICommunicationBridge, ICommunicationInterface, INopeObservable } from "../types/nope"; export declare class Bridge implements ICommunicationBridge { connected: INopeObservable<boolean>; considerConnection: boolean; ownDispatcherId: string; id: string; protected _useInternalEmitter: boolean; protected _logger: ILogger; protected _internalEmitter: EventEmitter; protected _layers: Map<string, { layer: ICommunicationInterface; considerConnection: boolean; forwardData: boolean; }>; protected _callbacks: Map<Eventname, Array<(...args: any[]) => any>>; /** * Creates an instance of Bridge. * @param {*} [id=generateId()] The ID. (this can be adapted later and is only used to simplify debugging) * @param {string} [loggerName="bridge"] The Name of the Logger. * @param {LoggerLevel} [level="info"] The Level of the Logger. * @memberof Bridge */ constructor(id?: string, logger?: ValidLoggerDefinition); on<T extends keyof EventnameToEventType>(eventname: T, cb: (data: EventnameToEventType[T]) => void): Promise<void>; emit<T extends keyof EventnameToEventType>(eventname: T, data: EventnameToEventType[T]): Promise<void>; detailListeners(type: "event" | "rpc" | "data" | "response", listeners: string[]): void; get receivesOwnMessages(): boolean; dispose(): Promise<void>; protected _checkInternalEmitter(): void; /** * Helper Function, which will internally subscribe to the Events of the Layer. * * @protected * @param {ICommunicationInterface} layer The Layer to consinder, on this layer, we will subscribe to the events * @param {keyof ICommunicationInterface} method The method used for subscription * @param {string} event The name of the Event * @param {boolean} forwardData Flag, showing whether data will be forwarded or not. * @memberof BridgeV2 */ protected _subscribeToCallback(layer: ICommunicationInterface, event: Eventname, forwardData: boolean): void; protected _on(event: Eventname, cb: any): void; protected _emit(event: Eventname, toExclude: ICommunicationInterface, dataToSend: any, force?: boolean): void; addCommunicationLayer(layer: ICommunicationInterface, forwardData?: boolean, considerConnection?: boolean): Promise<void>; removeCommunicationLayer(layer: ICommunicationInterface): Promise<void>; toDescription(): { connected: boolean; layers: { forwardData: boolean; receivesOwnMessages: boolean; id: string; considerConnection: boolean; }[]; }; }