UNPKG

@gabliam/amqp

Version:
60 lines (59 loc) 2.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AmqpConfig = void 0; const tslib_1 = require("tslib"); const core_1 = require("@gabliam/core"); const schema_1 = require("./schema"); const amqp_connection_1 = require("./amqp-connection"); const amqp_manager_1 = require("./amqp-manager"); const errors_1 = require("./errors"); let AmqpConfig = class AmqpConfig { constructor(valueExtractor) { this.valueExtractor = valueExtractor; } // when all bean are created, we create bean Connection for back compat async init() { const container = this[core_1.INJECT_CONTAINER_KEY]; const connectionManager = container.get(amqp_manager_1.AmqpConnectionManager); // for back compat container .bind(amqp_connection_1.AmqpConnection) .toConstantValue(connectionManager.getDefaultConnection()); } async createManager() { if (!this.connectionConfig) { throw new errors_1.AmqpConfigIsMandatoryError(); } let connectionConfig; if (Array.isArray(this.connectionConfig)) { connectionConfig = this.connectionConfig; } else { connectionConfig = [this.connectionConfig]; } return new amqp_manager_1.AmqpConnectionManager(connectionConfig, this.valueExtractor); } }; tslib_1.__decorate([ (0, core_1.Value)('application.amqp', schema_1.configurationValidator), tslib_1.__metadata("design:type", Object) ], AmqpConfig.prototype, "connectionConfig", void 0); tslib_1.__decorate([ (0, core_1.Init)(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", Promise) ], AmqpConfig.prototype, "init", null); tslib_1.__decorate([ (0, core_1.Bean)(amqp_manager_1.AmqpConnectionManager), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", Promise) ], AmqpConfig.prototype, "createManager", null); AmqpConfig = tslib_1.__decorate([ (0, core_1.InjectContainer)(), (0, core_1.PluginConfig)(), tslib_1.__param(0, (0, core_1.inject)(core_1.VALUE_EXTRACTOR)), tslib_1.__metadata("design:paramtypes", [Function]) ], AmqpConfig); exports.AmqpConfig = AmqpConfig;