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