@nestjstools/microservices-rabbitmq
Version:
Transport layer for NestJS Microservices with more configurations for RabbitMQ
30 lines • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AmqpMessageBus = void 0;
const microservices_1 = require("@nestjs/microservices");
const const_1 = require("../../const");
class AmqpMessageBus {
exchange;
connection;
routingKey;
messagePublisher;
constructor(exchange, connection, routingKey) {
this.exchange = exchange;
this.connection = connection;
this.routingKey = routingKey;
this.messagePublisher = this.connection.createPublisher();
}
dispatch(message) {
const rabbitMqMessage = new microservices_1.RmqRecordBuilder(message.message)
.setOptions({
headers: {
[const_1.RoutingKeyHeader]: message.routingKey,
...message.headers,
},
})
.build();
this.messagePublisher.send({ exchange: message.exchange ?? this.exchange, routingKey: this.routingKey ?? message.routingKey, headers: rabbitMqMessage.options?.headers }, rabbitMqMessage.data);
}
}
exports.AmqpMessageBus = AmqpMessageBus;
//# sourceMappingURL=amqp-message-bus.js.map