@nestjstools/messaging 2.9.1 → 2.10.0

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.
Files changed (32) hide show
  1. package/README.md +33 -15
  2. package/lib/consumer/distributed.consumer.d.ts +3 -1
  3. package/lib/consumer/distributed.consumer.js +10 -4
  4. package/lib/consumer/distributed.consumer.js.map +1 -1
  5. package/lib/dependency-injection/decorator.d.ts +2 -0
  6. package/lib/dependency-injection/decorator.js +8 -1
  7. package/lib/dependency-injection/decorator.js.map +1 -1
  8. package/lib/dependency-injection/register.d.ts +1 -0
  9. package/lib/dependency-injection/register.js +20 -1
  10. package/lib/dependency-injection/register.js.map +1 -1
  11. package/lib/dependency-injection/service.d.ts +2 -0
  12. package/lib/dependency-injection/service.js +2 -0
  13. package/lib/dependency-injection/service.js.map +1 -1
  14. package/lib/exception-listener/exception-context.d.ts +7 -0
  15. package/lib/exception-listener/exception-context.js +13 -0
  16. package/lib/exception-listener/exception-context.js.map +1 -0
  17. package/lib/exception-listener/exception-listener-handler.d.ts +7 -0
  18. package/lib/exception-listener/exception-listener-handler.js +33 -0
  19. package/lib/exception-listener/exception-listener-handler.js.map +1 -0
  20. package/lib/exception-listener/exception-listener.d.ts +4 -0
  21. package/lib/exception-listener/exception-listener.js +3 -0
  22. package/lib/exception-listener/exception-listener.js.map +1 -0
  23. package/lib/exception-listener/exception-listener.registry.d.ts +6 -0
  24. package/lib/exception-listener/exception-listener.registry.js +19 -0
  25. package/lib/exception-listener/exception-listener.registry.js.map +1 -0
  26. package/lib/index.d.ts +3 -0
  27. package/lib/index.js +3 -0
  28. package/lib/index.js.map +1 -1
  29. package/lib/messaging.module.js +11 -0
  30. package/lib/messaging.module.js.map +1 -1
  31. package/lib/tsconfig.build.tsbuildinfo +1 -1
  32. package/package.json +1 -1
package/README.md CHANGED
@@ -43,10 +43,10 @@ yarn add @nestjstools/messaging
43
43
  ### Basic Usage (In-memory)
44
44
 
45
45
  ```typescript
46
- import { MessagingModule } from '@nestjstools/messaging';
47
- import { InMemoryChannelConfig } from '@nestjstools/messaging/channels';
46
+ import { MessagingModule, InMemoryChannelConfig } from '@nestjstools/messaging';
48
47
  import { SendMessageHandler } from './handlers/send-message.handler';
49
48
 
49
+
50
50
  @Module({
51
51
  imports: [
52
52
  MessagingModule.forRoot({
@@ -86,11 +86,10 @@ export class SendMessage {
86
86
  #### Define your message handler
87
87
  ```typescript
88
88
  import { SendMessage } from './send-message';
89
- import { MessageResponse } from '@nestjstools/messaging/message';
90
- import { MessageHandler } from '@nestjstools/messaging/decorators';
91
- import { IMessageHandler } from '@nestjstools/messaging/interfaces';
89
+ import { MessageResponse, MessageHandler, IMessageHandler } from '@nestjstools/messaging';
92
90
  import { Injectable } from '@nestjs/common';
93
91
 
92
+
94
93
  @Injectable()
95
94
  @MessageHandler('your.message')
