@niur/nestjs-service-bus
Version:
NestJS Azure Service Bus Microservice Transport
32 lines • 1.6 kB
JavaScript
;
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