@gabliam/amqp
Version:
amqp plugin for gabliam
60 lines (59 loc) • 2.36 kB
JavaScript
;
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;