@amirmarmul/waba-common
Version:

35 lines (34 loc) • 1.11 kB
JavaScript
;
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;