UNPKG

@djeka07/nestjs-azure-service-bus

Version:

NestJS Azure service bus based on @azure/service-bus package

87 lines 3.81 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 __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AzureServiceBusClient = void 0; const service_bus_1 = require("@azure/service-bus"); const common_1 = require("@nestjs/common"); const constants_1 = require("../constants"); const build_azure_service_bus_receiver_key_1 = __importDefault(require("../helpers/build-azure-service-bus-receiver-key")); const create_message_handlers_1 = __importDefault(require("../helpers/create-message-handlers")); let AzureServiceBusClient = class AzureServiceBusClient { constructor(config) { this.config = config; this.serviceBusClient = new service_bus_1.ServiceBusClient(config.connectionString); this.receiver = {}; this.sender = {}; } register(name) { if (!this.sender[name]) { this.sender[name] = this.serviceBusClient.createSender(name); } return this.emit(name); } subscribe(receiver, handler) { const key = (0, build_azure_service_bus_receiver_key_1.default)(receiver); if (!this.receiver?.[key]) { this.receiver[key] = this.serviceBusClient.createReceiver(receiver.name, receiver.subscription); this.receiver[key].subscribe((0, create_message_handlers_1.default)(handler)); } } async emit(queue) { return (data) => { return this.privateEmit(queue, data); }; } async privateEmit(name, data) { const { payload, updateTime, options } = data; const sender = this.sender?.[name]; if (!!sender) { if (updateTime && this.checkScheduleDate(updateTime)) { await sender.scheduleMessages(payload, updateTime, options); return; } await sender.sendMessages(payload, options); } } checkScheduleDate(updateTime) { if (updateTime instanceof Date) { return true; } else { throw new Error(`Error validating schedule date: ${updateTime} is not valid`); } } async close() { if (!!this.sender) { for (const key in this.sender) { await this.sender[key]?.close(); } } if (!!this.receiver) { for (const key in this.receiver) { await this.receiver[key]?.close(); } } await this.serviceBusClient?.close(); } }; exports.AzureServiceBusClient = AzureServiceBusClient; exports.AzureServiceBusClient = AzureServiceBusClient = __decorate([ __param(0, (0, common_1.Inject)(constants_1.AZURE_SERVICE_BUS_CONFIGURATION)), __metadata("design:paramtypes", [Object]) ], AzureServiceBusClient); //# sourceMappingURL=azure-service-bus.client.js.map