UNPKG

@niur/nestjs-service-bus

Version:

NestJS Azure Service Bus Microservice Transport

83 lines 3.51 kB
"use strict"; 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 AzureServiceBusModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.AzureServiceBusModule = void 0; const common_1 = require("@nestjs/common"); const client_1 = require("./client"); let AzureServiceBusModule = AzureServiceBusModule_1 = class AzureServiceBusModule { static forRoot(options) { const AzureServiceBus = (options || []).map((item) => ({ provide: item.name, useValue: this.assignOnAppShutdownHook(new client_1.AzureServiceBusClient(item)), })); return { module: AzureServiceBusModule_1, providers: AzureServiceBus, exports: AzureServiceBus, }; } static forRootAsync(options) { const providers = options.reduce((accProviders, item) => accProviders .concat(this.createAsyncProviders(item)) .concat(item.extraProviders || []), []); const imports = options.reduce((accImports, option) => option.imports && !accImports.includes(option.imports) ? accImports.concat(option.imports) : accImports, []); return { module: AzureServiceBusModule_1, imports, providers: providers, exports: providers, }; } static createAsyncProviders(options) { if (options.useExisting || options.useFactory) { return [this.createAsyncOptionsProvider(options)]; } return [ this.createAsyncOptionsProvider(options), { provide: options.useClass, useClass: options.useClass, }, ]; } static createAsyncOptionsProvider(options) { if (options.useFactory) { return { provide: options.name, useFactory: this.createFactoryWrapper(options.useFactory), inject: options.inject || [], }; } return { provide: options.name, useFactory: this.createFactoryWrapper((optionsFactory) => optionsFactory.createAzureServiceBusOptions()), inject: [options.useExisting || options.useClass], }; } static createFactoryWrapper(useFactory) { return async (...args) => { const clientOptions = await useFactory(...args); const clientProxyRef = new client_1.AzureServiceBusClient(clientOptions); return this.assignOnAppShutdownHook(clientProxyRef); }; } static assignOnAppShutdownHook(client) { client.onApplicationShutdown = client.close; return client; } }; exports.AzureServiceBusModule = AzureServiceBusModule; exports.AzureServiceBusModule = AzureServiceBusModule = AzureServiceBusModule_1 = __decorate([ (0, common_1.Global)(), (0, common_1.Module)({}) ], AzureServiceBusModule); //# sourceMappingURL=azure-service-bus.module.js.map