UNPKG

@rxap/nest-amqp

Version:
54 lines (53 loc) 2.18 kB
"use strict"; 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);