@rxap/nest-amqp
Version:
@rxap/nest-amqp
54 lines (53 loc) • 2.18 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AmqpModule = exports.ASYNC_OPTIONS_TYPE = exports.OPTIONS_TYPE = exports.MODULE_OPTIONS_TOKEN = exports.ConfigurableModuleClass = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@nestjs/common");
const amqp_service_1 = require("./amqp.service");
const tokens_1 = require("./tokens");
_a = new common_1.ConfigurableModuleBuilder()
.setExtras({
isGlobal: true,
})
.build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN, exports.OPTIONS_TYPE = _a.OPTIONS_TYPE, exports.ASYNC_OPTIONS_TYPE = _a.ASYNC_OPTIONS_TYPE;
let AmqpModule = class AmqpModule extends exports.ConfigurableModuleClass {
static register(options) {
return this.updateProviders(super.register(options));
}
static registerAsync(options) {
return this.updateProviders(super.registerAsync(options));
}
static updateProviders(module) {
module.providers ??= [];
module.providers.push({
provide: tokens_1.AMQP_CONNECTION_MANAGER_OPTIONS,
useFactory: (options) => options.connection,
inject: [exports.MODULE_OPTIONS_TOKEN],
});
module.providers.push({
provide: tokens_1.AMQP_QUEUE_OPTIONS,
useFactory: (options) => options.queue,
inject: [exports.MODULE_OPTIONS_TOKEN],
});
module.providers.push({
provide: tokens_1.AMQP_EXCHANGE_OPTIONS,
useFactory: (options) => options.exchange,
inject: [exports.MODULE_OPTIONS_TOKEN],
});
module.providers.push({
provide: tokens_1.AMQP_CHANNEL_OPTIONS,
useFactory: (options) => options.channel ?? {},
inject: [exports.MODULE_OPTIONS_TOKEN],
});
return module;
}
};
exports.AmqpModule = AmqpModule;
exports.AmqpModule = AmqpModule = tslib_1.__decorate([
(0, common_1.Global)(),
(0, common_1.Module)({
providers: [amqp_service_1.AmqpService],
exports: [amqp_service_1.AmqpService]
})
], AmqpModule);