UNPKG

@amirmarmul/waba-common

Version:

![GitHub release](https://img.shields.io/github/v/release/amirmarmul/waba-common?style=flat-square)

35 lines (34 loc) 1.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Worker = void 0; const Container_1 = require("../../../core/infrastructure/Container"); const Listener_1 = require("./Listener"); const logger_1 = __importDefault(require("../../../core/utils/logger")); class Worker { listeners = []; constructor(listeners) { this.registerListeners(listeners); } registerListeners(listeners) { listeners.forEach((listener) => { const instance = this.resolve(listener); this.listeners.push(instance); }); } resolve(klass) { if (klass instanceof Listener_1.Listener) { return klass; } return Container_1.Container.get(klass); } start() { logger_1.default.info('Register listeners %s', this.listeners); for (const listener of this.listeners) { listener.init().listen(); } } } exports.Worker = Worker;