@diy0r/nestjs-rabbitmq
Version:
Nestjs rabbitMQ module
59 lines • 2.8 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var RmqModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RmqModule = void 0;
const common_1 = require("@nestjs/common");
const rmq_service_1 = require("./rmq.service");
const core_1 = require("@nestjs/core");
const common_2 = require("./common");
const rmq_core_module_1 = require("./rmq-core.module");
const constants_1 = require("./constants");
let RmqModule = RmqModule_1 = class RmqModule {
static forRoot(RMQOptions) {
return {
module: RmqModule_1,
imports: [rmq_core_module_1.RmqNestjsCoreModule.forRoot(RMQOptions)],
};
}
static forRootAsync(RMQOptionsAsync) {
return {
module: RmqModule_1,
imports: [rmq_core_module_1.RmqNestjsCoreModule.forRootAsync(RMQOptionsAsync)],
};
}
static forFeature(options) {
const providerOptions = { provide: constants_1.RMQ_BROKER_OPTIONS, useValue: options };
const providersExtended = (0, common_2.extendedProvidersArr)(options);
return this.generateForFeature(providerOptions, providersExtended);
}
static forFeatureAsync(options) {
const providerOptions = {
provide: constants_1.RMQ_BROKER_OPTIONS,
useFactory: async (...args) => await options.useFactory(...args),
inject: options.inject || [],
};
const providersExtended = (0, common_2.extendedProvidersArr)(options);
return this.generateForFeature(providerOptions, providersExtended, options.imports);
}
static generateForFeature(providerOptions, providersExtended, imports = []) {
return {
module: RmqModule_1,
imports: [core_1.DiscoveryModule, ...imports],
providers: [providerOptions, rmq_service_1.RmqService, common_2.MetaTagsScannerService, common_2.RmqErrorService].concat(providersExtended),
exports: [rmq_service_1.RmqService],
};
}
};
exports.RmqModule = RmqModule;
exports.RmqModule = RmqModule = RmqModule_1 = __decorate([
(0, common_1.Module)({
providers: [{ provide: constants_1.MODULE_TOKEN, useFactory: common_2.getUniqId }],
})
], RmqModule);
//# sourceMappingURL=rmq.module.js.map