@message-in-the-middle/rabbitmq
Version:
RabbitMQ integration for message-in-the-middle - Production-ready AMQP messaging with zero boilerplate
32 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RabbitMQMetadataMiddleware = void 0;
class RabbitMQMetadataMiddleware {
name = 'RabbitMQMetadataMiddleware';
async process(context, next) {
const rabbitMsg = context.raw;
if (rabbitMsg && rabbitMsg.fields && rabbitMsg.properties) {
const metadata = {
exchange: rabbitMsg.fields.exchange,
routingKey: rabbitMsg.fields.routingKey,
redelivered: rabbitMsg.fields.redelivered,
deliveryTag: rabbitMsg.fields.deliveryTag,
messageId: rabbitMsg.properties.messageId,
correlationId: rabbitMsg.properties.correlationId,
timestamp: rabbitMsg.properties.timestamp,
headers: rabbitMsg.properties.headers,
consumerTag: rabbitMsg.fields.consumerTag,
};
context.metadata.rabbitmq = metadata;
if (metadata.correlationId) {
context.metadata.correlationId = metadata.correlationId;
}
if (metadata.messageId) {
context.metadata.messageId = metadata.messageId;
}
}
await next();
}
}
exports.RabbitMQMetadataMiddleware = RabbitMQMetadataMiddleware;
//# sourceMappingURL=rabbitmq-metadata.middleware.js.map