redis-smq-common
Version:
RedisSMQ Common Library provides many components that are mainly used by RedisSMQ and RedisSMQ Monitor.
78 lines • 2.33 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventBus = void 0;
const index_js_1 = require("../event/index.js");
const index_js_2 = require("./errors/index.js");
class EventBus extends index_js_1.EventEmitter {
constructor() {
super();
this.connected = false;
this.connected = true;
}
emit(event, ...args) {
if (!this.connected) {
this.eventEmitter.emit('error', new index_js_2.EventBusNotConnectedError());
return false;
}
return super.emit(event, ...args);
}
on(event, listener) {
if (event === 'error') {
super.on('error', listener);
return this;
}
if (!this.connected) {
this.eventEmitter.emit('error', new index_js_2.EventBusNotConnectedError());
return this;
}
super.on(event, listener);
return this;
}
once(event, listener) {
if (event === 'error') {
super.once('error', listener);
return this;
}
if (!this.connected) {
this.eventEmitter.emit('error', new index_js_2.EventBusNotConnectedError());
return this;
}
super.once(event, listener);
return this;
}
removeAllListeners(event) {
if (event === 'error') {
super.removeAllListeners('error');
return this;
}
if (!this.connected) {
this.eventEmitter.emit('error', new index_js_2.EventBusNotConnectedError());
return this;
}
super.removeAllListeners(event);
return this;
}
removeListener(event, listener) {
if (event === 'error') {
super.removeListener('error', listener);
return this;
}
if (!this.connected) {
this.eventEmitter.emit('error', new index_js_2.EventBusNotConnectedError());
return this;
}
super.removeListener(event, listener);
return this;
}
shutdown(cb) {
if (this.connected)
this.connected = false;
cb();
}
static createInstance(cb) {
const instance = new EventBus();
cb(null, instance);
}
}
exports.EventBus = EventBus;
//# sourceMappingURL=event-bus.js.map