96
95
  export class SendMessageHandler implements IMessageHandler<SendMessage> {
@@ -107,11 +106,10 @@ Messages can be dispatched from anywhere in your application—whether from serv
107
106
 
108
107
  ```typescript
109
108
  import { Controller, Get } from '@nestjs/common';
110
- import { MessageBus } from '@nestjstools/messaging/dependency-injection';
111
- import { IMessageBus } from '@nestjstools/messaging/bus';
112
- import { RoutingMessage } from '@nestjstools/messaging/message';
109
+ import { MessageBus, IMessageBus, RoutingMessage } from '@nestjstools/messaging';
113
110
  import { SendMessage } from './test/send-message';
114
111
 
112
+
115
113
  @Controller()
116
114
  export class AppController {
117
115
  //You can inject every bus which you defined in configuration
@@ -170,10 +168,10 @@ yarn add @nestjstools/messaging-rabbitmq-extension
170
168
  ```
171
169
 
172
170
  ```typescript
173
- import { MessagingModule } from '@nestjstools/messaging';
174
- import { InMemoryChannelConfig, AmqpChannelConfig, ExchangeType } from '@nestjstools/messaging/channels';
171
+ import { MessagingModule, InMemoryChannelConfig, AmqpChannelConfig, ExchangeType } from '@nestjstools/messaging';
175
172
  import { SendMessageHandler } from './handlers/send-message.handler';
176
173
 
174
+
177
175
  @Module({
178
176
  imports: [
179
177
  MessagingModule.forRoot({
@@ -315,7 +313,7 @@ export class Base64Normalizer implements MessageNormalizer {
315
313
  You can define a **Normalizer** per Channel
316
314
  ___
317
315
 
318
- ## <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M160-40v-240h100v-80H160v-240h100v-80H160v-240h280v240H340v80h100v80h120v-80h280v240H560v-80H440v80H340v80h100v240H160Zm80-80h120v-80H240v80Zm0-320h120v-80H240v80Zm400 0h120v-80H640v80ZM240-760h120v-80H240v80Zm60-40Zm0 320Zm400 0ZM300-160Z"/></svg> Middlewares
316
+ ## ⤵️ Middlewares
319
317
 
320
318
  A **middleware** in the context of the `MessagingModule` is a function that processes messages as they pass through the message pipeline. The middleware can intercept, modify, or log messages before they are handled by the respective **message handler**. This is particularly useful for logging, authentication, validation, or any other pre-processing step before the actual business logic is applied.
321
319
 
@@ -334,8 +332,7 @@ Here's an example middleware class that logs a message when the middleware is ap
334
332
 
335
333
  ```typescript
336
334
  import { Injectable } from '@nestjs/common';
337
- import { Middleware } from '@nestjstools/messaging/middleware/middleware';
338
- import { RoutingMessage } from '@nestjstools/messaging/message/routing-message';
335
+ import { Middleware, RoutingMessage } from '@nestjstools/messaging';
339
336
 
340
337
  @Injectable()
341
338
  @MessagingMiddleware()
@@ -353,8 +350,7 @@ export class TestMiddleware implements Middleware {
353
350
  Now that we've defined the middleware, it needs to be attached to a specific channel in the `MessagingModule` configuration. Here's how you would configure the middleware for a channel:
354
351
 
355
352
  ```typescript
356
- import { MessagingModule } from '@nestjstools/messaging';
357
- import { AmqpChannelConfig, InMemoryChannelConfig } from '@nestjstools/messaging/channels';
353
+ import { MessagingModule, AmqpChannelConfig, InMemoryChannelConfig } from '@nestjstools/messaging';
358
354
  import { TestMiddleware } from './middlewares/test.middleware';
359
355
  import { SendMessageHandler } from './handlers/send-message.handler';
360
356
 
@@ -411,6 +407,28 @@ export class AppModule {}
411
407
 
412
408
  ---
413
409
 
410
+ ## 🔰 ExceptionListener
411
+
412
+ The **ExceptionListener** provides a centralized way to handle exceptions thrown during asynchronous message processing from any **channel** in your **messaging system**.
413
+
414
+ By decorating a class with `@MessagingExceptionListener()` and implementing the `ExceptionListener` interface, you can intercept and respond to any unhandled exception occurring during message handling — whether it's logging, reporting, retries, or custom recovery logic.
415
+
416
+ Example Use Case:
417
+ You can log the error, send a notification, or trigger fallback logic whenever a message handler throws an exception.
418
+
419
+ ### Example ExceptionListener Code:
420
+ ```typescript
421
+ import { Injectable } from '@nestjs/common';
422
+ import { ExceptionListener, MessagingExceptionListener, ExceptionContext } from '@nestjstools/messaging';
423
+
424
+ @MessagingExceptionListener()
425
+ export class CustomExceptionListener implements ExceptionListener {
426
+ onException(context: ExceptionContext): Promise<void> {
427
+ console.log(`Here I can handle exception If I want and do some action`);
428
+ }
429
+ }
430
+ ```
431
+
414
432
  ## Configuration options
415
433
  Here’s a table with the documentation for the `MessagingModule.forRoot` configuration you requested, breaking it into **buses**, **channels** (with descriptions of both channels), and their respective properties, descriptions, and default values:
416
434
 
@@ -2,11 +2,13 @@ import { DiscoveryService } from '@nestjs/core';
2
2
  import { IMessageBus } from '../bus/i-message-bus';
3
3
  import { ChannelRegistry } from '../channel/channel.registry';
4
4
  import { MessagingLogger } from '../logger/messaging-logger';
5
+ import { ExceptionListenerHandler } from '../exception-listener/exception-listener-handler';
5
6
  export declare class DistributedConsumer {
6
7
  private readonly messageBus;
7
8
  private readonly channelRegistry;
9
+ private readonly exceptionListenerHandler;
8
10
  private readonly logger;
9
11
  private readonly discoveryService;
10
- constructor(messageBus: IMessageBus, channelRegistry: ChannelRegistry, logger: MessagingLogger, discoveryService: DiscoveryService);
12
+ constructor(messageBus: IMessageBus, channelRegistry: ChannelRegistry, exceptionListenerHandler: ExceptionListenerHandler, logger: MessagingLogger, discoveryService: DiscoveryService);
11
13
  run(): Promise<void>;
12
14
  }
@@ -25,10 +25,13 @@ const consumer_dispatched_message_error_1 = require("./consumer-dispatched-messa
25
25
  const sealed_routing_message_1 = require("../message/sealed-routing-message");
26
26
  const log_1 = require("../logger/log");
27
27
  const handlers_exception_1 = require("../exception/handlers.exception");
28
+ const exception_listener_handler_1 = require("../exception-listener/exception-listener-handler");
29
+ const exception_context_1 = require("../exception-listener/exception-context");
28
30
  let DistributedConsumer = class DistributedConsumer {
29
- constructor(messageBus, channelRegistry, logger, discoveryService) {
31
+ constructor(messageBus, channelRegistry, exceptionListenerHandler, logger, discoveryService) {
30
32
  this.messageBus = messageBus;
31
33
  this.channelRegistry = channelRegistry;
34
+ this.exceptionListenerHandler = exceptionListenerHandler;
32
35
  this.logger = logger;
33
36
  this.discoveryService = discoveryService;
34
37
  }
@@ -70,9 +73,10 @@ let DistributedConsumer = class DistributedConsumer {
70
73
  this.logger.error(log_1.Log.create(`Some error occurred in channel [${channel.config.name}]`, {
71
74
  error: e,
72
75
  message: JSON.stringify(consumerMessage.message),
73
- routingKey: consumerMessage.routingKey
76
+ routingKey: consumerMessage.routingKey,
74
77
  }));
75
78
  }
79
+ await this.exceptionListenerHandler.handleError(new exception_context_1.ExceptionContext(e, channel.config.name, consumerMessage.message, consumerMessage.routingKey));
76
80
  }
77
81
  });
78
82
  this.logger.log(`Consumer for channel [${channel.config.name}] is ready to handle messages`);
@@ -83,7 +87,9 @@ exports.DistributedConsumer = DistributedConsumer;
83
87
  exports.DistributedConsumer = DistributedConsumer = __decorate([
84
88
  __param(0, (0, common_1.Inject)(service_1.Service.DEFAULT_MESSAGE_BUS)),
85
89
  __param(1, (0, common_1.Inject)(service_1.Service.CHANNEL_REGISTRY)),
86
- __param(2, (0, common_1.Inject)(service_1.Service.LOGGER)),
87
- __metadata("design:paramtypes", [Object, channel_registry_1.ChannelRegistry, Object, core_1.DiscoveryService])
90
+ __param(2, (0, common_1.Inject)(service_1.Service.EXCEPTION_LISTENER_HANDLER)),
91
+ __param(3, (0, common_1.Inject)(service_1.Service.LOGGER)),
92
+ __metadata("design:paramtypes", [Object, channel_registry_1.ChannelRegistry,
93
+ exception_listener_handler_1.ExceptionListenerHandler, Object, core_1.DiscoveryService])
88
94
  ], DistributedConsumer);
89
95
  //# sourceMappingURL=distributed.consumer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"distributed.consumer.js","sourceRoot":"","sources":["../../src/consumer/distributed.consumer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,uCAAgD;AAChD,6DAA0D;AAE1D,kEAA8D;AAE9D,oEAA+D;AAC/D,iEAA8E;AAC9E,2EAAsE;AAGtE,gFAA2E;AAC3E,2FAAqF;AACrF,8EAAyE;AACzE,uCAAoC;AACpC,wEAAoE;AAEpE,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,YAEmB,UAAuB,EAEvB,eAAgC,EACR,MAAuB,EAC/C,gBAAkC;QAJlC,eAAU,GAAV,UAAU,CAAa;QAEvB,oBAAe,GAAf,eAAe,CAAiB;QACR,WAAM,GAAN,MAAM,CAAiB;QAC/C,qBAAgB,GAAhB,gBAAgB,CAAkB;IAErD,CAAC;IAED,KAAK,CAAC,GAAG;QACP,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IACE,OAAO,YAAY,mCAAe;gBAClC,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,cAAc,EACvC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB;iBAC1C,YAAY,EAAE;iBACd,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,OAAO,OAAO,CAAC,WAAW,CACxB,qCAAyB,EACzB,QAAQ,CAAC,QAAQ,CAClB,CAAC;YACJ,CAAC,CAAC;iBACD,MAAM,CACL,CAAC,QAAQ,EAAE,EAAE,CACX,OAAO,CAAC,WAAW,CAAC,qCAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC;iBAC9D,IAAI,KAAK,OAAO,CAAC,WAAW,CAAC,IAAI,CACvC,CAAC;YAEJ,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAClE,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,mDAAuB,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAA4B,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEtE,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE1C,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;gBACpD,IAAI,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAG,CAAC,MAAM,CACzB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,wCAAwC,eAAe,CAAC,UAAU,GAAG,EAC5F;wBACE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;qBACjD,CACF,CACF,CAAC;oBAEF,MAAM,WAAW,GAAiB,OAAO,CAAC,MAAM;yBAC7C,WAA2B,CAAC;oBAE/B,MAAM,cAAc,GAAG,IAAI,6CAAoB,CAC7C,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,UAAU,CAC3B,CAAC,iBAAiB,CAAC,IAAI,+CAAqB,CAC3C,WAAW,EACX,OAAO,CAAC,MAAM,EAAE,gCAAgC,IAAI,IAAI,EACxD,OAAO,CAAC,MAAM,CAAC,UAAU,CAC1B,CAAC,CAAC;oBAEH,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACjD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,QAAQ,CAAC,OAAO,CACpB,IAAI,kEAA8B,CAAC,eAAe,EAAE,CAAC,CAAC,EACtD,OAAO,CACR,CAAC;oBAEF,IAAI,CAAC,CAAC,CAAC,YAAY,sCAAiB,CAAC,EAAE,CAAC;wBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAG,CAAC,MAAM,CAAC,mCAAmC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE;4BACtF,KAAK,EAAE,CAAC;4BACR,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;4BAChD,UAAU,EAAE,eAAe,CAAC,UAAU;yBACvC,CAAC,CAAC,CAAA;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,yBAAyB,OAAO,CAAC,MAAM,CAAC,IAAI,+BAA+B,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA7FY,kDAAmB;8BAAnB,mBAAmB;IAE3B,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,mBAAmB,CAAC,CAAA;IAEnC,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,gBAAgB,CAAC,CAAA;IAEhC,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,MAAM,CAAC,CAAA;6CADW,kCAAe,UAEd,uBAAgB;GAP1C,mBAAmB,CA6F/B"}
1
+ {"version":3,"file":"distributed.consumer.js","sourceRoot":"","sources":["../../src/consumer/distributed.consumer.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,11 @@ export declare const MESSAGE_BUS_FACTORY_METADATA = "MESSAGE_BUS_FACTORY_METADAT
5
5
  export declare const MESSAGE_CONSUMER_METADATA = "MESSAGE_CONSUMER_METADATA";
6
6
  export declare const MESSAGING_MIDDLEWARE_METADATA = "MESSAGING_MIDDLEWARE_METADATA";
7
7
  export declare const MESSAGING_NORMALIZER_METADATA = "MESSAGING_NORMALIZER_METADATA";
8
+ export declare const MESSAGING_EXCEPTION_LISTENER_METADATA = "MESSAGING_EXCEPTION_LISTENER_METADATA";
8
9
  export declare const MessageHandler: (routingKey: string) => ClassDecorator;
9
10
  export declare const ChannelFactory: (channelConfig: ChannelConfig) => ClassDecorator;
10
11
  export declare const MessageBusFactory: (channel: any) => ClassDecorator;
11
12
  export declare const MessageConsumer: (channel: any) => ClassDecorator;
12
13
  export declare const MessagingMiddleware: (name?: string) => ClassDecorator;
13
14
  export declare const MessagingNormalizer: (name?: string) => ClassDecorator;
15
+ export declare const MessagingExceptionListener: () => ClassDecorator;
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessagingNormalizer = exports.MessagingMiddleware = exports.MessageConsumer = exports.MessageBusFactory = exports.ChannelFactory = exports.MessageHandler = exports.MESSAGING_NORMALIZER_METADATA = exports.MESSAGING_MIDDLEWARE_METADATA = exports.MESSAGE_CONSUMER_METADATA = exports.MESSAGE_BUS_FACTORY_METADATA = exports.CHANNEL_FACTORY_METADATA = exports.MESSAGE_HANDLER_METADATA = void 0;
3
+ exports.MessagingExceptionListener = exports.MessagingNormalizer = exports.MessagingMiddleware = exports.MessageConsumer = exports.MessageBusFactory = exports.ChannelFactory = exports.MessageHandler = exports.MESSAGING_EXCEPTION_LISTENER_METADATA = exports.MESSAGING_NORMALIZER_METADATA = exports.MESSAGING_MIDDLEWARE_METADATA = exports.MESSAGE_CONSUMER_METADATA = exports.MESSAGE_BUS_FACTORY_METADATA = exports.CHANNEL_FACTORY_METADATA = exports.MESSAGE_HANDLER_METADATA = void 0;
4
4
  exports.MESSAGE_HANDLER_METADATA = 'MESSAGE_HANDLER_METADATA';
5
5
  exports.CHANNEL_FACTORY_METADATA = 'CHANNEL_FACTORY_METADATA';
6
6
  exports.MESSAGE_BUS_FACTORY_METADATA = 'MESSAGE_BUS_FACTORY_METADATA';
7
7
  exports.MESSAGE_CONSUMER_METADATA = 'MESSAGE_CONSUMER_METADATA';
8
8
  exports.MESSAGING_MIDDLEWARE_METADATA = 'MESSAGING_MIDDLEWARE_METADATA';
9
9
  exports.MESSAGING_NORMALIZER_METADATA = 'MESSAGING_NORMALIZER_METADATA';
10
+ exports.MESSAGING_EXCEPTION_LISTENER_METADATA = 'MESSAGING_EXCEPTION_LISTENER_METADATA';
10
11
  const MessageHandler = (routingKey) => {
11
12
  return (target) => {
12
13
  Reflect.defineMetadata(exports.MESSAGE_HANDLER_METADATA, routingKey, target);
@@ -45,6 +46,12 @@ const MessagingNormalizer = (name) => {
45
46
  };
46
47
  };
47
48
  exports.MessagingNormalizer = MessagingNormalizer;
49
+ const MessagingExceptionListener = () => {
50
+ return (target) => {
51
+ Reflect.defineMetadata(exports.MESSAGING_EXCEPTION_LISTENER_METADATA, target.name, target);
52
+ };
53
+ };
54
+ exports.MessagingExceptionListener = MessagingExceptionListener;
48
55
  const classValidator = (value, type) => {
49
56
  if (Object.getPrototypeOf(value).name !== type) {
50
57
  throw new Error(`Given value must be instance of [${type}]`);
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/dependency-injection/decorator.ts"],"names":[],"mappings":";;;AAEa,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAC9D,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAChE,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAEtE,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAkB,EAAE;IACnE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,gCAAwB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB;AAEK,MAAM,cAAc,GAAG,CAC5B,aAA4B,EACZ,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,gCAAwB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,iBAAiB,GAAG,CAAC,OAAY,EAAkB,EAAE;IAChE,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,oCAA4B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEK,MAAM,eAAe,GAAG,CAAC,OAAY,EAAkB,EAAE;IAC9D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,iCAAyB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAa,EAAkB,EAAE;IACnE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAa,EAAkB,EAAE;IACnE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,IAAY,EAAQ,EAAE;IAC3D,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,GAAG,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/dependency-injection/decorator.ts"],"names":[],"mappings":";;;AAEa,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAC9D,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAChE,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAChE,QAAA,qCAAqC,GAAG,uCAAuC,CAAC;AAEtF,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAkB,EAAE;IACnE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,gCAAwB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB;AAEK,MAAM,cAAc,GAAG,CAC5B,aAA4B,EACZ,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,gCAAwB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,iBAAiB,GAAG,CAAC,OAAY,EAAkB,EAAE;IAChE,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,oCAA4B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEK,MAAM,eAAe,GAAG,CAAC,OAAY,EAAkB,EAAE;IAC9D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,iCAAyB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAa,EAAkB,EAAE;IACnE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAa,EAAkB,EAAE;IACnE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,MAAM,0BAA0B,GAAG,GAAmB,EAAE;IAC7D,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,6CAAqC,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,0BAA0B,8BAIrC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,IAAY,EAAQ,EAAE;IAC3D,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,GAAG,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAA"}
@@ -2,3 +2,4 @@ import { DiscoveryService, ModuleRef } from '@nestjs/core';
2
2
  export declare const registerHandlers: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
3
3
  export declare const registerMiddlewares: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
4
4
  export declare const registerMessageNormalizers: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
5
+ export declare const registerExceptionListener: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerMessageNormalizers = exports.registerMiddlewares = exports.registerHandlers = void 0;
3
+ exports.registerExceptionListener = exports.registerMessageNormalizers = exports.registerMiddlewares = exports.registerHandlers = void 0;
4
4
  const service_1 = require("./service");
5
5
  const decorator_1 = require("./decorator");
6
6
  const const_1 = require("../const");
@@ -57,4 +57,23 @@ const registerMessageNormalizers = (moduleRef, discoveryService) => {
57
57
  });
58
58
  };
59
59
  exports.registerMessageNormalizers = registerMessageNormalizers;
60
+ const registerExceptionListener = (moduleRef, discoveryService) => {
61
+ const registry = moduleRef.get(service_1.Service.EXCEPTION_LISTENER_REGISTRY);
62
+ const logger = moduleRef.get(service_1.Service.LOGGER);
63
+ const messageExceptionListenerInstances = discoveryService
64
+ .getProviders()
65
+ .filter((messageExceptionListener) => {
66
+ if (!messageExceptionListener.metatype) {
67
+ return false;
68
+ }
69
+ return Reflect.hasMetadata(decorator_1.MESSAGING_EXCEPTION_LISTENER_METADATA, messageExceptionListener.metatype);
70
+ });
71
+ messageExceptionListenerInstances.forEach((messageExceptionListener) => {
72
+ registry.register(Reflect.getMetadata(decorator_1.MESSAGING_EXCEPTION_LISTENER_METADATA, messageExceptionListener.metatype), messageExceptionListener.instance);
73
+ if (messageExceptionListener.name !== const_1.DEFAULT_NORMALIZER) {
74
+ logger.log(`ExceptionListener [${messageExceptionListener.name}] was registered`);
75
+ }
76
+ });
77
+ };
78
+ exports.registerExceptionListener = registerExceptionListener;
60
79
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/dependency-injection/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/dependency-injection/register.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export declare enum Service {
5
5
  MESSAGE_HANDLERS_REGISTRY = "messenger_MESSAGE_HANDLERS_REGISTRY",
6
6
  MESSAGE_NORMALIZERS_REGISTRY = "messenger_MESSAGE_NORMALIZERS_REGISTRY",
7
7
  CHANNEL_REGISTRY = "messenger_CHANNEL_REGISTRY",
8
+ EXCEPTION_LISTENER_REGISTRY = "messenger_EXCEPTION_LISTENER_REGISTRY",
9
+ EXCEPTION_LISTENER_HANDLER = "messenger_EXCEPTION_LISTENER_HANDLER",
8
10
  CHANNELS = "messenger_CHANNELS",
9
11
  LOGGER = "messenger_LOGGER"
10
12
  }
@@ -9,6 +9,8 @@ var Service;
9
9
  Service["MESSAGE_HANDLERS_REGISTRY"] = "messenger_MESSAGE_HANDLERS_REGISTRY";
10
10
  Service["MESSAGE_NORMALIZERS_REGISTRY"] = "messenger_MESSAGE_NORMALIZERS_REGISTRY";
11
11
  Service["CHANNEL_REGISTRY"] = "messenger_CHANNEL_REGISTRY";
12
+ Service["EXCEPTION_LISTENER_REGISTRY"] = "messenger_EXCEPTION_LISTENER_REGISTRY";
13
+ Service["EXCEPTION_LISTENER_HANDLER"] = "messenger_EXCEPTION_LISTENER_HANDLER";
12
14
  Service["CHANNELS"] = "messenger_CHANNELS";
13
15
  Service["LOGGER"] = "messenger_LOGGER";
14
16
  })(Service || (exports.Service = Service = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dependency-injection/service.ts"],"names":[],"mappings":";;;AAAA,IAAY,OASX;AATD,WAAY,OAAO;IACjB,gEAAqD,CAAA;IACrD,gEAAqD,CAAA;IACrD,0DAA+C,CAAA;IAC/C,4EAAiE,CAAA;IACjE,kFAAuE,CAAA;IACvE,0DAA+C,CAAA;IAC/C,0CAA+B,CAAA;IAC/B,sCAA2B,CAAA;AAC7B,CAAC,EATW,OAAO,uBAAP,OAAO,QASlB"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dependency-injection/service.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAWX;AAXD,WAAY,OAAO;IACjB,gEAAqD,CAAA;IACrD,gEAAqD,CAAA;IACrD,0DAA+C,CAAA;IAC/C,4EAAiE,CAAA;IACjE,kFAAuE,CAAA;IACvE,0DAA+C,CAAA;IAC/C,gFAAqE,CAAA;IACrE,8EAAmE,CAAA;IACnE,0CAA+B,CAAA;IAC/B,sCAA2B,CAAA;AAC7B,CAAC,EAXW,OAAO,uBAAP,OAAO,QAWlB"}
@@ -0,0 +1,7 @@
1
+ export declare class ExceptionContext {
2
+ readonly exception: Error;
3
+ readonly channelName: string;
4
+ readonly rawMessage: object | string;
5
+ readonly routingKey: string;
6
+ constructor(exception: Error, channelName: string, rawMessage: object | string, routingKey: string);
7
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExceptionContext = void 0;
4
+ class ExceptionContext {
5
+ constructor(exception, channelName, rawMessage, routingKey) {
6
+ this.exception = exception;
7
+ this.channelName = channelName;
8
+ this.rawMessage = rawMessage;
9
+ this.routingKey = routingKey;
10
+ }
11
+ }
12
+ exports.ExceptionContext = ExceptionContext;
13
+ //# sourceMappingURL=exception-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-context.js","sourceRoot":"","sources":["../../src/exception-listener/exception-context.ts"],"names":[],"mappings":";;;AAAA,MAAa,gBAAgB;IAC3B,YACkB,SAAgB,EAChB,WAAmB,EACnB,UAAyB,EACzB,UAAkB;QAHlB,cAAS,GAAT,SAAS,CAAO;QAChB,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAe;QACzB,eAAU,GAAV,UAAU,CAAQ;IAEpC,CAAC;CACF;AARD,4CAQC"}
@@ -0,0 +1,7 @@
1
+ import { ExceptionListenerRegistry } from './exception-listener.registry';
2
+ import { ExceptionContext } from './exception-context';
3
+ export declare class ExceptionListenerHandler {
4
+ private readonly exceptionListenerRegistry;
5
+ constructor(exceptionListenerRegistry: ExceptionListenerRegistry);
6
+ handleError(context: ExceptionContext): Promise<void>;
7
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ExceptionListenerHandler = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const exception_listener_registry_1 = require("./exception-listener.registry");
18
+ const service_1 = require("../dependency-injection/service");
19
+ let ExceptionListenerHandler = class ExceptionListenerHandler {
20
+ constructor(exceptionListenerRegistry) {
21
+ this.exceptionListenerRegistry = exceptionListenerRegistry;
22
+ }
23
+ async handleError(context) {
24
+ await this.exceptionListenerRegistry.getAll().forEach(exceptionListener => exceptionListener.onException(context));
25
+ }
26
+ };
27
+ exports.ExceptionListenerHandler = ExceptionListenerHandler;
28
+ exports.ExceptionListenerHandler = ExceptionListenerHandler = __decorate([
29
+ (0, common_1.Injectable)(),
30
+ __param(0, (0, common_1.Inject)(service_1.Service.EXCEPTION_LISTENER_REGISTRY)),
31
+ __metadata("design:paramtypes", [exception_listener_registry_1.ExceptionListenerRegistry])
32
+ ], ExceptionListenerHandler);
33
+ //# sourceMappingURL=exception-listener-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-listener-handler.js","sourceRoot":"","sources":["../../src/exception-listener/exception-listener-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+EAA0E;AAC1E,6DAA0D;AAInD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,YAEmB,yBAAoD;QAApD,8BAAyB,GAAzB,yBAAyB,CAA2B;IAEvE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACrH,CAAC;CACF,CAAA;AAVY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,2BAA2B,CAAC,CAAA;qCACA,uDAAyB;GAH5D,wBAAwB,CAUpC"}
@@ -0,0 +1,4 @@
1
+ import { ExceptionContext } from './exception-context';
2
+ export interface ExceptionListener {
3
+ onException(context: ExceptionContext): Promise<void>;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=exception-listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-listener.js","sourceRoot":"","sources":["../../src/exception-listener/exception-listener.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { ExceptionListener } from './exception-listener';
2
+ export declare class ExceptionListenerRegistry {
3
+ private registry;
4
+ register(name: string, middleware: ExceptionListener): void;
5
+ getAll(): ExceptionListener[];
6
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExceptionListenerRegistry = void 0;
4
+ class ExceptionListenerRegistry {
5
+ constructor() {
6
+ this.registry = new Map();
7
+ }
8
+ register(name, middleware) {
9
+ if (this.registry.has(name)) {
10
+ return;
11
+ }
12
+ this.registry.set(name, middleware);
13
+ }
14
+ getAll() {
15
+ return Array.from(this.registry.values());
16
+ }
17
+ }
18
+ exports.ExceptionListenerRegistry = ExceptionListenerRegistry;
19
+ //# sourceMappingURL=exception-listener.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-listener.registry.js","sourceRoot":"","sources":["../../src/exception-listener/exception-listener.registry.ts"],"names":[],"mappings":";;;AAEA,MAAa,yBAAyB;IAAtC;QACU,aAAQ,GAAmC,IAAI,GAAG,EAAE,CAAC;IAa/D,CAAC;IAXC,QAAQ,CAAC,IAAY,EAAE,UAA6B;QAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF;AAdD,8DAcC"}
package/lib/index.d.ts CHANGED
@@ -25,3 +25,6 @@ export * from './exception/invalid-channel.exception';
25
25
  export * from './exception/invalid-channel-config.exception';
26
26
  export * from './middleware/middleware.context';
27
27
  export * from './normalizer/message-normalizer';
28
+ export * from './exception-listener/exception-listener';
29
+ export * from './exception-listener/exception-context';
30
+ export * from './exception/handlers.exception';
package/lib/index.js CHANGED
@@ -41,4 +41,7 @@ __exportStar(require("./exception/invalid-channel.exception"), exports);
41
41
  __exportStar(require("./exception/invalid-channel-config.exception"), exports);
42
42
  __exportStar(require("./middleware/middleware.context"), exports);
43
43
  __exportStar(require("./normalizer/message-normalizer"), exports);
44
+ __exportStar(require("./exception-listener/exception-listener"), exports);
45
+ __exportStar(require("./exception-listener/exception-context"), exports);
46
+ __exportStar(require("./exception/handlers.exception"), exports);
44
47
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2CAAyB;AACzB,kEAAgD;AAChD,8DAA4C;AAC5C,yEAAuD;AACvD,+EAA6D;AAC7D,uEAAqD;AACrD,mEAAiD;AACjD,oEAAkD;AAClD,8DAA4C;AAC5C,8DAA4C;AAC5C,sDAAoC;AACpC,8DAA4C;AAC5C,oEAAkD;AAClD,4DAA0C;AAC1C,4DAA0C;AAC1C,oDAAkC;AAClC,6DAA2C;AAC3C,8EAA4D;AAC5D,8EAA4D;AAC5D,8DAA4C;AAC5C,oDAAkC;AAClC,0DAAwC;AACxC,wEAAsD;AACtD,+EAA6D;AAC7D,kEAAgD;AAChD,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2CAAyB;AACzB,kEAAgD;AAChD,8DAA4C;AAC5C,yEAAuD;AACvD,+EAA6D;AAC7D,uEAAqD;AACrD,mEAAiD;AACjD,oEAAkD;AAClD,8DAA4C;AAC5C,8DAA4C;AAC5C,sDAAoC;AACpC,8DAA4C;AAC5C,oEAAkD;AAClD,4DAA0C;AAC1C,4DAA0C;AAC1C,oDAAkC;AAClC,6DAA2C;AAC3C,8EAA4D;AAC5D,8EAA4D;AAC5D,8DAA4C;AAC5C,oDAAkC;AAClC,0DAAwC;AACxC,wEAAsD;AACtD,+EAA6D;AAC7D,kEAAgD;AAChD,kEAAgD;AAChD,0EAAwD;AACxD,yEAAuD;AACvD,iEAA+C"}
@@ -32,6 +32,8 @@ const handler_middleware_1 = require("./middleware/handler-middleware");
32
32
  const message_bus_collection_1 = require("./bus/message-bus.collection");
33
33
  const normalizer_registry_1 = require("./normalizer/normalizer.registry");
34
34
  const object_forward_message_normalizer_1 = require("./normalizer/object-forward-message.normalizer");
35
+ const exception_listener_registry_1 = require("./exception-listener/exception-listener.registry");
36
+ const exception_listener_handler_1 = require("./exception-listener/exception-listener-handler");
35
37
  let MessagingModule = MessagingModule_1 = class MessagingModule {
36
38
  static forRoot(options) {
37
39
  const registerChannels = () => {
@@ -90,6 +92,10 @@ let MessagingModule = MessagingModule_1 = class MessagingModule {
90
92
  provide: service_1.Service.MESSAGE_HANDLERS_REGISTRY,
91
93
  useClass: message_handler_registry_1.MessageHandlerRegistry,
92
94
  },
95
+ {
96
+ provide: service_1.Service.EXCEPTION_LISTENER_REGISTRY,
97
+ useClass: exception_listener_registry_1.ExceptionListenerRegistry,
98
+ },
93
99
  {
94
100
  provide: service_1.Service.MESSAGE_NORMALIZERS_REGISTRY,
95
101
  useClass: normalizer_registry_1.NormalizerRegistry,
@@ -98,6 +104,10 @@ let MessagingModule = MessagingModule_1 = class MessagingModule {
98
104
  provide: service_1.Service.MIDDLEWARE_REGISTRY,
99
105
  useClass: middleware_registry_1.MiddlewareRegistry,
100
106
  },
107
+ {
108
+ provide: service_1.Service.EXCEPTION_LISTENER_HANDLER,
109
+ useClass: exception_listener_handler_1.ExceptionListenerHandler,
110
+ },
101
111
  {
102
112
  provide: service_1.Service.CHANNEL_REGISTRY,
103
113
  useFactory: (channels, logger) => {
@@ -133,6 +143,7 @@ let MessagingModule = MessagingModule_1 = class MessagingModule {
133
143
  (0, register_1.registerHandlers)(this.moduleRef, this.discoveryService);
134
144
  (0, register_1.registerMiddlewares)(this.moduleRef, this.discoveryService);
135
145
  (0, register_1.registerMessageNormalizers)(this.moduleRef, this.discoveryService);
146
+ (0, register_1.registerExceptionListener)(this.moduleRef, this.discoveryService);
136
147
  const consumer = this.moduleRef.get(distributed_consumer_1.DistributedConsumer);
137
148
  consumer.run();
138
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.module.js","sourceRoot":"","sources":["../src/messaging.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messaging.module.js","sourceRoot":"","sources":["../src/messaging.module.ts"],"names":[],"mappings":"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"}