UNPKG

nodejs-event-driven

Version:

NodeJS agnostic event driven with EventEmitter support

45 lines 1.8 kB
import { BaseEventBusService } from './base-event-bus.service.js'; import FsEventBusService from './infra/event-bus/fs/fs-event-bus.service.js'; import MemoryEventBusService from './infra/event-bus/memory/memory-event-bus.service.js'; import RabbitmqEventBusService from './infra/event-bus/rabbitmq/rabbitmq-event-bus.service.js'; import RedisEventBusService from './infra/event-bus/redis/redis-event-bus.service.js'; export default class EventBusService extends BaseEventBusService { #eventBusServiceImpl; constructor(config) { super(); if (config.type === 'fs') { this.#eventBusServiceImpl = new FsEventBusService(config); } else if (config.type === 'redis') { this.#eventBusServiceImpl = new RedisEventBusService(config); } else if (config.type === 'rabbitmq') { this.#eventBusServiceImpl = new RabbitmqEventBusService(config); } else { this.#eventBusServiceImpl = new MemoryEventBusService(config); } } send(eventName, data) { this.#eventBusServiceImpl.send(eventName, data); } on(eventName, listener) { this.#eventBusServiceImpl.on(eventName, listener); } once(eventName, listener) { this.#eventBusServiceImpl.once(eventName, listener); } off(eventName, listener) { this.#eventBusServiceImpl.off(eventName, listener); } sendAndWait(sendEventName, successEventName, errorEventName, data) { return this.#eventBusServiceImpl.sendAndWait(sendEventName, successEventName, errorEventName, data); } async start() { await this.#eventBusServiceImpl.start(); } async stop() { await this.#eventBusServiceImpl.stop(); } } //# sourceMappingURL=event-bus.service.js.map