nope/lib/communication/eventLayer.ts
2020-09-12 02:59:30 +02:00

31 lines
848 B
TypeScript

import { EventEmitter } from "events";
import { ICommunicationInterface } from "../dispatcher/nopeDispatcher";
import { getLogger } from "../logger/getLogger";
/**
* A Communication Layer for the Dispatchers.
* Here, only a Events are used.
*
* @export
* @class EventLayer
* @implements {ICommunicationInterface}
*/
export class EventLayer implements ICommunicationInterface {
off(event: string, cb: (...args: any[]) => void) {
this._emitter.off(event, cb);
}
protected _emitter = new EventEmitter();
protected _logger = getLogger('info', 'Event-Layer');
on(event: string, cb: (...args: any[]) => void) {
// this._logger.debug('subscribed ' + event);
this._emitter.on(event, cb);
}
send(event: string, data: any): void {
// this._logger.debug('emitting ' + event);
this._emitter.emit(event, data)
}
}