@bgaldino/nestjs-rabbitmq 2.0.0-beta.5 → 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
@@ -76,7 +76,6 @@ import { RabbitMQModule } from '@bgaldino/nestjs-rabbitmq';
76
76
  imports: [
77
77
  RabbitMQModule.forRoot({
78
78
  connectionString: 'amqp://user:password@localhost:5672/vhost',
79
- delayExchangeName: 'my_app',
80
79
  assertExchanges: [
81
80
  { name: 'orders', type: 'topic' },
82
81
  { name: 'notifications', type: 'fanout' },
@@ -102,7 +101,6 @@ class RabbitConfig implements RabbitMQOptionsFactory {
102
101
  createRabbitOptions(): ModuleOptions {
103
102
  return {
104
103
  connectionString: this.configService.get('RABBIT_URL'),
105
- delayExchangeName: 'my_app',
106
104
  assertExchanges: [
107
105
  { name: 'orders', type: 'topic' },
108
106
  ],
@@ -127,7 +125,6 @@ You can also use `useFactory` directly:
127
125
  RabbitMQModule.forRootAsync({
128
126
  useFactory: (configService: ConfigService) => ({
129
127
  connectionString: configService.get('RABBIT_URL'),
130
- delayExchangeName: 'my_app',
131
128
  assertExchanges: [],
132
129
  }),
133
130
  inject: [ConfigService],
@@ -259,7 +256,6 @@ import { defineRabbitConsumer } from '@bgaldino/nestjs-rabbitmq';
259
256
 
260
257
  RabbitMQModule.forRoot({
261
258
  connectionString: 'amqp://localhost',
262
- delayExchangeName: 'my_app',
263
259
  assertExchanges: [{ name: 'orders', type: 'topic' }],
264
260
  consumerChannels: [
265
261
  defineRabbitConsumer({
@@ -312,6 +308,8 @@ type MessageParams = {
312
308
  channel: ConfirmChannel;
313
309
  queue: string;
314
310
  originalRoutingKey?: string;
311
+ correlationId?: string | null; // AMQP correlationId (or x-correlation-id header)
312
+ retryCount?: number; // retry attempts already performed for this message
315
313
  };
316
314
  ```
317
315
 
@@ -380,7 +378,7 @@ additional headers or properties.
380
378
  If your application needs to consume from or publish to multiple RabbitMQ
381
379
  vhosts (or entirely different brokers), you can use named connections.
382
380
  Each connection is a self-contained unit with its own `connectionString`,
383
- `delayExchangeName`, `assertExchanges`, and `consumerChannels`.
381
+ `assertExchanges`, and `consumerChannels`.
384
382
 
385
383
  ### Named connections
386
384
 
@@ -395,13 +393,11 @@ RabbitMQModule.forRoot({
395
393
  {
396
394
  name: 'default',
397
395
  connectionString: 'amqp://localhost/main',
398
- delayExchangeName: 'my_app',
399
396
  assertExchanges: [{ name: 'orders', type: 'topic' }],
400
397
  },
401
398
  {
402
399
  name: 'shared-bus',
403
400
  connectionString: 'amqp://localhost/shared',
404
- delayExchangeName: 'shared_app',
405
401
  assertExchanges: [{ name: 'events', type: 'topic' }],
406
402
  },
407
403
  ],
@@ -437,7 +433,6 @@ connections: [
437
433
  {
438
434
  name: 'default',
439
435
  connectionString: 'amqp://localhost/main',
440
- delayExchangeName: 'my_app',
441
436
  assertExchanges: [{ name: 'orders', type: 'topic' }],
442
437
  consumerChannels: [
443
438
  defineRabbitConsumer({
@@ -478,13 +473,13 @@ back to the original queue for another attempt.
478
473
  retryStrategy: {
479
474
  enabled: true,
480
475
  maxAttempts: 5,
481
- delay: (content, attempt, error) => attempt * 5000,
476
+ retryFn: (content, attempt, error) => attempt * 5000,
482
477
  },
483
478
  })
484
479
  async processOrder(content: OrderPayload) { ... }
485
480
  ```
486
481
 
487
- The `delay` callback receives the message content, the current attempt number,
482
+ The `retryFn` callback receives the message content, the current attempt number,
488
483
  and the error that was thrown. It should return the delay in milliseconds
489
484
  before the next retry. The return value controls the behavior:
490
485
 
@@ -497,8 +492,24 @@ before the next retry. The return value controls the behavior:
497
492
  **Defaults** (when `retryStrategy` is not specified):
498
493
 
499
494
  - `enabled`: true
500
- - `maxAttempts`: 5
501
- - `delay`: () => 5000
495
+ - `maxAttempts`: 5 (or `extraOptions.defaultMaxRetry` when set)
496
+ - `retryFn`: () => 5000
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`.
502
513
 
503
514
  You can also give a "string" value referring a method of the same class,
504
515
  following the interface:
@@ -512,7 +523,7 @@ to the dead letter queue.
512
523
 
513
524
  ## Dead Letter Strategy
514
525
 
515
- Each consumer can define a `deadLetterStrategy` to control what happens when
526
+ Each consumer can define a `dlqStrategy` to control what happens when
516
527
  a message exhausts all retry attempts:
517
528
 
518
529
  ```typescript
@@ -520,9 +531,9 @@ a message exhausts all retry attempts:
520
531
  queue: 'order.process',
521
532
  exchangeName: 'orders',
522
533
  routingKey: 'order.process',
523
- deadLetterStrategy: {
534
+ dlqStrategy: {
524
535
  suffix: '.dlq',
525
- callback: async (content) => {
536
+ dlqFn: async (content) => {
526
537
  await alertService.notify('Order processing failed', content);
527
538
  return true;
528
539
  },
@@ -534,7 +545,7 @@ async processOrder(content: OrderPayload) { ... }
534
545
  The `suffix` controls the name of the dead letter queue. Defaults to `.dlq`,
535
546
  resulting in a queue named `{queue}.dlq`.
536
547
 
537
- The `callback` is executed before sending the message to the DLQ. It receives
548
+ The `dlqFn` is executed before sending the message to the DLQ. It receives
538
549
  the raw message content and should return a boolean:
539
550
 
540
551
  - `true`: the message is forwarded to the DLQ after the callback executes
@@ -543,7 +554,7 @@ the raw message content and should return a boolean:
543
554
  If the callback throws an error, the message is forwarded to the DLQ regardless.
544
555
 
545
556
  Like the `retryStrategy`, you can pass a "string" of the method name you want
546
- to call if it is in the same class. The method should implement the interface:
557
+ to call if it is in the same class. The method should implement the `IDLQFn` interface:
547
558
 
548
559
  ```typescript
549
560
  function (content: T): Promise<boolean> | boolean;
@@ -555,6 +566,7 @@ Every published message includes the following custom headers automatically:
555
566
 
556
567
  ```json
557
568
  {
569
+ "x-correlation-id": "uuid (mirrors the AMQP correlationId property)",
558
570
  "x-original-exchange": "exchange_name",
559
571
  "x-original-routing-key": "routing.key",
560
572
  "x-published-at": "2026-01-01T00:00:00.000Z"
@@ -565,6 +577,12 @@ These headers preserve the original exchange and routing key references, which
565
577
  would otherwise be lost when a message is routed through retry queues or the
566
578
  DLQ.
567
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
+
568
586
  The `originalRoutingKey` field in `MessageParams` is derived from these headers
569
587
  when available, falling back to the message's current routing key.
570
588
 
@@ -584,6 +602,12 @@ The environment variable takes precedence over the config value.
584
602
 
585
603
  Consumer errors are always logged regardless of this setting.
586
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
+
587
611
  ### Health check
588
612
 
589
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();
@@ -112,14 +113,13 @@ let AMQPConnectionManager = AMQPConnectionManager_1 = class AMQPConnectionManage
112
113
  return [{
113
114
  name: "default",
114
115
  connectionString: this.opts.connectionString,
115
- delayExchangeName: this.opts.delayExchangeName,
116
116
  assertExchanges: this.opts.assertExchanges,
117
117
  consumerChannels: this.opts.consumerChannels,
118
118
  }];
119
119
  }
120
120
  buildConsumer(connectionName = "default") {
121
121
  const holder = this.getConnectionHolder(connectionName);
122
- return new rabbitmq_consumer_1.RabbitMQConsumer(holder.consumerConn, holder.config.delayExchangeName, 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);
123
123
  }
124
124
  };
125
125
  exports.AMQPConnectionManager = AMQPConnectionManager;
@@ -1 +1 @@
1
- {"version":3,"file":"amqp-connection-manager.js","sourceRoot":"","sources":["../src/amqp-connection-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAMwB;AACxB,qCAAiC;AACjC,2DAAuD;AAOvD,6DAAsD;AACtD,6DAA2E;AAGpE,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAgBhC,YAC0B,OAAsB;;QAf/B,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;QACzD,mBAAc,GAA2B;YAC/C,YAAY,EAAE;gBACZ,OAAO,EAAE,MAAM;gBACf,0BAA0B,EAAE,CAAC;gBAC7B,sBAAsB,EAAE,CAAC;aAC1B;SACF,CAAC;QAEM,gBAAW,GAAkC,IAAI,GAAG,EAAE,CAAC;QAQ7D,IAAI,CAAC,IAAI,GAAG,IAAA,cAAK,EACf,IAAI,CAAC,cAAc,EACnB,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,GAAG,0CAAE,iBAA4B,mCAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC7G,IAAI,CAAC,iBAAiB,GAAG,IAAI,sCAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAGO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,MAAM,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAEM,mBAAmB,CAAC,OAAe,SAAS;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC;gBACjC,CAAC,CAAC,qHAAqH;gBACvH,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,2BAA2B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAC7F,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,iBAAiB;QACtB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAqC;;QAC3D,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YAClD,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK;gBAAE,SAAS;YACzC,MAAM,QAAQ,GAAG,MAAA,QAAQ,CAAC,UAAU,mCAAI,SAAS,CAAC;YAClD,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB;;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,CAAA,MAAA,MAAM,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAA,CAAC;YACnC,MAAM,CAAA,MAAA,MAAM,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAA,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAC/B,CAAC;QAED,OAAO,CAAC;gBACN,IAAI,EAAE,SAAS;gBACf,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAC5C,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAC9C,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;gBAC1C,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;aAC7C,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,iBAAyB,SAAS;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACxD,OAAO,IAAI,oCAAgB,CACzB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAC9B,MAAM,CAAC,gBAAgB,CACxB,CAAC;IACJ,CAAC;CACF,CAAA;AAtIY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;IAkBR,WAAA,IAAA,eAAM,EAAC,mCAAc,CAAC,CAAA;;GAjBd,qBAAqB,CAsIjC"}
1
+ {"version":3,"file":"amqp-connection-manager.js","sourceRoot":"","sources":["../src/amqp-connection-manager.ts"],"names":[],"mappings":"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"}
@@ -90,19 +90,19 @@ let ClassDiscovery = class ClassDiscovery {
90
90
  resolveStrategyMethods(meta, instance) {
91
91
  var _a, _b;
92
92
  const className = instance.constructor.name;
93
- if (typeof ((_a = meta.retryStrategy) === null || _a === void 0 ? void 0 : _a.delay) === "string") {
94
- const fn = instance[meta.retryStrategy.delay];
93
+ if (typeof ((_a = meta.retryStrategy) === null || _a === void 0 ? void 0 : _a.retryFn) === "string") {
94
+ const fn = instance[meta.retryStrategy.retryFn];
95
95
  if (typeof fn !== "function") {
96
- throw new Error(`RabbitMQModule: Method "${meta.retryStrategy.delay}" not found on ${className}`);
96
+ throw new Error(`RabbitMQModule: Method "${meta.retryStrategy.retryFn}" not found on ${className}`);
97
97
  }
98
- meta.retryStrategy.delay = fn.bind(instance);
98
+ meta.retryStrategy.retryFn = fn.bind(instance);
99
99
  }
100
- if (typeof ((_b = meta.deadLetterStrategy) === null || _b === void 0 ? void 0 : _b.callback) === "string") {
101
- const fn = instance[meta.deadLetterStrategy.callback];
100
+ if (typeof ((_b = meta.dlqStrategy) === null || _b === void 0 ? void 0 : _b.dlqFn) === "string") {
101
+ const fn = instance[meta.dlqStrategy.dlqFn];
102
102
  if (typeof fn !== "function") {
103
- throw new Error(`RabbitMQModule: Method "${meta.deadLetterStrategy.callback}" not found on ${className}`);
103
+ throw new Error(`RabbitMQModule: Method "${meta.dlqStrategy.dlqFn}" not found on ${className}`);
104
104
  }
105
- meta.deadLetterStrategy.callback = fn.bind(instance);
105
+ meta.dlqStrategy.dlqFn = fn.bind(instance);
106
106
  }
107
107
  }
108
108
  };
@@ -1 +1 @@
1
- {"version":3,"file":"class-discovery.js","sourceRoot":"","sources":["../src/class-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"class-discovery.js","sourceRoot":"","sources":["../src/class-discovery.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,14 +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
- private readonly delayExchange;
8
10
  private readonly logType;
9
- private defaultConsumerOptions;
11
+ private readonly defaultMaxRetry;
10
12
  private readonly retryHandler;
11
- constructor(connection: AmqpConnectionManager, delayExchangeName: string, logType: LogType, publishChannelWrapper: ChannelWrapper);
13
+ constructor(connection: AmqpConnectionManager, logType: LogType, publishChannelWrapper: ChannelWrapper, defaultMaxRetry?: number);
12
14
  createConsumer(consumer: ConsumerOptions, handler: IRabbitMQHandler): Promise<ChannelWrapper>;
13
15
  private setupChannel;
14
16
  private bindRoutingKeys;
@@ -1,33 +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, delayExchangeName, 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
- delay: () => 5000,
18
- },
19
- deadLetterStrategy: {
20
- callback: async () => true,
21
- suffix: ".dlq",
22
- },
23
- };
24
24
  this.connection = connection;
25
- this.delayExchange = `${delayExchangeName}.delay`;
26
25
  this.logType = logType;
27
- this.retryHandler = new rabbitmq_retry_handler_1.RetryHandler(publishChannelWrapper, this.delayExchange);
26
+ this.defaultMaxRetry = defaultMaxRetry;
27
+ this.retryHandler = new rabbitmq_retry_handler_1.RetryHandler(publishChannelWrapper);
28
28
  }
29
29
  async createConsumer(consumer, handler) {
30
- const resolved = (0, helper_1.merge)(this.defaultConsumerOptions, consumer);
30
+ const resolved = resolveConsumerOptions(consumer, {
31
+ defaultMaxRetry: this.defaultMaxRetry,
32
+ });
31
33
  const consumerChannel = this.connection.createChannel({
32
34
  confirm: true,
33
35
  name: resolved.queue,
@@ -43,12 +45,14 @@ class RabbitMQConsumer {
43
45
  },
44
46
  durable: consumer.durable,
45
47
  autoDelete: consumer.autoDelete,
46
- deadLetterRoutingKey: `${consumer.queue}${consumer.deadLetterStrategy.suffix}`,
48
+ deadLetterRoutingKey: `${consumer.queue}${consumer.dlqStrategy.suffix}`,
47
49
  deadLetterExchange: "",
48
50
  });
49
51
  await this.bindRoutingKeys(channel, consumer);
50
52
  await this.attachRetryAndDLQ(channel, consumer);
51
- 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
+ });
52
56
  }
53
57
  async bindRoutingKeys(channel, consumer) {
54
58
  const keys = Array.isArray(consumer.routingKey) ? consumer.routingKey : [consumer.routingKey];
@@ -58,7 +62,7 @@ class RabbitMQConsumer {
58
62
  }
59
63
  async attachRetryAndDLQ(channel, consumer) {
60
64
  const waitQueue = `${consumer.queue}.retry`;
61
- const deadletterQueue = `${consumer.queue}${consumer.deadLetterStrategy.suffix}`;
65
+ const deadletterQueue = `${consumer.queue}${consumer.dlqStrategy.suffix}`;
62
66
  await channel.assertQueue(deadletterQueue, {
63
67
  durable: true,
64
68
  arguments: {
@@ -68,7 +72,6 @@ class RabbitMQConsumer {
68
72
  if (!consumer.retryStrategy.enabled) {
69
73
  return;
70
74
  }
71
- await channel.assertExchange(this.delayExchange, "topic", { durable: true });
72
75
  await channel.assertQueue(waitQueue, {
73
76
  durable: true,
74
77
  arguments: {
@@ -77,10 +80,9 @@ class RabbitMQConsumer {
77
80
  "x-dead-letter-routing-key": consumer.queue,
78
81
  },
79
82
  });
80
- await channel.bindQueue(waitQueue, this.delayExchange, consumer.queue);
81
83
  }
82
84
  async consume(message, channel, consumer, callback) {
83
- var _a, _b;
85
+ var _a, _b, _c, _d, _e, _f, _g, _h;
84
86
  let hasErrors = null;
85
87
  let hasRetried = false;
86
88
  const start = process.hrtime.bigint();
@@ -88,7 +90,9 @@ class RabbitMQConsumer {
88
90
  await callback((0, helper_1.tryParseJson)(message.content.toString("utf8")), {
89
91
  message,
90
92
  queue: consumer.queue,
91
- 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,
92
96
  });
93
97
  }
94
98
  catch (e) {
@@ -100,7 +104,7 @@ class RabbitMQConsumer {
100
104
  this.inspectConsumer({
101
105
  binding: {
102
106
  queue: consumer.queue,
103
- routingKey: message.fields.routingKey,
107
+ routingKey: (_h = message.properties.headers["x-original-routing-key"]) !== null && _h !== void 0 ? _h : message.fields.routingKey,
104
108
  exchange: consumer.exchangeName,
105
109
  },
106
110
  consumeMessage: message,
@@ -124,7 +128,7 @@ class RabbitMQConsumer {
124
128
  let shouldNack = true;
125
129
  try {
126
130
  shouldNack =
127
- (_a = (await consumer.deadLetterStrategy.callback(message.content.toString("utf8")))) !== null && _a !== void 0 ? _a : true;
131
+ (_a = (await consumer.dlqStrategy.dlqFn(message.content.toString("utf8")))) !== null && _a !== void 0 ? _a : true;
128
132
  }
129
133
  catch (e) {
130
134
  this.logger.error({
@@ -147,25 +151,18 @@ class RabbitMQConsumer {
147
151
  }
148
152
  }
149
153
  inspectConsumer(args) {
154
+ var _a;
150
155
  const { binding, consumeMessage, data, error } = args;
151
156
  const { exchange, routingKey, queue } = binding;
152
157
  const { content, fields, properties } = consumeMessage;
153
158
  const message = `[AMQP] [CONSUMER] [${exchange}] [${routingKey}] [${queue}]`;
154
159
  const logLevel = error ? "error" : "log";
155
- const logData = {
156
- logLevel,
157
- type: "consumer",
158
- duration: args.elapsedTime.toString(),
159
- correlationId: args.consumeMessage.properties.correlationId,
160
- binding,
161
- title: message,
162
- isDead: args.isDead,
163
- 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: {
164
162
  fields,
165
163
  properties,
166
164
  content: data !== null && data !== void 0 ? data : (0, helper_1.tryParseJson)(content.toString("utf8")),
167
- },
168
- };
165
+ } });
169
166
  if (error) {
170
167
  logData["error"] = {
171
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":";;;AAuBA,wDAoBC;AA3CD,2CAAwC;AAGxC,qCAAkF;AAOlF,qEAAwD;AACxD,qCAAmC;AAYnC,SAAgB,sBAAsB,CACpC,QAAyB,EACzB,QAAqC;;IAErC,uCACK,QAAQ,KACX,OAAO,EAAE,MAAA,QAAQ,CAAC,OAAO,mCAAI,IAAI,EACjC,QAAQ,EAAE,MAAA,QAAQ,CAAC,QAAQ,mCAAI,EAAE,EACjC,UAAU,EAAE,MAAA,QAAQ,CAAC,UAAU,mCAAI,KAAK,EACxC,aAAa,EAAE;YACb,OAAO,EAAE,MAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,OAAO,mCAAI,IAAI;YAChD,WAAW,EAAE,MAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,WAAW,mCAAI,QAAQ,CAAC,eAAe;YAC5E,iFAAiF;YACjF,OAAO,EAAE,MAAC,MAAA,QAAQ,CAAC,aAAa,0CAAE,OAA6B,mCAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChF,EACD,WAAW,EAAE;YACX,KAAK,EAAE,MAAC,MAAA,QAAQ,CAAC,WAAW,0CAAE,KAAgB,mCAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;YACpE,MAAM,EAAE,MAAA,MAAA,QAAQ,CAAC,WAAW,0CAAE,MAAM,mCAAI,MAAM;SAC/C,IACD;AACJ,CAAC;AAED,MAAa,gBAAgB;IAQ3B,YACE,UAAiC,EACjC,OAAgB,EAChB,qBAAqC,EACrC,eAAe,GAAG,CAAC;QAXb,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAajD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,qCAAY,CAAC,qBAAqB,CAAC,CAAA;IAC7D,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,QAAyB,EACzB,OAAyB;QAEzB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE;YAChD,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACpD,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,KAAK,EAAE,CAAC,OAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;SAClF,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAuB,EAAE,QAAiC,EAAE,OAAyB;QAC9G,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEzC,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE;YACxC,SAAS,EAAE;gBACT,cAAc,EAAE,QAAQ;aACzB;YACD,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,oBAAoB,EAAE,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE;YACvE,kBAAkB,EAAE,EAAE;SACvB,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAChD,MAAM,IAAI,CAAC,OAAO,CAChB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,CACR,EAAE;YACH,WAAW,EAAE,GAAG,IAAA,kBAAQ,GAAE,IAAI,IAAA,4BAAmB,EAAC,CAAC,CAAC,EAAE;SACvD,CACA,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAuB,EAAE,QAAiC;QACtF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE9F,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,OAAuB,EACvB,QAAiC;QAEjC,MAAM,SAAS,GAAG,GAAG,QAAQ,CAAC,KAAK,QAAQ,CAAC;QAC5C,MAAM,eAAe,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1E,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE;YACzC,OAAO,EAAE,IAAI;YACb,SAAS,EAAE;gBACT,cAAc,EAAE,QAAQ;aACzB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE;YACnC,OAAO,EAAE,IAAI;YACb,SAAS,EAAE;gBACT,cAAc,EAAE,QAAQ;gBACxB,wBAAwB,EAAE,EAAE;gBAC5B,2BAA2B,EAAE,QAAQ,CAAC,KAAK;aAC5C;SACF,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,OAAuB,EACvB,OAAuB,EACvB,QAAiC,EACjC,QAA0B;;QAE1B,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;gBAC7D,OAAO;gBACP,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,kBAAkB,EAAE,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,mCAAI,OAAO,CAAC,MAAM,CAAC,UAAU,mCAAI,IAAI;gBAC7G,aAAa,EACX,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,aAAa,mCAChC,MAAA,OAAO,CAAC,UAAU,CAAC,OAAO,0CAAG,kBAAkB,CAAC,mCAChD,IAAI;gBACN,UAAU,EAAE,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,OAAO,0CAAG,iBAAiB,CAAC,mCAAI,CAAC;aACjE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS,GAAG,CAAC,CAAC;YACd,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS;gBACzD,IAAI,CAAC,eAAe,CAAC;oBACnB,OAAO,EAAE;wBACP,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,mCAAI,OAAO,CAAC,MAAM,CAAC,UAAU;wBAC7F,QAAQ,EAAE,QAAQ,CAAC,YAAY;qBAChC;oBACD,cAAc,EAAE,OAAO;oBACvB,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK;oBAC5C,MAAM,EAAE,SAAS,IAAI,CAAC,UAAU;iBACjC,CAAC,CAAC;YAEL,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,OAAuB,EACvB,OAAuB,EACvB,QAAiC,EACjC,SAAkB,EAClB,UAAmB;;QAEnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,UAAU,GAAG,IAAI,CAAC;YAEtB,IAAI,CAAC;gBACH,UAAU;oBACR,MAAA,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,CAC/B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CACjC,CAAC,mCAAI,IAAI,CAAC;YACf,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAChB,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,uBAAuB,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACtG,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,KAAK,EAAE;wBACL,KAAK,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK;wBACf,OAAO,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO;wBACnB,IAAI,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI;qBACd;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAkB;;QACxC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEtD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAChD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;QACvD,MAAM,OAAO,GAAG,sBAAsB,QAAQ,MAAM,UAAU,MAAM,KAAK,GAAG,CAAC;QAC7E,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACzC,MAAM,aAAa,GAAG,IAAA,4BAAmB,EAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAC,CAAC;QAE/D,MAAM,OAAO,6DACX,QAAQ,EACR,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EACrC,aAAa,EACX,MAAA,cAAc,CAAC,UAAU,CAAC,aAAa,mCAAI,aAAa,CAAC,aAAa,IACrE,CAAC,aAAa,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC,GAC5E,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC,GAC9E,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,KAC5E,OAAO,EACP,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,eAAe,EAAE;gBACf,MAAM;gBACN,UAAU;gBACV,OAAO,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAA,qBAAY,EAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACxD,GACF,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,OAAO,CAAC,GAAG;gBACjB,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;gBACnB,OAAO,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO;gBACvB,IAAI,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI;aAClB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACF;AA7ND,4CA6NC"}
@@ -3,8 +3,7 @@ import { ConsumeMessage } from "amqplib";
3
3
  import { ResolvedConsumerOptions } from "./rabbitmq.types";
4
4
  export declare class RetryHandler {
5
5
  private readonly publishChannel;
6
- private readonly delayExchange;
7
6
  private logger;
8
- constructor(publishChannel: ChannelWrapper, delayExchange: string);
7
+ constructor(publishChannel: ChannelWrapper);
9
8
  execute(consumer: ResolvedConsumerOptions, message: ConsumeMessage, error: Error): Promise<boolean>;
10
9
  }
@@ -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
  };
@@ -8,13 +19,12 @@ const common_1 = require("@nestjs/common");
8
19
  const helper_1 = require("./helper");
9
20
  const faster_stable_stringify_1 = __importDefault(require("faster-stable-stringify"));
10
21
  class RetryHandler {
11
- constructor(publishChannel, delayExchange) {
22
+ constructor(publishChannel) {
12
23
  this.publishChannel = publishChannel;
13
- this.delayExchange = delayExchange;
14
24
  this.logger = new common_1.Logger(RetryHandler.name);
15
25
  }
16
26
  async execute(consumer, message, error) {
17
- var _a, _b, _c, _d;
27
+ var _a, _b, _c, _d, _e;
18
28
  if (!consumer.retryStrategy.enabled) {
19
29
  return false;
20
30
  }
@@ -24,17 +34,16 @@ class RetryHandler {
24
34
  if (retryCount > maxRetry) {
25
35
  return false;
26
36
  }
27
- const retryDelay = await consumer.retryStrategy.delay((0, helper_1.tryParseJson)(message.content.toString("utf8")), retryCount, error);
37
+ const retryDelay = await consumer.retryStrategy.retryFn((0, helper_1.tryParseJson)(message.content.toString("utf8")), retryCount, error);
28
38
  if (retryDelay < 0) {
29
39
  return false;
30
40
  }
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(this.delayExchange, consumer.queue, (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,EAC9B,aAAqB;QADrB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAQ;QAJhC,WAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAK1C,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,KAAK,CACnD,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,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CACtC,IAAI,CAAC,aAAa,EAClB,QAAQ,CAAC,KAAK,EACd,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"}