@nestjstools/messaging 2.9.2 → 2.11.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.
- package/README.md +28 -2
- package/lib/consumer/distributed.consumer.d.ts +3 -1
- package/lib/consumer/distributed.consumer.js +10 -4
- package/lib/consumer/distributed.consumer.js.map +1 -1
- package/lib/dependency-injection/decorator.d.ts +4 -0
- package/lib/dependency-injection/decorator.js +17 -1
- package/lib/dependency-injection/decorator.js.map +1 -1
- package/lib/dependency-injection/register.d.ts +1 -0
- package/lib/dependency-injection/register.js +20 -1
- package/lib/dependency-injection/register.js.map +1 -1
- package/lib/dependency-injection/service.d.ts +2 -0
- package/lib/dependency-injection/service.js +2 -0
- package/lib/dependency-injection/service.js.map +1 -1
- package/lib/exception-listener/exception-context.d.ts +7 -0
- package/lib/exception-listener/exception-context.js +13 -0
- package/lib/exception-listener/exception-context.js.map +1 -0
- package/lib/exception-listener/exception-listener-handler.d.ts +7 -0
- package/lib/exception-listener/exception-listener-handler.js +33 -0
- package/lib/exception-listener/exception-listener-handler.js.map +1 -0
- package/lib/exception-listener/exception-listener.d.ts +4 -0
- package/lib/exception-listener/exception-listener.js +3 -0
- package/lib/exception-listener/exception-listener.js.map +1 -0
- package/lib/exception-listener/exception-listener.registry.d.ts +6 -0
- package/lib/exception-listener/exception-listener.registry.js +19 -0
- package/lib/exception-listener/exception-listener.registry.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/messaging.module.js +11 -0
- package/lib/messaging.module.js.map +1 -1
- package/lib/middleware/handler-middleware.d.ts +1 -0
- package/lib/middleware/handler-middleware.js +10 -2
- package/lib/middleware/handler-middleware.js.map +1 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -93,6 +93,10 @@ import { Injectable } from '@nestjs/common';
|
|
|
93
93
|
@Injectable()
|
|
94
94
|
@MessageHandler('your.message')
|
|
95
95
|
export class SendMessageHandler implements IMessageHandler<SendMessage> {
|
|
96
|
+
// If you want to receive the message as a properly typed instance (not just a raw object),
|
|
97
|
+
// use the `@DenormalizeMessage()` decorator on the parameter:
|
|
98
|
+
// async handle(@DenormalizeMessage() message: SendMessage): Promise<MessageResponse | void> {
|
|
99
|
+
|
|
96
100
|
async handle(message: SendMessage): Promise<MessageResponse | void> {
|
|
97
101
|
console.log(message.content);
|
|
98
102
|
// Example handling logic
|
|
@@ -313,7 +317,7 @@ export class Base64Normalizer implements MessageNormalizer {
|
|
|
313
317
|
You can define a **Normalizer** per Channel
|
|
314
318
|
___
|
|
315
319
|
|
|
316
|
-
##
|
|
320
|
+
## ⤵️ Middlewares
|
|
317
321
|
|
|
318
322
|
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.
|
|
319
323
|
|
|
@@ -407,6 +411,28 @@ export class AppModule {}
|
|
|
407
411
|
|
|
408
412
|
---
|
|
409
413
|
|
|
414
|
+
## 🔰 ExceptionListener
|
|
415
|
+
|
|
416
|
+
The **ExceptionListener** provides a centralized way to handle exceptions thrown during asynchronous message processing from any **channel** in your **messaging system**.
|
|
417
|
+
|
|
418
|
+
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.
|
|
419
|
+
|
|
420
|
+
Example Use Case:
|
|
421
|
+
You can log the error, send a notification, or trigger fallback logic whenever a message handler throws an exception.
|
|
422
|
+
|
|
423
|
+
### Example ExceptionListener Code:
|
|
424
|
+
```typescript
|
|
425
|
+
import { Injectable } from '@nestjs/common';
|
|
426
|
+
import { ExceptionListener, MessagingExceptionListener, ExceptionContext } from '@nestjstools/messaging';
|
|
427
|
+
|
|
428
|
+
@MessagingExceptionListener()
|
|
429
|
+
export class CustomExceptionListener implements ExceptionListener {
|
|
430
|
+
onException(context: ExceptionContext): Promise<void> {
|
|
431
|
+
console.log(`Here I can handle exception If I want and do some action`);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
|
|
410
436
|
## Configuration options
|
|
411
437
|
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:
|
|
412
438
|
|
|
@@ -418,7 +444,7 @@ Here’s a table with the documentation for the `MessagingModule.forRoot` config
|
|
|
418
444
|
| **`buses`** | Array of message buses that define routing and processing of messages. | `[]` (empty array by default) |
|
|
419
445
|
| **`channels`** | Array of channel configurations used by the message buses. | `[]` (empty array by default) |
|
|
420
446
|
| **`debug`** | Enables or disables debug mode for logging additional messages. | `false` |
|
|
421
|
-
| **`logging`** | Enables or disables logging for bus activity (e.g., message dispatch). | `
|
|
447
|
+
| **`logging`** | Enables or disables logging for bus activity (e.g., message dispatch). | `true` |
|
|
422
448
|
|
|
423
449
|
---
|
|
424
450
|
|
|
@@ -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.
|
|
87
|
-
|
|
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;
|
|
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;AACpE,iGAA4F;AAC5F,+EAA2E;AAE3E,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,YAEmB,UAAuB,EAEvB,eAAgC,EAEhC,wBAAkD,EAC1B,MAAuB,EAC/C,gBAAkC;QANlC,eAAU,GAAV,UAAU,CAAa;QAEvB,oBAAe,GAAf,eAAe,CAAiB;QAEhC,6BAAwB,GAAxB,wBAAwB,CAA0B;QAC1B,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;oBACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAG,CAAC,MAAM,CACxB,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,CAAC;oBACN,CAAC;oBAED,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,IAAI,oCAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrJ,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;AAjGY,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,0BAA0B,CAAC,CAAA;IAE1C,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,MAAM,CAAC,CAAA;6CAHW,kCAAe;QAEN,qDAAwB,UAEhC,uBAAgB;GAT1C,mBAAmB,CAiG/B"}
|
|
@@ -5,9 +5,13 @@ 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";
|
|
9
|
+
export declare const MESSAGING_MESSAGE_METADATA = "MESSAGING_MESSAGE_METADATA";
|
|
8
10
|
export declare const MessageHandler: (routingKey: string) => ClassDecorator;
|
|
9
11
|
export declare const ChannelFactory: (channelConfig: ChannelConfig) => ClassDecorator;
|
|
10
12
|
export declare const MessageBusFactory: (channel: any) => ClassDecorator;
|
|
11
13
|
export declare const MessageConsumer: (channel: any) => ClassDecorator;
|
|
12
14
|
export declare const MessagingMiddleware: (name?: string) => ClassDecorator;
|
|
13
15
|
export declare const MessagingNormalizer: (name?: string) => ClassDecorator;
|
|
16
|
+
export declare const MessagingExceptionListener: () => ClassDecorator;
|
|
17
|
+
export declare function DenormalizeMessage(): ParameterDecorator;
|
|
@@ -1,12 +1,15 @@
|
|
|
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_MESSAGE_METADATA = 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
|
+
exports.DenormalizeMessage = DenormalizeMessage;
|
|
4
5
|
exports.MESSAGE_HANDLER_METADATA = 'MESSAGE_HANDLER_METADATA';
|
|
5
6
|
exports.CHANNEL_FACTORY_METADATA = 'CHANNEL_FACTORY_METADATA';
|
|
6
7
|
exports.MESSAGE_BUS_FACTORY_METADATA = 'MESSAGE_BUS_FACTORY_METADATA';
|
|
7
8
|
exports.MESSAGE_CONSUMER_METADATA = 'MESSAGE_CONSUMER_METADATA';
|
|
8
9
|
exports.MESSAGING_MIDDLEWARE_METADATA = 'MESSAGING_MIDDLEWARE_METADATA';
|
|
9
10
|
exports.MESSAGING_NORMALIZER_METADATA = 'MESSAGING_NORMALIZER_METADATA';
|
|
11
|
+
exports.MESSAGING_EXCEPTION_LISTENER_METADATA = 'MESSAGING_EXCEPTION_LISTENER_METADATA';
|
|
12
|
+
exports.MESSAGING_MESSAGE_METADATA = 'MESSAGING_MESSAGE_METADATA';
|
|
10
13
|
const MessageHandler = (routingKey) => {
|
|
11
14
|
return (target) => {
|
|
12
15
|
Reflect.defineMetadata(exports.MESSAGE_HANDLER_METADATA, routingKey, target);
|
|
@@ -45,6 +48,19 @@ const MessagingNormalizer = (name) => {
|
|
|
45
48
|
};
|
|
46
49
|
};
|
|
47
50
|
exports.MessagingNormalizer = MessagingNormalizer;
|
|
51
|
+
const MessagingExceptionListener = () => {
|
|
52
|
+
return (target) => {
|
|
53
|
+
Reflect.defineMetadata(exports.MESSAGING_EXCEPTION_LISTENER_METADATA, target.name, target);
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
exports.MessagingExceptionListener = MessagingExceptionListener;
|
|
57
|
+
function DenormalizeMessage() {
|
|
58
|
+
return (target, propertyKey, parameterIndex) => {
|
|
59
|
+
const paramTypes = Reflect.getMetadata('design:paramtypes', target, propertyKey);
|
|
60
|
+
const type = paramTypes[parameterIndex];
|
|
61
|
+
Reflect.defineMetadata('message:type', type, target, propertyKey);
|
|
62
|
+
};
|
|
63
|
+
}
|
|
48
64
|
const classValidator = (value, type) => {
|
|
49
65
|
if (Object.getPrototypeOf(value).name !== type) {
|
|
50
66
|
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":";;;
|
|
1
|
+
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/dependency-injection/decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"exception-listener.js","sourceRoot":"","sources":["../../src/exception-listener/exception-listener.ts"],"names":[],"mappings":""}
|
|
@@ -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"}
|
package/lib/messaging.module.js
CHANGED
|
@@ -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":";;;;;;;;;;;;;AAAA,2CAA2G;AAC3G,qCAAwF;AACxF,4DAAyD;AACzD,2FAAsF;AACtF,iEAA6D;AAC7D,uFAAiF;AAEjF,2EAAsE;AACtE,uCAA4E;AAC5E,uEAAiE;AACjE,iFAA4E;AAE5E,sDAAkD;AAClD,2FAAqF;AACrF,0EAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"messaging.module.js","sourceRoot":"","sources":["../src/messaging.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export declare class HandlerMiddleware implements Middleware {
|
|
|
9
9
|
constructor(handlerRegistry: MessageHandlerRegistry, logger: MessagingLogger);
|
|
10
10
|
process(message: RoutingMessage, context: MiddlewareContext): Promise<any>;
|
|
11
11
|
private handleParallel;
|
|
12
|
+
private convertToInstance;
|
|
12
13
|
private logHandlerMessage;
|
|
13
14
|
private logHandlerErrorMessage;
|
|
14
15
|
}
|
|
@@ -19,6 +19,7 @@ const service_1 = require("../dependency-injection/service");
|
|
|
19
19
|
const decorator_1 = require("../dependency-injection/decorator");
|
|
20
20
|
const log_1 = require("../logger/log");
|
|
21
21
|
const handlers_exception_1 = require("../exception/handlers.exception");
|
|
22
|
+
const class_transformer_1 = require("class-transformer");
|
|
22
23
|
let HandlerMiddleware = class HandlerMiddleware {
|
|
23
24
|
constructor(handlerRegistry, logger) {
|
|
24
25
|
this.handlerRegistry = handlerRegistry;
|
|
@@ -34,7 +35,7 @@ let HandlerMiddleware = class HandlerMiddleware {
|
|
|
34
35
|
const handler = handlers[0];
|
|
35
36
|
this.logHandlerMessage(handler.constructor.name, message.messageRoutingKey);
|
|
36
37
|
try {
|
|
37
|
-
const result = await handler.handle(message.message);
|
|
38
|
+
const result = await handler.handle(this.convertToInstance(handler, message.message));
|
|
38
39
|
return Promise.resolve(result);
|
|
39
40
|
}
|
|
40
41
|
catch (error) {
|
|
@@ -46,7 +47,7 @@ let HandlerMiddleware = class HandlerMiddleware {
|
|
|
46
47
|
const results = await Promise.allSettled(handlers.map(handler => {
|
|
47
48
|
try {
|
|
48
49
|
this.logHandlerMessage(handler.constructor.name, message.messageRoutingKey);
|
|
49
|
-
return handler.handle(message.message);
|
|
50
|
+
return handler.handle(this.convertToInstance(handler, message.message));
|
|
50
51
|
}
|
|
51
52
|
catch (err) {
|
|
52
53
|
return Promise.reject({ handler: handler.constructor.name, error: err });
|
|
@@ -64,6 +65,13 @@ let HandlerMiddleware = class HandlerMiddleware {
|
|
|
64
65
|
}
|
|
65
66
|
return Promise.resolve(null);
|
|
66
67
|
}
|
|
68
|
+
convertToInstance(handler, message) {
|
|
69
|
+
const instance = Reflect.getMetadata('design:paramtypes', handler, 'handle');
|
|
70
|
+
if (!instance) {
|
|
71
|
+
return message;
|
|
72
|
+
}
|
|
73
|
+
return (0, class_transformer_1.plainToInstance)(instance[0], message);
|
|
74
|
+
}
|
|
67
75
|
logHandlerMessage(handler, messageRoutingKey) {
|
|
68
76
|
this.logger.debug(log_1.Log.create(`Found a handler [${handler}] for message [${messageRoutingKey}]`));
|
|
69
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-middleware.js","sourceRoot":"","sources":["../../src/middleware/handler-middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,kFAA6E;AAC7E,2CAAoD;AACpD,6DAA0D;AAC1D,iEAAwE;AAGxE,uCAAoC;AAEpC,wEAAkF;
|
|
1
|
+
{"version":3,"file":"handler-middleware.js","sourceRoot":"","sources":["../../src/middleware/handler-middleware.ts"],"names":[],"mappings":"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"}
|