@bgaldino/nestjs-rabbitmq 2.0.0-beta.6 → 2.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -308,6 +308,8 @@ type MessageParams = {
308
308
  channel: ConfirmChannel;
309
309
  queue: string;
310
310
  originalRoutingKey?: string;
311
+ correlationId?: string | null; // AMQP correlationId (or x-correlation-id header)
312
+ retryCount?: number; // retry attempts already performed for this message
311
313
  };
312
314
  ```
313
315
 
@@ -490,9 +492,25 @@ before the next retry. The return value controls the behavior:
490
492
  **Defaults** (when `retryStrategy` is not specified):
491
493
 
492
494
  - `enabled`: true
493
- - `maxAttempts`: 5
495
+ - `maxAttempts`: 5 (or `extraOptions.defaultMaxRetry` when set)
494
496
  - `retryFn`: () => 5000
495
497
 
498
+ You can set a global default for the maximum retry attempts with
499
+ `extraOptions.defaultMaxRetry`. It applies to every consumer that does not
500
+ declare its own `retryStrategy.maxAttempts`:
501
+
502
+ ```typescript
503
+ RabbitMQModule.forRoot({
504
+ connectionString: 'amqp://...',
505
+ extraOptions: {
506
+ defaultMaxRetry: 10,
507
+ },
508
+ });
509
+ ```
510
+
511
+ Precedence (highest to lowest): `consumer.retryStrategy.maxAttempts` →
512
+ `extraOptions.defaultMaxRetry` → `5`.
513
+
496
514
  You can also give a "string" value referring a method of the same class,
497
515
  following the interface:
498
516
 
@@ -548,6 +566,7 @@ Every published message includes the following custom headers automatically:
548
566
 
549
567
  ```json
550
568
  {
569
+ "x-correlation-id": "uuid (mirrors the AMQP correlationId property)",
551
570
  "x-original-exchange": "exchange_name",
552
571
  "x-original-routing-key": "routing.key",
553
572
  "x-published-at": "2026-01-01T00:00:00.000Z"
@@ -558,6 +577,12 @@ These headers preserve the original exchange and routing key references, which
558
577
  would otherwise be lost when a message is routed through retry queues or the
559
578
  DLQ.
560
579
 
580
+ A `correlationId` is generated automatically (or taken from
581
+ `options.correlationId` if you pass one) and survives retry hops: when a
582
+ message fails and is republished to the retry queue, all original AMQP
583
+ properties (`correlationId`, `contentType`, `messageId`, ...) are preserved and
584
+ an `x-last-retry-at` timestamp is stamped alongside `x-retries-count`.
585
+
561
586
  The `originalRoutingKey` field in `MessageParams` is derived from these headers
562
587
  when available, falling back to the message's current routing key.
563
588
 
@@ -577,6 +602,12 @@ The environment variable takes precedence over the config value.
577
602
 
578
603
  Consumer errors are always logged regardless of this setting.
579
604
 
605
+ Each log entry is a structured object containing the binding, duration,
606
+ `correlationId`, retry metadata (`retryCount`, `publishedAt`) and — when the
607
+ message carries W3C trace context headers (`traceparent`/`tracestate`, e.g.
608
+ injected by OpenTelemetry auto-instrumentation) — a `traceContext` field, so
609
+ log entries can be correlated with distributed traces.
610
+
580
611
  ### Health check
581
612
 
582
613
  You can check the connection status of both the consumer and publisher
@@ -28,6 +28,7 @@ let AMQPConnectionManager = AMQPConnectionManager_1 = class AMQPConnectionManage
28
28
  logType: "none",
29
29
  heartbeatIntervalInSeconds: 0,
30
30
  reconnectTimeInSeconds: 5,
31
+ defaultMaxRetry: 5
31
32
  },
32
33
  };
33
34
  this.connections = new Map();
@@ -118,7 +119,7 @@ let AMQPConnectionManager = AMQPConnectionManager_1 = class AMQPConnectionManage
118
119
  }
119
120
  buildConsumer(connectionName = "default") {
120
121
  const holder = this.getConnectionHolder(connectionName);
121
- return new rabbitmq_consumer_1.RabbitMQConsumer(holder.consumerConn, this.opts.extraOptions.logType, holder.publisherWrapper);
122
+ return new rabbitmq_consumer_1.RabbitMQConsumer(holder.consumerConn, this.opts.extraOptions.logType, holder.publisherWrapper, this.opts.extraOptions.defaultMaxRetry);
122
123
  }
