UNPKG

@niur/nestjs-service-bus

Version:

NestJS Azure Service Bus Microservice Transport

32 lines 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AzureServiceBusClientProxy = void 0; const shared_utils_1 = require("@nestjs/common/utils/shared.utils"); const microservices_1 = require("@nestjs/microservices"); const rxjs_1 = require("rxjs"); const errors_1 = require("../errors"); class AzureServiceBusClientProxy extends microservices_1.ClientProxy { send(pattern, data) { if ((0, shared_utils_1.isNil)(pattern) || (0, shared_utils_1.isNil)(data)) { return (0, rxjs_1.throwError)(() => new errors_1.InvalidMessageException()); } return (0, rxjs_1.defer)(async () => this.connect()).pipe((0, rxjs_1.mergeMap)(() => new rxjs_1.Observable((observer) => { const callback = this.createObserver(observer); return this.publish({ pattern, data }, callback); }))); } emit(pattern, data) { if ((0, shared_utils_1.isNil)(pattern) || (0, shared_utils_1.isNil)(data)) { return (0, rxjs_1.throwError)(() => new errors_1.InvalidMessageException()); } const source = (0, rxjs_1.defer)(async () => this.connect()).pipe((0, rxjs_1.mergeMap)(() => this.dispatchEvent({ pattern, data }))); const connectableSource = (0, rxjs_1.connectable)(source, { connector: () => new rxjs_1.Subject(), resetOnDisconnect: false, }); connectableSource.connect(); return connectableSource; } } exports.AzureServiceBusClientProxy = AzureServiceBusClientProxy; //# sourceMappingURL=azure-service-bus-client-proxy.js.map