@addapptables/microservice
Version:
addapptables microservice
50 lines • 2.42 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Bus = void 0;
const constants_config_1 = require("./config/constants.config");
const initialize_adapter_bus_service_1 = require("./services/initialize-adapter-bus.service");
const logger_service_1 = require("./logger/services/logger.service");
class Bus {
constructor(moduleRef) {
this.moduleRef = moduleRef;
this.registerHandler = (handler) => {
const instance = this.moduleRef.get(handler, { strict: false });
if (!instance) {
return;
}
const Target = this.reflectName(handler);
const data = new Target();
this.adapter.subscribe(this.subscribe(instance), data);
this.logger.debug({ data }, 'RegisterHandler');
};
this.microserviceOptions = this.moduleRef.get(constants_config_1.MICROSERVICE_CONFIG_PROVIDER);
}
onInit(busAdapter) {
return __awaiter(this, void 0, void 0, function* () {
this.logger = yield this.moduleRef.resolve(logger_service_1.CraftsLogger, undefined, { strict: false });
this.logger.setContext(Bus.name);
this.adapter = busAdapter;
yield this.registerHandlers();
});
}
resolveAdapter() {
return __awaiter(this, void 0, void 0, function* () {
const adapterInstance = yield new initialize_adapter_bus_service_1.InitializeAdapterBus(this.microserviceOptions, this.moduleRef).init(this.microserviceOptions.adapter.adapterConfig);
this.adapter = adapterInstance;
});
}
onModuleDestroy() {
this.adapter.close();
}
}
exports.Bus = Bus;
//# sourceMappingURL=bus.js.map