123
124
  };
124
125
  exports.AMQPConnectionManager = AMQPConnectionManager;
@@ -1 +1 @@
1
- {"version":3,"file":"amqp-connection-manager.js","sourceRoot":"","sources":["../src/amqp-connection-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amqp-connection-manager.js","sourceRoot":"","sources":["../src/amqp-connection-manager.ts"],"names":[],"mappings":"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"}
package/dist/helper.d.ts CHANGED
@@ -1,2 +1,14 @@
1
1
  export declare function tryParseJson(content: string): any;
2
2
  export declare function merge<T = Record<string, any>>(source: Record<string, any>, target: Record<string, any>): T;
3
+ export declare function generateRandomChars(length?: number): string;
4
+ /** Extracts tracing-related metadata from AMQP message headers.
5
+ * traceparent/tracestate are injected by OTel auto-instrumentation when present. */
6
+ export declare function extractTraceContext(headers?: Record<string, any>): {
7
+ traceContext?: {
8
+ traceparent?: string;
9
+ tracestate?: string;
10
+ };
11
+ retryCount?: number;
12
+ publishedAt?: string;
13
+ correlationId?: string;
14
+ };
package/dist/helper.js CHANGED
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryParseJson = tryParseJson;
4
4
  exports.merge = merge;
5
+ exports.generateRandomChars = generateRandomChars;
6
+ exports.extractTraceContext = extractTraceContext;
7
+ const crypto_1 = require("crypto");
5
8
  function tryParseJson(content) {
6
9
  try {
7
10
  return !!content && JSON.parse(content);
@@ -25,4 +28,23 @@ function merge(source, target) {
25
28
  }
26
29
  return merged;
27
30
  }
31
+ function generateRandomChars(length = 4) {
32
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
33
+ return Array.from({ length }, () => chars[(0, crypto_1.randomInt)(0, chars.length)]).join('');
34
+ }
35
+ /** Extracts tracing-related metadata from AMQP message headers.
36
+ * traceparent/tracestate are injected by OTel auto-instrumentation when present. */
37
+ function extractTraceContext(headers = {}) {
38
+ const result = {};
39
+ if (headers.traceparent || headers.tracestate) {
40
+ result.traceContext = Object.assign(Object.assign({}, (headers.traceparent && { traceparent: headers.traceparent })), (headers.tracestate && { tracestate: headers.tracestate }));
41
+ }
42
+ if (headers["x-retries-count"] != null)
43
+ result.retryCount = headers["x-retries-count"];
44
+ if (headers["x-published-at"] != null)
45
+ result.publishedAt = headers["x-published-at"];
46
+ if (headers["x-correlation-id"] != null)
47
+ result.correlationId = headers["x-correlation-id"];
48
+ return result;
49
+ }
28
50
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;AAAA,oCAMC;AAED,sBAcC;AAtBD,SAAgB,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC;QACH,OAAO,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,KAAK,CAA0B,MAA2B,EAAE,MAA2B;;IACrG,MAAM,MAAM,qBAAQ,MAAM,CAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI;YAAE,SAAS;QAElC,IAAI,GAAG,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAA,MAAM,CAAC,GAAG,CAAC,mCAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;AAEA,oCAMC;AAED,sBAcC;AAED,kDAGC;AAID,kDAoBC;AArDD,mCAAmC;AAEnC,SAAgB,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC;QACH,OAAO,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,KAAK,CAA0B,MAA2B,EAAE,MAA2B;;IACrG,MAAM,MAAM,qBAAQ,MAAM,CAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI;YAAE,SAAS;QAElC,IAAI,GAAG,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAA,MAAM,CAAC,GAAG,CAAC,mCAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAM,GAAG,CAAC;IAC5C,MAAM,KAAK,GAAG,gEAAgE,CAAC;IAC/E,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAA,kBAAS,EAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;oFACoF;AACpF,SAAgB,mBAAmB,CAAC,UAA+B,EAAE;IAMnE,MAAM,MAAM,GAA2C,EAAE,CAAC;IAE1D,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,CAAC,YAAY,mCACd,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,GAC7D,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,CAAC,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvF,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI;QAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,IAAI;QAAE,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE5F,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,13 +1,16 @@
1
1
  import { AmqpConnectionManager, ChannelWrapper } from "amqp-connection-manager";
2
2
  import { IRabbitMQHandler } from "./rabbitmq.interfaces";
3
- import { LogType, ConsumerOptions } from "./rabbitmq.types";
3
+ import { LogType, ConsumerOptions, ResolvedConsumerOptions } from "./rabbitmq.types";
4
+ export declare function resolveConsumerOptions(consumer: ConsumerOptions, defaults: {
5
+ defaultMaxRetry: number;
6
+ }): ResolvedConsumerOptions;
4
7
  export declare class RabbitMQConsumer {
5
8
  private logger;
6
9
  private readonly connection;
7
10
  private readonly logType;
8
- private defaultConsumerOptions;
11
+ private readonly defaultMaxRetry;
9
12
  private readonly retryHandler;
10
- constructor(connection: AmqpConnectionManager, logType: LogType, publishChannelWrapper: ChannelWrapper);
13
+ constructor(connection: AmqpConnectionManager, logType: LogType, publishChannelWrapper: ChannelWrapper, defaultMaxRetry?: number);
11
14
  createConsumer(consumer: ConsumerOptions, handler: IRabbitMQHandler): Promise<ChannelWrapper>;
12
15
  private setupChannel;
13
16
  private bindRoutingKeys;
@@ -1,32 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RabbitMQConsumer = void 0;
4
+ exports.resolveConsumerOptions = resolveConsumerOptions;
4
5
  const common_1 = require("@nestjs/common");
5
6
  const helper_1 = require("./helper");
6
7
  const rabbitmq_retry_handler_1 = require("./rabbitmq-retry-handler");
8
+ const node_os_1 = require("node:os");
9
+ function resolveConsumerOptions(consumer, defaults) {
10
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
11
+ return Object.assign(Object.assign({}, consumer), { durable: (_a = consumer.durable) !== null && _a !== void 0 ? _a : true, prefetch: (_b = consumer.prefetch) !== null && _b !== void 0 ? _b : 10, autoDelete: (_c = consumer.autoDelete) !== null && _c !== void 0 ? _c : false, retryStrategy: {
12
+ enabled: (_e = (_d = consumer.retryStrategy) === null || _d === void 0 ? void 0 : _d.enabled) !== null && _e !== void 0 ? _e : true,
13
+ maxAttempts: (_g = (_f = consumer.retryStrategy) === null || _f === void 0 ? void 0 : _f.maxAttempts) !== null && _g !== void 0 ? _g : defaults.defaultMaxRetry,
14
+ // retryFn/dlqFn given as strings are resolved to bound methods at discovery time
15
+ retryFn: (_j = (_h = consumer.retryStrategy) === null || _h === void 0 ? void 0 : _h.retryFn) !== null && _j !== void 0 ? _j : (() => 5000),
16
+ }, dlqStrategy: {
17
+ dlqFn: (_l = (_k = consumer.dlqStrategy) === null || _k === void 0 ? void 0 : _k.dlqFn) !== null && _l !== void 0 ? _l : (async () => true),
18
+ suffix: (_o = (_m = consumer.dlqStrategy) === null || _m === void 0 ? void 0 : _m.suffix) !== null && _o !== void 0 ? _o : ".dlq",
19
+ } });
20
+ }
7
21
  class RabbitMQConsumer {
8
- constructor(connection, logType, publishChannelWrapper) {
22
+ constructor(connection, logType, publishChannelWrapper, defaultMaxRetry = 5) {
9
23
  this.logger = new common_1.Logger(RabbitMQConsumer.name);
10
- this.defaultConsumerOptions = {
11
- durable: true,
12
- prefetch: 10,
13
- autoDelete: false,
14
- retryStrategy: {
15
- enabled: true,
16
- maxAttempts: 5,
17
- retryFn: () => 5000,
18
- },
19
- dlqStrategy: {
20
- dlqFn: async () => true,
21
- suffix: ".dlq",
22
- },
23
- };
24
24
  this.connection = connection;
25
25
  this.logType = logType;
26
+ this.defaultMaxRetry = defaultMaxRetry;
26
27
  this.retryHandler = new rabbitmq_retry_handler_1.RetryHandler(publishChannelWrapper);
27
28
  }
28
29
  async createConsumer(consumer, handler) {
29
- const resolved = (0, helper_1.merge)(this.defaultConsumerOptions, consumer);
30
+ const resolved = resolveConsumerOptions(consumer, {
31
+ defaultMaxRetry: this.defaultMaxRetry,
32
+ });
30
33
  const consumerChannel = this.connection.createChannel({
31
34
  confirm: true,
32
35
  name: resolved.queue,
@@ -47,7 +50,9 @@ class RabbitMQConsumer {
47
50
  });
48
51
  await this.bindRoutingKeys(channel, consumer);
49
52
  await this.attachRetryAndDLQ(channel, consumer);
50
- channel.consume(consumer.queue, async (message) => await this.consume(message, channel, consumer, handler));
53
+ channel.consume(consumer.queue, async (message) => await this.consume(message, channel, consumer, handler), {
54
+ consumerTag: `${(0, node_os_1.hostname)()}:${(0, helper_1.generateRandomChars)(8)}`
55
+ });
51
56
  }
52
57
  async bindRoutingKeys(channel, consumer) {
53
58
  const keys = Array.isArray(consumer.routingKey) ? consumer.routingKey : [consumer.routingKey];
@@ -77,7 +82,7 @@ class RabbitMQConsumer {
77
82
  });
78
83
  }
79
84
  async consume(message, channel, consumer, callback) {
80
- var _a, _b;
85
+ var _a, _b, _c, _d, _e, _f, _g, _h;
81
86
  let hasErrors = null;
82
87
  let hasRetried = false;
83
88
  const start = process.hrtime.bigint();
@@ -85,7 +90,9 @@ class RabbitMQConsumer {
85
90
  await callback((0, helper_1.tryParseJson)(message.content.toString("utf8")), {
86
91
  message,
87
92
  queue: consumer.queue,
88
- originalRoutingKey: (_b = (_a = message.properties.headers["x-original-routing-key"]) !== null && _a !== void 0 ? _a : message.fields.routingKey) !== null && _b !== void 0 ? _b : null
93
+ originalRoutingKey: (_b = (_a = message.properties.headers["x-original-routing-key"]) !== null && _a !== void 0 ? _a : message.fields.routingKey) !== null && _b !== void 0 ? _b : null,
94
+ correlationId: (_e = (_c = message.properties.correlationId) !== null && _c !== void 0 ? _c : (_d = message.properties.headers) === null || _d === void 0 ? void 0 : _d["x-correlation-id"]) !== null && _e !== void 0 ? _e : null,
95
+ retryCount: (_g = (_f = message.properties.headers) === null || _f === void 0 ? void 0 : _f["x-retries-count"]) !== null && _g !== void 0 ? _g : 0,
89
96
  });
90
97
  }
91
98
  catch (e) {
@@ -97,7 +104,7 @@ class RabbitMQConsumer {
97
104
  this.inspectConsumer({
98
105
  binding: {
99
106
  queue: consumer.queue,
100
- routingKey: message.fields.routingKey,
107
+ routingKey: (_h = message.properties.headers["x-original-routing-key"]) !== null && _h !== void 0 ? _h : message.fields.routingKey,
101
108
  exchange: consumer.exchangeName,
102
109
  },
103
110
  consumeMessage: message,
@@ -144,25 +151,18 @@ class RabbitMQConsumer {
144
151
  }
145
152
  }
146
153
  inspectConsumer(args) {
154
+ var _a;
147
155
  const { binding, consumeMessage, data, error } = args;
148
156
  const { exchange, routingKey, queue } = binding;
149
157
  const { content, fields, properties } = consumeMessage;
150
158
  const message = `[AMQP] [CONSUMER] [${exchange}] [${routingKey}] [${queue}]`;
151
159
  const logLevel = error ? "error" : "log";
152
- const logData = {
153
- logLevel,
154
- type: "consumer",
155
- duration: args.elapsedTime.toString(),
156
- correlationId: args.consumeMessage.properties.correlationId,
157
- binding,
158
- title: message,
159
- isDead: args.isDead,
160
- consumedMessage: {
160
+ const headerContext = (0, helper_1.extractTraceContext)(properties === null || properties === void 0 ? void 0 : properties.headers);
161
+ const logData = Object.assign(Object.assign(Object.assign(Object.assign({ logLevel, type: "consumer", duration: args.elapsedTime.toString(), correlationId: (_a = consumeMessage.properties.correlationId) !== null && _a !== void 0 ? _a : headerContext.correlationId }, (headerContext.traceContext && { traceContext: headerContext.traceContext })), (headerContext.retryCount != null && { retryCount: headerContext.retryCount })), (headerContext.publishedAt && { publishedAt: headerContext.publishedAt })), { binding, title: message, isDead: args.isDead, consumedMessage: {
161
162
  fields,
162
163
  properties,
163
164
  content: data !== null && data !== void 0 ? data : (0, helper_1.tryParseJson)(content.toString("utf8")),
164
- },
165
- };
165
+ } });
166
166
  if (error) {
167
167
  logData["error"] = {
168
168
  stack: error === null || error === void 0 ? void 0 : error.stack,
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq-consumer.js","sourceRoot":"","sources":["../src/rabbitmq-consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rabbitmq-consumer.js","sourceRoot":"","sources":["../src/rabbitmq-consumer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
@@ -13,7 +24,7 @@ class RetryHandler {
13
24
  this.logger = new common_1.Logger(RetryHandler.name);
14
25
  }
15
26
  async execute(consumer, message, error) {
16
- var _a, _b, _c, _d;
27
+ var _a, _b, _c, _d, _e;
17
28
  if (!consumer.retryStrategy.enabled) {
18
29
  return false;
19
30
  }
@@ -28,13 +39,11 @@ class RetryHandler {
28
39
  return false;
29
40
  }
30
41
  const retryQueue = `${consumer.queue}.retry`;
42
+ // Preserve original AMQP properties (correlationId, contentType, messageId, ...)
43
+ // so the trace chain survives retry hops.
44
+ const _f = (_e = message.properties) !== null && _e !== void 0 ? _e : {}, { headers: _headers, expiration: _expiration } = _f, originalProperties = __rest(_f, ["headers", "expiration"]);
31
45
  try {
32
- return await this.publishChannel.publish("", retryQueue, (0, faster_stable_stringify_1.default)((0, helper_1.tryParseJson)(message.content.toString("utf8"))), {
33
- headers: Object.assign(Object.assign({}, message.properties.headers), { "x-retries-count": retryCount + 1, "x-original-routing-key": originalRoutingKey }),
34
- expiration: retryDelay,
35
- deliveryMode: 2,
36
- persistent: true,
37
- });
46
+ return await this.publishChannel.publish("", retryQueue, (0, faster_stable_stringify_1.default)((0, helper_1.tryParseJson)(message.content.toString("utf8"))), Object.assign(Object.assign({}, originalProperties), { headers: Object.assign(Object.assign({}, message.properties.headers), { "x-retries-count": retryCount + 1, "x-original-routing-key": originalRoutingKey, "x-last-retry-at": new Date().toISOString() }), expiration: retryDelay, deliveryMode: 2, persistent: true }));
38
47
  }
39
48
  catch (e) {
40
49
  this.logger.error({ message: "could_not_retry", error: e });
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq-retry-handler.js","sourceRoot":"","sources":["../src/rabbitmq-retry-handler.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAwC;AAIxC,qCAAwC;AACxC,sFAAgD;AAEhD,MAAa,YAAY;IAGvB,YACmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAHzC,WAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAI1C,CAAC;IAEL,KAAK,CAAC,OAAO,CACX,QAAiC,EACjC,OAAuB,EACvB,KAAY;;QAEZ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,OAAO,0CAAG,iBAAiB,CAAC,mCAAI,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC;QACpD,MAAM,kBAAkB,GACtB,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,OAAO,0CAAG,wBAAwB,CAAC,mCACtD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAE5B,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CACrD,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9C,UAAU,EACV,KAAK,CACN,CAAC;QAEF,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,KAAK,QAAQ,CAAC;QAC7C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CACtC,EAAE,EACF,UAAU,EACV,IAAA,iCAAS,EAAC,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EACzD;gBACE,OAAO,kCACF,OAAO,CAAC,UAAU,CAAC,OAAO,KAC7B,iBAAiB,EAAE,UAAU,GAAG,CAAC,EACjC,wBAAwB,EAAE,kBAAkB,GAC7C;gBACD,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,IAAI;aACjB,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AA1DD,oCA0DC"}
1
+ {"version":3,"file":"rabbitmq-retry-handler.js","sourceRoot":"","sources":["../src/rabbitmq-retry-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAwC;AAIxC,qCAAwC;AACxC,sFAAgD;AAEhD,MAAa,YAAY;IAGvB,YACmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAHzC,WAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAI1C,CAAC;IAEL,KAAK,CAAC,OAAO,CACX,QAAiC,EACjC,OAAuB,EACvB,KAAY;;QAEZ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,OAAO,0CAAG,iBAAiB,CAAC,mCAAI,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC;QACpD,MAAM,kBAAkB,GACtB,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,OAAO,0CAAG,wBAAwB,CAAC,mCACtD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAE5B,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CACrD,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9C,UAAU,EACV,KAAK,CACN,CAAC;QAEF,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,KAAK,QAAQ,CAAC;QAC7C,iFAAiF;QACjF,0CAA0C;QAC1C,MAAM,KAIF,MAAA,OAAO,CAAC,UAAU,mCAAI,EAAE,EAJtB,EACJ,OAAO,EAAE,QAAQ,EACjB,UAAU,EAAE,WAAW,OAEG,EADvB,kBAAkB,cAHjB,yBAIL,CAA2B,CAAC;QAE7B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CACtC,EAAE,EACF,UAAU,EACV,IAAA,iCAAS,EAAC,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,kCAEpD,kBAAkB,KACrB,OAAO,kCACF,OAAO,CAAC,UAAU,CAAC,OAAO,KAC7B,iBAAiB,EAAE,UAAU,GAAG,CAAC,EACjC,wBAAwB,EAAE,kBAAkB,EAC5C,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAE7C,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,CAAC,EACf,UAAU,EAAE,IAAI,IAEnB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AApED,oCAoEC"}
@@ -69,12 +69,14 @@ let RabbitMQService = RabbitMQService_1 = class RabbitMQService {
69
69
  * If **FALSE** or an error is thrown, the message was not published !
70
70
  */
71
71
  async publish(exchangeName, routingKey, message, options) {
72
- var _a;
72
+ var _a, _b;
73
73
  let hasErrors = null;
74
74
  const start = process.hrtime.bigint();
75
+ const correlationId = (_a = options === null || options === void 0 ? void 0 : options.correlationId) !== null && _a !== void 0 ? _a : (0, node_crypto_1.randomUUID)();
75
76
  const defaultHeaders = {
76
- correlationId: (0, node_crypto_1.randomUUID)(),
77
+ correlationId,
77
78
  headers: {
79
+ "x-correlation-id": correlationId,
78
80
  "x-original-exchange": exchangeName,
79
81
  "x-original-routing-key": routingKey,
80
82
  "x-published-at": new Date().toISOString(),
@@ -82,37 +84,33 @@ let RabbitMQService = RabbitMQService_1 = class RabbitMQService {
82
84
  persistent: true,
83
85
  deliveryMode: 2,
84
86
  };
87
+ let effectiveOptions = defaultHeaders;
85
88
  try {
86
89
  await this.AMQPConn.ensureConnected();
87
- const connectionName = (_a = options === null || options === void 0 ? void 0 : options.connection) !== null && _a !== void 0 ? _a : "default";
90
+ const connectionName = (_b = options === null || options === void 0 ? void 0 : options.connection) !== null && _b !== void 0 ? _b : "default";
88
91
  const holder = this.AMQPConn.getConnectionHolder(connectionName);
89
- const _b = options !== null && options !== void 0 ? options : {}, { connection: _conn } = _b, publishOptions = __rest(_b, ["connection"]);
90
- await holder.publisherWrapper.publish(exchangeName, routingKey, (0, faster_stable_stringify_1.default)(message), (0, helper_1.merge)(defaultHeaders, publishOptions));
92
+ const _c = options !== null && options !== void 0 ? options : {}, { connection: _conn } = _c, publishOptions = __rest(_c, ["connection"]);
93
+ effectiveOptions = (0, helper_1.merge)(defaultHeaders, publishOptions);
94
+ await holder.publisherWrapper.publish(exchangeName, routingKey, (0, faster_stable_stringify_1.default)(message), effectiveOptions);
91
95
  }
92
96
  catch (e) {
93
97
  hasErrors = e;
94
98
  }
95
99
  finally {
96
- this.inspectPublisher(exchangeName, routingKey, message, process.hrtime.bigint() - start, options, hasErrors);
100
+ this.inspectPublisher(exchangeName, routingKey, message, process.hrtime.bigint() - start, effectiveOptions, hasErrors);
97
101
  }
98
102
  return !hasErrors;
99
103
  }
100
104
  inspectPublisher(exchange, routingKey, content, elapsedTime, properties, error) {
105
+ var _a;
101
106
  if (!["publisher", "all"].includes(this.AMQPConn.getLogType()) && !error)
102
107
  return;
103
108
  const logLevel = error ? "error" : "log";
104
- const logData = {
105
- logLevel,
106
- type: "publisher",
107
- duration: elapsedTime.toString(),
108
- correlationId: properties === null || properties === void 0 ? void 0 : properties.correlationId,
109
- title: `[AMQP] [PUBLISH] [${exchange}] [${routingKey}]`,
110
- binding: { exchange, routingKey },
111
- publishedMessage: {
109
+ const headerContext = (0, helper_1.extractTraceContext)(properties === null || properties === void 0 ? void 0 : properties.headers);
110
+ const logData = Object.assign(Object.assign(Object.assign({ logLevel, type: "publisher", duration: elapsedTime.toString(), correlationId: (_a = properties === null || properties === void 0 ? void 0 : properties.correlationId) !== null && _a !== void 0 ? _a : headerContext.correlationId }, (headerContext.traceContext && { traceContext: headerContext.traceContext })), (headerContext.publishedAt && { publishedAt: headerContext.publishedAt })), { title: `[AMQP] [PUBLISH] [${exchange}] [${routingKey}]`, binding: { exchange, routingKey }, publishedMessage: {
112
111
  content,
113
112
  properties,
114
- },
115
- };
113
+ } });
116
114
  if (error)
117
115
  logData["error"] = error;
118
116
  this.logger[logLevel](logData);
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq-service.js","sourceRoot":"","sources":["../src/rabbitmq-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rabbitmq-service.js","sourceRoot":"","sources":["../src/rabbitmq-service.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ export type MessageParams = {
6
6
  message: ConsumeMessage;
7
7
  queue: string;
8
8
  originalRoutingKey?: string;
9
+ /** Correlation id from AMQP properties (or x-correlation-id header) */
10
+ correlationId?: string | null;
11
+ /** Number of retry attempts already performed for this message */
12
+ retryCount?: number;
9
13
  };
10
14
  export interface IRabbitMQHandler<T = any> {
11
15
  (content: T, parameters?: MessageParams): Promise<void>;
@@ -134,6 +134,11 @@ export type ModuleOptions = {
134
134
  * Time between reconnection attempts when a channel/broker connection fails
135
135
  * @default 5 seconds */
136
136
  reconnectTimeInSeconds?: number;
137
+ /**
138
+ * Maximum amount of retries that will be used if none is given to the consumer.retryStrategy.maxAttempts
139
+ * @default 5
140
+ */
141
+ defaultMaxRetry?: number;
137
142
  };
138
143
  /** Used for multi-vhost connections. If your application needs to publish and consume from
139
144
  * different rabbit brokers or different instances, you can drop the passage of options and instead
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq.types.js","sourceRoot":"","sources":["../src/rabbitmq.types.ts"],"names":[],"mappings":";;AAoMA,oDAIC;AAJD,SAAgB,oBAAoB,CAClC,MAA0B;IAE1B,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"rabbitmq.types.js","sourceRoot":"","sources":["../src/rabbitmq.types.ts"],"names":[],"mappings":";;AA0MA,oDAIC;AAJD,SAAgB,oBAAoB,CAClC,MAA0B;IAE1B,OAAO,MAAM,CAAC;AAChB,CAAC"}