@hapiness/core
Version:
Project to have a HapiJS (https://hapijs.com/) based framework to create easier NodeJS back-end with some awesome features
48 lines • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const rxjs_1 = require("rxjs");
const core_1 = require("../../core");
class EventManager {
constructor() {
this.stream$ = new rxjs_1.Subject();
this.logger = new core_1.InternalLogger('event-manager');
}
/**
* Add a listener filtered on type
*
* @param {string} type
* @returns Observable
*/
on(type) {
this.logger.debug(`listener added on ${type}`);
return this
.stream$
.filter(_ => !!_ && _.type === type);
}
/**
* Emit data for type
*
* @param {string} type
* @param {any} data
* @returns void
*/
emit(type, data) {
this.logger.debug(`send data on ${type}`);
this
.stream$
.next({ type, data });
}
/**
* Close the stream event
*
* @returns void
*/
close() {
this.logger.debug(`manager closed`);
this
.stream$
.complete();
}
}
exports.EventManager = EventManager;
//# sourceMappingURL=manager.js.map