UNPKG

redis-smq

Version:

A high-performance, reliable, and scalable message queue for Node.js.

45 lines 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventMultiplexer = void 0; const event_bus_js_1 = require("./event-bus.js"); const internal_event_bus_js_1 = require("./internal-event-bus.js"); const event_routing_policies_js_1 = require("./event-routing-policies.js"); const event_bus_js_2 = require("./types/event-bus.js"); class EventMultiplexer { constructor() { this.eventBus = event_bus_js_1.EventBus.getInstance(); this.internalBus = internal_event_bus_js_1.InternalEventBus.getInstance(); } static getInstance() { if (!EventMultiplexer.instance) { EventMultiplexer.instance = new EventMultiplexer(); } return EventMultiplexer.instance; } static publish(event, ...args) { const instance = EventMultiplexer.getInstance(); instance.publish(event, ...args); } static shutdown(cb) { EventMultiplexer.instance = null; cb(); } getTargetFor(event) { var _a; return (_a = event_routing_policies_js_1.eventRoutingPolicies[event]) !== null && _a !== void 0 ? _a : event_bus_js_2.EEventTarget.USER; } publish(event, ...args) { const target = this.getTargetFor(event); if (this.eventBus && (target === event_bus_js_2.EEventTarget.USER || target === event_bus_js_2.EEventTarget.BOTH)) { if (this.eventBus.isRunning()) this.eventBus.emit(event, ...args); } if (target === event_bus_js_2.EEventTarget.SYSTEM || target === event_bus_js_2.EEventTarget.BOTH) { this.internalBus.emit(event, ...args); } } } exports.EventMultiplexer = EventMultiplexer; EventMultiplexer.instance = null; //# sourceMappingURL=event-multiplexer.js.map