@nestjstools/messaging 4.1.0 → 4.2.0-beta.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 +3 -133
- package/lib/bus/in-memory-message-bus.factory.d.ts +3 -1
- package/lib/bus/in-memory-message-bus.factory.js +6 -3
- package/lib/bus/in-memory-message-bus.factory.js.map +1 -1
- package/lib/bus/in-memory-message.bus.d.ts +3 -1
- package/lib/bus/in-memory-message.bus.js +19 -10
- package/lib/bus/in-memory-message.bus.js.map +1 -1
- package/lib/config.js.map +1 -1
- package/lib/consumer/consumer-message.d.ts +2 -2
- package/lib/consumer/consumer-message.js.map +1 -1
- package/lib/consumer/distributed.consumer.js.map +1 -1
- package/lib/dependency-injection/decorator.d.ts +3 -0
- package/lib/dependency-injection/decorator.js +8 -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 +13 -8
- package/lib/dependency-injection/register.js.map +1 -1
- package/lib/handler/message-handler.registry.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/lifecycle-hook/messaging-lifecycle-hook-handler.d.ts +9 -0
- package/lib/lifecycle-hook/messaging-lifecycle-hook-handler.js +41 -0
- package/lib/lifecycle-hook/messaging-lifecycle-hook-handler.js.map +1 -0
- package/lib/lifecycle-hook/messaging-lifecycle-hook-listener.d.ts +10 -0
- package/lib/lifecycle-hook/messaging-lifecycle-hook-listener.js +10 -0
- package/lib/lifecycle-hook/messaging-lifecycle-hook-listener.js.map +1 -0
- package/lib/lifecycle-hook/messaging-lifecycle-hook.registry.d.ts +5 -0
- package/lib/lifecycle-hook/messaging-lifecycle-hook.registry.js +19 -0
- package/lib/lifecycle-hook/messaging-lifecycle-hook.registry.js.map +1 -0
- package/lib/messaging.module.js +8 -2
- package/lib/messaging.module.js.map +1 -1
- package/lib/shared/base-registry.d.ts +1 -1
- package/lib/shared/base-registry.js.map +1 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -4
package/README.md
CHANGED
|
@@ -39,14 +39,9 @@ message handling pipelines while ensuring flexibility and reliability.
|
|
|
39
39
|
|
|
40
40
|
## Documentation
|
|
41
41
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Example project based on RaabitMQ example
|
|
48
|
-
|
|
49
|
-
Repository: https://github.com/nestjstools/messaging-rabbitmq-example
|
|
42
|
+
- Documentation: https://docs.nestjstools.com/messaging
|
|
43
|
+
- Website: https://nestjstools.com
|
|
44
|
+
- Example repository: https://github.com/nestjstools/messaging-rabbitmq-example
|
|
50
45
|
|
|
51
46
|
---
|
|
52
47
|
|
|
@@ -455,128 +450,3 @@ export class AppModule {
|
|
|
455
450
|
| **`avoidErrorsForNotExistedHandlers`** | Avoid errors if no handler is available for the message. | `false` |
|
|
456
451
|
| **`normalizer`** | Set your custom normalizer for messages | |
|
|
457
452
|
|
|
458
|
-
## Creating Your Own Channel and Bus
|
|
459
|
-
|
|
460
|
-
This process allows you to define and integrate a custom **Channel** and **MessageBus** for your application, giving you
|
|
461
|
-
complete flexibility and control over how messages are processed, dispatched, and consumed. Each step provides the
|
|
462
|
-
necessary building blocks to create your own transport layer with full integration into the `MessagingModule`.
|
|
463
|
-
|
|
464
|
-
### 1. Create a `ChannelConfig`
|
|
465
|
-
|
|
466
|
-
A `ChannelConfig` class holds the configuration required to establish a stable connection to your service (e.g.,
|
|
467
|
-
RabbitMQ, Redis, etc.). Your class should implement the `ChannelConfig` interface and define necessary data like the
|
|
468
|
-
channel name and middlewares.
|
|
469
|
-
|
|
470
|
-
```typescript
|
|
471
|
-
export class YourChannelConfig implements ChannelConfig {
|
|
472
|
-
public readonly name: string;
|
|
473
|
-
public readonly middlewares: object[];
|
|
474
|
-
|
|
475
|
-
constructor({ name, middlewares }: AmqpChannelConfig) {
|
|
476
|
-
this.name = name;
|
|
477
|
-
this.middlewares = middlewares ?? []; // Default to empty array if no middlewares provided
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
### 2. Create a `Channel`
|
|
483
|
-
|
|
484
|
-
Next, create a class that implements the `Channel` interface. This class will serve as your `DataSource` and utilize the
|
|
485
|
-
configuration you defined in the `ChannelConfig` class.
|
|
486
|
-
|
|
487
|
-
```typescript
|
|
488
|
-
export class YourChannel extends Channel {
|
|
489
|
-
}
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
### 3. Create a `ChannelFactory`
|
|
493
|
-
|
|
494
|
-
A `ChannelFactory` is responsible for creating instances of your custom `Channel` class. It implements the
|
|
495
|
-
`IChannelFactory` interface and ensures proper injection into your app.
|
|
496
|
-
|
|
497
|
-
```typescript
|
|
498
|
-
|
|
499
|
-
@Injectable()
|
|
500
|
-
@ChannelFactory(YourChannel)
|
|
501
|
-
export class YourChannelFactory implements IChannelFactory<YourChannelConfig> {
|
|
502
|
-
create(channelConfig: YourChannelConfig): Channel {
|
|
503
|
-
return new YourChannel(channelConfig);
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
### 4. Create a `MessageBus`
|
|
509
|
-
|
|
510
|
-
The `MessageBus` handles the dispatching of messages in your system. Create a class implementing the `IMessageBus`
|
|
511
|
-
interface to send messages to your custom service (e.g., RabbitMQ, Redis, etc.).
|
|
512
|
-
|
|
513
|
-
```typescript
|
|
514
|
-
export class YourMessageBus implements IMessageBus {
|
|
515
|
-
constructor(private readonly yourChannel: YourChannel) {
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
async dispatch(message: RoutingMessage): Promise<MessageResponse | void> {
|
|
519
|
-
// Write your logic here to dispatch the message to your channel (e.g., RabbitMQ)
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
```
|
|
523
|
-
|
|
524
|
-
### 5. Create a `MessageBusFactory`
|
|
525
|
-
|
|
526
|
-
The `MessageBusFactory` creates instances of your `MessageBus` and ensures it's properly integrated with your `Channel`.
|
|
527
|
-
It implements the `IMessageBusFactory` interface.
|
|
528
|
-
|
|
529
|
-
```typescript
|
|
530
|
-
|
|
531
|
-
@Injectable()
|
|
532
|
-
@MessageBusFactory(YourChannel)
|
|
533
|
-
export class YourMessageBusFactory implements IMessageBusFactory<YourChannel> {
|
|
534
|
-
create(channel: YourChannel): IMessageBus {
|
|
535
|
-
return new YourMessageBus(channel); // Return a new instance of your message bus
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
```
|
|
539
|
-
|
|
540
|
-
### 6. Create a Consumer `MessageConsumer`
|
|
541
|
-
|
|
542
|
-
A consumer receives and processes messages. Create a class that implements the `IMessagingConsumer` interface and handle
|
|
543
|
-
the message processing within the `consume` method.
|
|
544
|
-
|
|
545
|
-
```typescript
|
|
546
|
-
|
|
547
|
-
@Injectable()
|
|
548
|
-
@MessageConsumer(YourChannel)
|
|
549
|
-
export class YourMessagingConsumer implements IMessagingConsumer<YourChannel> {
|
|
550
|
-
async consume(dispatcher: ConsumerMessageDispatcher, channel: YourChannel): Promise<void> {
|
|
551
|
-
// Logic to consume a message...
|
|
552
|
-
//TODO dispatcher.dispatch(new ConsumerMessage(...));
|
|
553
|
-
|
|
554
|
-
return Promise.resolve();
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
async onError(errored: ConsumerDispatchedMessageError, channel: YourChannel): Promise<void> {
|
|
558
|
-
// Handle error if message processing fails
|
|
559
|
-
return Promise.resolve();
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
```
|
|
563
|
-
|
|
564
|
-
### 7. Add Custom `MessageOptions` to Your Bus (Optional)
|
|
565
|
-
|
|
566
|
-
You can create custom message options for your message.
|
|
567
|
-
|
|
568
|
-
```typescript
|
|
569
|
-
export class YourMessageOptions implements MessageOptions {
|
|
570
|
-
constructor(public readonly middlewares: Middleware[] = []) {
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
```
|
|
574
|
-
|
|
575
|
-
Classes with `Injectable()` decorator must be defined as providers in somewhere in application.
|
|
576
|
-
|
|
577
|
-
---
|
|
578
|
-
|
|
579
|
-
## Keywords
|
|
580
|
-
|
|
581
|
-
nestjs messaging library, nestjs message bus, nestjs service bus, <br>nestjs distributed systems,
|
|
582
|
-
nestjs microservices messaging, broker independent messaging for nestjs
|
|
@@ -4,10 +4,12 @@ import { MiddlewareRegistry } from '../middleware/middleware.registry';
|
|
|
4
4
|
import { InMemoryChannel } from '../channel/in-memory.channel';
|
|
5
5
|
import { IMessageBusFactory } from './i-message-bus.factory';
|
|
6
6
|
import { NormalizerRegistry } from '../normalizer/normalizer.registry';
|
|
7
|
+
import { MessagingLifecycleHookHandler } from '../lifecycle-hook/messaging-lifecycle-hook-handler';
|
|
7
8
|
export declare class InMemoryMessageBusFactory implements IMessageBusFactory<InMemoryChannel> {
|
|
8
9
|
private registry;
|
|
9
10
|
private middlewareRegistry;
|
|
10
11
|
private messageNormalizerRegistry;
|
|
11
|
-
|
|
12
|
+
private messagingHookHandler;
|
|
13
|
+
constructor(registry: MessageHandlerRegistry, middlewareRegistry: MiddlewareRegistry, messageNormalizerRegistry: NormalizerRegistry, messagingHookHandler: MessagingLifecycleHookHandler);
|
|
12
14
|
create(channel: InMemoryChannel): IMessageBus;
|
|
13
15
|
}
|
|
@@ -21,14 +21,16 @@ const in_memory_channel_1 = require("../channel/in-memory.channel");
|
|
|
21
21
|
const decorator_1 = require("../dependency-injection/decorator");
|
|
22
22
|
const in_memory_message_bus_1 = require("./in-memory-message.bus");
|
|
23
23
|
const normalizer_registry_1 = require("../normalizer/normalizer.registry");
|
|
24
|
+
const messaging_lifecycle_hook_handler_1 = require("../lifecycle-hook/messaging-lifecycle-hook-handler");
|
|
24
25
|
let InMemoryMessageBusFactory = class InMemoryMessageBusFactory {
|
|
25
|
-
constructor(registry, middlewareRegistry, messageNormalizerRegistry) {
|
|
26
|
+
constructor(registry, middlewareRegistry, messageNormalizerRegistry, messagingHookHandler) {
|
|
26
27
|
this.registry = registry;
|
|
27
28
|
this.middlewareRegistry = middlewareRegistry;
|
|
28
29
|
this.messageNormalizerRegistry = messageNormalizerRegistry;
|
|
30
|
+
this.messagingHookHandler = messagingHookHandler;
|
|
29
31
|
}
|
|
30
32
|
create(channel) {
|
|
31
|
-
return new in_memory_message_bus_1.InMemoryMessageBus(this.registry, this.middlewareRegistry, channel, this.messageNormalizerRegistry);
|
|
33
|
+
return new in_memory_message_bus_1.InMemoryMessageBus(this.registry, this.middlewareRegistry, channel, this.messageNormalizerRegistry, this.messagingHookHandler);
|
|
32
34
|
}
|
|
33
35
|
};
|
|
34
36
|
exports.InMemoryMessageBusFactory = InMemoryMessageBusFactory;
|
|
@@ -40,6 +42,7 @@ exports.InMemoryMessageBusFactory = InMemoryMessageBusFactory = __decorate([
|
|
|
40
42
|
__param(2, (0, common_1.Inject)(service_1.Service.MESSAGE_NORMALIZERS_REGISTRY)),
|
|
41
43
|
__metadata("design:paramtypes", [message_handler_registry_1.MessageHandlerRegistry,
|
|
42
44
|
middleware_registry_1.MiddlewareRegistry,
|
|
43
|
-
normalizer_registry_1.NormalizerRegistry
|
|
45
|
+
normalizer_registry_1.NormalizerRegistry,
|
|
46
|
+
messaging_lifecycle_hook_handler_1.MessagingLifecycleHookHandler])
|
|
44
47
|
], InMemoryMessageBusFactory);
|
|
45
48
|
//# sourceMappingURL=in-memory-message-bus.factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-message-bus.factory.js","sourceRoot":"","sources":["../../src/bus/in-memory-message-bus.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,kFAA6E;AAC7E,6DAA0D;AAC1D,2EAAuE;AACvE,oEAA+D;AAC/D,iEAAsE;AACtE,mEAA6D;AAE7D,2EAAuE;
|
|
1
|
+
{"version":3,"file":"in-memory-message-bus.factory.js","sourceRoot":"","sources":["../../src/bus/in-memory-message-bus.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,kFAA6E;AAC7E,6DAA0D;AAC1D,2EAAuE;AACvE,oEAA+D;AAC/D,iEAAsE;AACtE,mEAA6D;AAE7D,2EAAuE;AACvE,yGAAmG;AAI5F,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YAEU,QAAgC,EAEhC,kBAAsC,EAEtC,yBAA6C,EAC7C,oBAAmD;QALnD,aAAQ,GAAR,QAAQ,CAAwB;QAEhC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAEtC,8BAAyB,GAAzB,yBAAyB,CAAoB;QAC7C,yBAAoB,GAApB,oBAAoB,CAA+B;IAE7D,CAAC;IAED,MAAM,CAAC,OAAwB;QAC7B,OAAO,IAAI,0CAAkB,CAC3B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,kBAAkB,EACvB,OAAO,EACP,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,oBAAoB,CAC1B,CAAC;IACJ,CAAC;CACF,CAAA;AArBY,8DAAyB;oCAAzB,yBAAyB;IAFrC,IAAA,mBAAU,GAAE;IACZ,IAAA,6BAAiB,EAAC,mCAAe,CAAC;IAG9B,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,yBAAyB,CAAC,CAAA;IAEzC,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,mBAAmB,CAAC,CAAA;IAEnC,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,4BAA4B,CAAC,CAAA;qCAH3B,iDAAsB;QAEZ,wCAAkB;QAEX,wCAAkB;QACvB,gEAA6B;GARlD,yBAAyB,CAqBrC"}
|
|
@@ -4,11 +4,13 @@ import { MiddlewareRegistry } from '../middleware/middleware.registry';
|
|
|
4
4
|
import { InMemoryChannel } from '../channel/in-memory.channel';
|
|
5
5
|
import { Message } from '../message/message';
|
|
6
6
|
import { NormalizerRegistry } from '../normalizer/normalizer.registry';
|
|
7
|
+
import { MessagingLifecycleHookHandler } from '../lifecycle-hook/messaging-lifecycle-hook-handler';
|
|
7
8
|
export declare class InMemoryMessageBus implements IMessageBus {
|
|
8
9
|
private registry;
|
|
9
10
|
private middlewareRegistry;
|
|
10
11
|
private channel;
|
|
11
12
|
private normalizerRegistry;
|
|
12
|
-
|
|
13
|
+
private messagingHookHandler;
|
|
14
|
+
constructor(registry: MessageHandlerRegistry, middlewareRegistry: MiddlewareRegistry, channel: InMemoryChannel, normalizerRegistry: NormalizerRegistry, messagingHookHandler: MessagingLifecycleHookHandler);
|
|
13
15
|
dispatch(message: Message): Promise<object | void>;
|
|
14
16
|
}
|
|
@@ -11,15 +11,29 @@ const message_factory_1 = require("../message/message.factory");
|
|
|
11
11
|
const routing_message_1 = require("../message/routing-message");
|
|
12
12
|
const default_message_options_1 = require("../message/default-message-options");
|
|
13
13
|
class InMemoryMessageBus {
|
|
14
|
-
constructor(registry, middlewareRegistry, channel, normalizerRegistry) {
|
|
14
|
+
constructor(registry, middlewareRegistry, channel, normalizerRegistry, messagingHookHandler) {
|
|
15
15
|
this.registry = registry;
|
|
16
16
|
this.middlewareRegistry = middlewareRegistry;
|
|
17
17
|
this.channel = channel;
|
|
18
18
|
this.normalizerRegistry = normalizerRegistry;
|
|
19
|
+
this.messagingHookHandler = messagingHookHandler;
|
|
19
20
|
}
|
|
20
21
|
async dispatch(message) {
|
|
21
22
|
const middlewares = [];
|
|
23
|
+
// Execution order: channel middlewares -> message middlewares -> handler middleware.
|
|
22
24
|
middlewares.push(...(this.channel.config?.middlewares ?? []), ...(message.messageOptions?.middlewares ?? []), handler_middleware_1.HandlerMiddleware);
|
|
25
|
+
let messageToDispatch = message instanceof routing_message_1.RoutingMessage ? message.message : {};
|
|
26
|
+
if (message instanceof sealed_routing_message_1.SealedRoutingMessage) {
|
|
27
|
+
// Sealed messages carry raw payload and must be denormalized before dispatch.
|
|
28
|
+
const normalizerDefinition = message.messageOptions instanceof default_message_options_1.DefaultMessageOptions
|
|
29
|
+
? message.messageOptions.normalizer
|
|
30
|
+
: object_forward_message_normalizer_1.ObjectForwardMessageNormalizer;
|
|
31
|
+
messageToDispatch = await this.normalizerRegistry
|
|
32
|
+
.getByName(normalizerDefinition['name'])
|
|
33
|
+
.denormalize(message.message, message.messageRoutingKey);
|
|
34
|
+
}
|
|
35
|
+
// Hook fired once the payload shape is ready for handler pipeline.
|
|
36
|
+
await this.messagingHookHandler.handleAfterMessageDenormalized(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message));
|
|
23
37
|
try {
|
|
24
38
|
this.registry.getByRoutingKey(message.messageRoutingKey);
|
|
25
39
|
}
|
|
@@ -36,6 +50,7 @@ class InMemoryMessageBus {
|
|
|
36
50
|
message.messageOptions?.avoidErrorsWhenNotExistedHandler ??
|
|
37
51
|
avoidErrorsForNonExistedHandlers;
|
|
38
52
|
}
|
|
53
|
+
// Missing handler can be configured as no-op for fire-and-forget scenarios.
|
|
39
54
|
if (avoidErrorsForNonExistedHandlers) {
|
|
40
55
|
return Promise.resolve();
|
|
41
56
|
}
|
|
@@ -43,16 +58,10 @@ class InMemoryMessageBus {
|
|
|
43
58
|
}
|
|
44
59
|
const middlewareInstances = middlewares.map((middleware) => this.middlewareRegistry.getByName(decorator_extractor_1.DecoratorExtractor.extractMessageMiddleware(middleware)));
|
|
45
60
|
const context = middleware_context_1.MiddlewareContext.createFresh(middlewareInstances);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
let normalizerDefinition = (message.messageOptions instanceof default_message_options_1.DefaultMessageOptions
|
|
49
|
-
? message.messageOptions.normalizer
|
|
50
|
-
: object_forward_message_normalizer_1.ObjectForwardMessageNormalizer);
|
|
51
|
-
messageToDispatch = await this.normalizerRegistry
|
|
52
|
-
.getByName(normalizerDefinition['name'])
|
|
53
|
-
.denormalize(message.message, message.messageRoutingKey);
|
|
54
|
-
}
|
|
61
|
+
// Hook around handler execution.
|
|
62
|
+
await this.messagingHookHandler.handleBeforeMessageHandler(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message));
|
|
55
63
|
const response = await middlewareInstances[0].process(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message), context);
|
|
64
|
+
await this.messagingHookHandler.handleAfterMessageHandlerExecuted(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message));
|
|
56
65
|
return Promise.resolve(response);
|
|
57
66
|
}
|
|
58
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-message.bus.js","sourceRoot":"","sources":["../../src/bus/in-memory-message.bus.ts"],"names":[],"mappings":";;;AAGA,oEAA+D;AAC/D,yEAAqE;AACrE,yEAAqE;AACrE,uEAAmE;AAEnE,8EAAyE;AACzE,uGAAiG;AACjG,gEAA4D;AAE5D,gEAA4D;AAE5D,gFAA2E;
|
|
1
|
+
{"version":3,"file":"in-memory-message.bus.js","sourceRoot":"","sources":["../../src/bus/in-memory-message.bus.ts"],"names":[],"mappings":"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"}
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,sGAAgG;AAoChG,MAAa,aAAa;IA0BxB,YACkB,IAAY,EAC5B,gCAA0C,EAC1C,WAAsB,EACtB,cAAwB,EACxB,UAAmB;QAJH,SAAI,GAAJ,IAAI,CAAQ;QAM5B,IAAI,CAAC,gCAAgC;YACnC,gCAAgC,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,kEAA8B,CAAC;IACjE,CAAC;CACF;AAvCD,sCAuCC;AAED,MAAa,qBAAsB,SAAQ,aAAa;IACtD,YAAY,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,sGAAgG;AAoChG,MAAa,aAAa;IA0BxB,YACkB,IAAY,EAC5B,gCAA0C,EAC1C,WAAsB,EACtB,cAAwB,EACxB,UAAmB;QAJH,SAAI,GAAJ,IAAI,CAAQ;QAM5B,IAAI,CAAC,gCAAgC;YACnC,gCAAgC,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,kEAA8B,CAAC;IACjE,CAAC;CACF;AAvCD,sCAuCC;AAED,MAAa,qBAAsB,SAAQ,aAAa;IACtD,YAAY,EACV,IAAI,EACJ,gCAAgC,EAChC,WAAW,EACX,cAAc,EACd,UAAU,GACY;QACtB,KAAK,CACH,IAAI,EACJ,gCAAgC,EAChC,WAAW,EACX,cAAc,EACd,UAAU,CACX,CAAC;IACJ,CAAC;CACF;AAhBD,sDAgBC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare class ConsumerMessage {
|
|
2
2
|
readonly message: object | string;
|
|
3
3
|
readonly routingKey: string;
|
|
4
|
-
readonly metadata:
|
|
5
|
-
constructor(message: object | string, routingKey: string, metadata?:
|
|
4
|
+
readonly metadata: Record<string, any>;
|
|
5
|
+
constructor(message: object | string, routingKey: string, metadata?: Record<string, any>);
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer-message.js","sourceRoot":"","sources":["../../src/consumer/consumer-message.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAC1B,YACkB,OAAwB,EACxB,UAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"consumer-message.js","sourceRoot":"","sources":["../../src/consumer/consumer-message.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAC1B,YACkB,OAAwB,EACxB,UAAkB,EAClB,WAAgC,EAAE;QAFlC,YAAO,GAAP,OAAO,CAAiB;QACxB,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAA0B;QAElD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AATD,0CASC"}
|
|
@@ -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;AAE9E,iGAA4F;AAC5F,sEAAiE;AAEjE,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;
|
|
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;AAE9E,iGAA4F;AAC5F,sEAAiE;AAEjE,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,GAA4B,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEtE,MAAM,UAAU,GAAG,IAAI,yCAAkB,CACvC,IAAI,CAAC,UAAU,EACf,OAAO,EACP,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,IAAI,CAAC,wBAAwB,CAC9B,CAAC;YAEF,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAE5C,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,yBAAyB,OAAO,CAAC,MAAM,CAAC,IAAI,+BAA+B,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA/DY,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,CA+D/B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ChannelConfig } from '../config';
|
|
2
|
+
import { LifecycleHook } from '../lifecycle-hook/messaging-lifecycle-hook-listener';
|
|
2
3
|
export declare const MESSAGE_HANDLER_METADATA = "MESSAGE_HANDLER_METADATA";
|
|
3
4
|
export declare const CHANNEL_FACTORY_METADATA = "CHANNEL_FACTORY_METADATA";
|
|
4
5
|
export declare const MESSAGE_BUS_FACTORY_METADATA = "MESSAGE_BUS_FACTORY_METADATA";
|
|
@@ -7,6 +8,7 @@ export declare const MESSAGING_MIDDLEWARE_METADATA = "MESSAGING_MIDDLEWARE_METAD
|
|
|
7
8
|
export declare const MESSAGING_NORMALIZER_METADATA = "MESSAGING_NORMALIZER_METADATA";
|
|
8
9
|
export declare const MESSAGING_EXCEPTION_LISTENER_METADATA = "MESSAGING_EXCEPTION_LISTENER_METADATA";
|
|
9
10
|
export declare const MESSAGING_MESSAGE_METADATA = "MESSAGING_MESSAGE_METADATA";
|
|
11
|
+
export declare const MESSAGING_LIFECYCLE_HOOK_METADATA = "MESSAGING_LIFECYCLE_HOOK_METADATA";
|
|
10
12
|
export declare const MessageHandler: (...routingKey: string[]) => ClassDecorator;
|
|
11
13
|
export declare const ChannelFactory: (channelConfig: ChannelConfig) => ClassDecorator;
|
|
12
14
|
export declare const MessageBusFactory: (channel: any) => ClassDecorator;
|
|
@@ -14,4 +16,5 @@ export declare const MessageConsumer: (channel: any) => ClassDecorator;
|
|
|
14
16
|
export declare const MessagingMiddleware: (name?: string) => ClassDecorator;
|
|
15
17
|
export declare const MessagingNormalizer: (name?: string) => ClassDecorator;
|
|
16
18
|
export declare const MessagingExceptionListener: () => ClassDecorator;
|
|
19
|
+
export declare const MessagingLifecycleHook: (lifecycleHook: LifecycleHook) => ClassDecorator;
|
|
17
20
|
export declare function DenormalizeMessage(): ParameterDecorator;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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;
|
|
3
|
+
exports.MessagingLifecycleHook = exports.MessagingExceptionListener = exports.MessagingNormalizer = exports.MessagingMiddleware = exports.MessageConsumer = exports.MessageBusFactory = exports.ChannelFactory = exports.MessageHandler = exports.MESSAGING_LIFECYCLE_HOOK_METADATA = 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
4
|
exports.DenormalizeMessage = DenormalizeMessage;
|
|
5
5
|
exports.MESSAGE_HANDLER_METADATA = 'MESSAGE_HANDLER_METADATA';
|
|
6
6
|
exports.CHANNEL_FACTORY_METADATA = 'CHANNEL_FACTORY_METADATA';
|
|
@@ -10,6 +10,7 @@ exports.MESSAGING_MIDDLEWARE_METADATA = 'MESSAGING_MIDDLEWARE_METADATA';
|
|
|
10
10
|
exports.MESSAGING_NORMALIZER_METADATA = 'MESSAGING_NORMALIZER_METADATA';
|
|
11
11
|
exports.MESSAGING_EXCEPTION_LISTENER_METADATA = 'MESSAGING_EXCEPTION_LISTENER_METADATA';
|
|
12
12
|
exports.MESSAGING_MESSAGE_METADATA = 'MESSAGING_MESSAGE_METADATA';
|
|
13
|
+
exports.MESSAGING_LIFECYCLE_HOOK_METADATA = 'MESSAGING_LIFECYCLE_HOOK_METADATA';
|
|
13
14
|
const MessageHandler = (...routingKey) => {
|
|
14
15
|
return (target) => {
|
|
15
16
|
Reflect.defineMetadata(exports.MESSAGE_HANDLER_METADATA, routingKey, target);
|
|
@@ -54,6 +55,12 @@ const MessagingExceptionListener = () => {
|
|
|
54
55
|
};
|
|
55
56
|
};
|
|
56
57
|
exports.MessagingExceptionListener = MessagingExceptionListener;
|
|
58
|
+
const MessagingLifecycleHook = (lifecycleHook) => {
|
|
59
|
+
return (target) => {
|
|
60
|
+
Reflect.defineMetadata(exports.MESSAGING_LIFECYCLE_HOOK_METADATA, `${lifecycleHook}:${target.name}`, target);
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
exports.MessagingLifecycleHook = MessagingLifecycleHook;
|
|
57
64
|
function DenormalizeMessage() {
|
|
58
65
|
return (target, propertyKey, parameterIndex) => {
|
|
59
66
|
const paramTypes = Reflect.getMetadata('design:paramtypes', target, propertyKey);
|
|
@@ -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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"}
|
|
@@ -3,3 +3,4 @@ export declare const registerHandlers: (moduleRef: ModuleRef, discoveryService:
|
|
|
3
3
|
export declare const registerMiddlewares: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
|
|
4
4
|
export declare const registerMessageNormalizers: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
|
|
5
5
|
export declare const registerExceptionListener: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
|
|
6
|
+
export declare const registerMessagingHooks: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerExceptionListener = exports.registerMessageNormalizers = exports.registerMiddlewares = exports.registerHandlers = void 0;
|
|
3
|
+
exports.registerMessagingHooks = 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");
|
|
7
|
+
const messaging_lifecycle_hook_registry_1 = require("../lifecycle-hook/messaging-lifecycle-hook.registry");
|
|
7
8
|
const registerHandlers = (moduleRef, discoveryService) => {
|
|
8
9
|
const registry = moduleRef.get(service_1.Service.MESSAGE_HANDLERS_REGISTRY);
|
|
9
10
|
const logger = moduleRef.get(service_1.Service.LOGGER);
|
|
@@ -31,22 +32,26 @@ const registerExceptionListener = (moduleRef, discoveryService) => {
|
|
|
31
32
|
register(moduleRef, discoveryService, service_1.Service.EXCEPTION_LISTENER_REGISTRY, decorator_1.MESSAGING_EXCEPTION_LISTENER_METADATA, 'ExceptionListener');
|
|
32
33
|
};
|
|
33
34
|
exports.registerExceptionListener = registerExceptionListener;
|
|
35
|
+
const registerMessagingHooks = (moduleRef, discoveryService) => {
|
|
36
|
+
register(moduleRef, discoveryService, messaging_lifecycle_hook_registry_1.MessagingLifecycleHookRegistry, decorator_1.MESSAGING_LIFECYCLE_HOOK_METADATA, 'MessagingLifecycleHook');
|
|
37
|
+
};
|
|
38
|
+
exports.registerMessagingHooks = registerMessagingHooks;
|
|
34
39
|
const register = (moduleRef, discoveryService, registryProvider, decoratorMetadata, name) => {
|
|
35
40
|
const exceptions = [const_1.DEFAULT_NORMALIZER, const_1.DEFAULT_MIDDLEWARE];
|
|
36
41
|
const registry = moduleRef.get(registryProvider);
|
|
37
42
|
const logger = moduleRef.get(service_1.Service.LOGGER);
|
|
38
43
|
const instances = discoveryService
|
|
39
44
|
.getProviders()
|
|
40
|
-
.filter((
|
|
41
|
-
if (!
|
|
45
|
+
.filter((provider) => {
|
|
46
|
+
if (!provider.metatype) {
|
|
42
47
|
return false;
|
|
43
48
|
}
|
|
44
|
-
return Reflect.hasMetadata(decoratorMetadata,
|
|
49
|
+
return Reflect.hasMetadata(decoratorMetadata, provider.metatype);
|
|
45
50
|
});
|
|
46
|
-
instances.forEach((
|
|
47
|
-
registry.register(Reflect.getMetadata(decoratorMetadata,
|
|
48
|
-
if (!exceptions.includes(
|
|
49
|
-
logger.log(`${name} [${
|
|
51
|
+
instances.forEach((provider) => {
|
|
52
|
+
registry.register(Reflect.getMetadata(decoratorMetadata, provider.metatype), provider.instance);
|
|
53
|
+
if (!exceptions.includes(provider.name)) {
|
|
54
|
+
logger.log(`${name} [${provider.name}] was registered`);
|
|
50
55
|
}
|
|
51
56
|
});
|
|
52
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/dependency-injection/register.ts"],"names":[],"mappings":";;;AAGA,uCAAoC;AACpC,2CAKqB;AACrB,oCAAkE;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/dependency-injection/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-handler.registry.js","sourceRoot":"","sources":["../../src/handler/message-handler.registry.ts"],"names":[],"mappings":";;;AACA,kHAA0G;AAE1G,MAAa,sBAAsB;IAAnC;QACU,aAAQ,GAAwC,IAAI,GAAG,EAAE,CAAC;IA+BpE,CAAC;IA7BC,QAAQ,CAAC,KAAe,EAAE,OAA6B;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,OAA6B;QAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"message-handler.registry.js","sourceRoot":"","sources":["../../src/handler/message-handler.registry.ts"],"names":[],"mappings":";;;AACA,kHAA0G;AAE1G,MAAa,sBAAsB;IAAnC;QACU,aAAQ,GAAwC,IAAI,GAAG,EAAE,CAAC;IA+BpE,CAAC;IA7BC,QAAQ,CAAC,KAAe,EAAE,OAA6B;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,OAA6B;QAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEvC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEtC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,4EAAkC,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF;AAhCD,wDAgCC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -47,4 +47,5 @@ __exportStar(require("./exception/handlers.exception"), exports);
|
|
|
47
47
|
__exportStar(require("./logger/log"), exports);
|
|
48
48
|
__exportStar(require("./logger/messaging-logger"), exports);
|
|
49
49
|
__exportStar(require("./logger/nest-logger"), exports);
|
|
50
|
+
__exportStar(require("./lifecycle-hook/messaging-lifecycle-hook-listener"), exports);
|
|
50
51
|
//# 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,+EAA6D;AAC7D,mEAAiD;AACjD,oEAAkD;AAClD,8DAA4C;AAC5C,8DAA4C;AAC5C,6DAA2C;AAC3C,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,kEAAgD;AAChD,0EAAwD;AACxD,yEAAuD;AACvD,iEAA+C;AAC/C,+CAA6B;AAC7B,4DAA0C;AAC1C,uDAAqC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2CAAyB;AACzB,kEAAgD;AAChD,8DAA4C;AAC5C,+EAA6D;AAC7D,mEAAiD;AACjD,oEAAkD;AAClD,8DAA4C;AAC5C,8DAA4C;AAC5C,6DAA2C;AAC3C,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,kEAAgD;AAChD,0EAAwD;AACxD,yEAAuD;AACvD,iEAA+C;AAC/C,+CAA6B;AAC7B,4DAA0C;AAC1C,uDAAqC;AACrC,qFAAkE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MessagingLifecycleHookRegistry } from './messaging-lifecycle-hook.registry';
|
|
2
|
+
import { RoutingMessage } from '../message/routing-message';
|
|
3
|
+
export declare class MessagingLifecycleHookHandler {
|
|
4
|
+
private readonly messagingHookRegistry;
|
|
5
|
+
constructor(messagingHookRegistry: MessagingLifecycleHookRegistry);
|
|
6
|
+
handleAfterMessageDenormalized(message: RoutingMessage): Promise<void>;
|
|
7
|
+
handleBeforeMessageHandler(message: RoutingMessage): Promise<void>;
|
|
8
|
+
handleAfterMessageHandlerExecuted(message: RoutingMessage): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MessagingLifecycleHookHandler = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const messaging_lifecycle_hook_registry_1 = require("./messaging-lifecycle-hook.registry");
|
|
15
|
+
const messaging_lifecycle_hook_listener_1 = require("./messaging-lifecycle-hook-listener");
|
|
16
|
+
let MessagingLifecycleHookHandler = class MessagingLifecycleHookHandler {
|
|
17
|
+
constructor(messagingHookRegistry) {
|
|
18
|
+
this.messagingHookRegistry = messagingHookRegistry;
|
|
19
|
+
}
|
|
20
|
+
async handleAfterMessageDenormalized(message) {
|
|
21
|
+
await this.messagingHookRegistry
|
|
22
|
+
.getAllByHook(messaging_lifecycle_hook_listener_1.LifecycleHook.AFTER_MESSAGE_DENORMALIZED)
|
|
23
|
+
.forEach((listener) => listener.on(message));
|
|
24
|
+
}
|
|
25
|
+
async handleBeforeMessageHandler(message) {
|
|
26
|
+
await this.messagingHookRegistry
|
|
27
|
+
.getAllByHook(messaging_lifecycle_hook_listener_1.LifecycleHook.BEFORE_MESSAGE_HANDLER)
|
|
28
|
+
.forEach((listener) => listener.on(message));
|
|
29
|
+
}
|
|
30
|
+
async handleAfterMessageHandlerExecuted(message) {
|
|
31
|
+
await this.messagingHookRegistry
|
|
32
|
+
.getAllByHook(messaging_lifecycle_hook_listener_1.LifecycleHook.AFTER_MESSAGE_HANDLER_EXECUTED)
|
|
33
|
+
.forEach((listener) => listener.on(message));
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.MessagingLifecycleHookHandler = MessagingLifecycleHookHandler;
|
|
37
|
+
exports.MessagingLifecycleHookHandler = MessagingLifecycleHookHandler = __decorate([
|
|
38
|
+
(0, common_1.Injectable)(),
|
|
39
|
+
__metadata("design:paramtypes", [messaging_lifecycle_hook_registry_1.MessagingLifecycleHookRegistry])
|
|
40
|
+
], MessagingLifecycleHookHandler);
|
|
41
|
+
//# sourceMappingURL=messaging-lifecycle-hook-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging-lifecycle-hook-handler.js","sourceRoot":"","sources":["../../src/lifecycle-hook/messaging-lifecycle-hook-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2FAAqF;AACrF,2FAAoE;AAI7D,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACxC,YACmB,qBAAqD;QAArD,0BAAqB,GAArB,qBAAqB,CAAgC;IAExE,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,OAAuB;QAC1D,MAAM,IAAI,CAAC,qBAAqB;aAC7B,YAAY,CAAC,iDAAa,CAAC,0BAA0B,CAAC;aACtD,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,OAAuB;QACtD,MAAM,IAAI,CAAC,qBAAqB;aAC7B,YAAY,CAAC,iDAAa,CAAC,sBAAsB,CAAC;aAClD,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,iCAAiC,CAAC,OAAuB;QAC7D,MAAM,IAAI,CAAC,qBAAqB;aAC7B,YAAY,CAAC,iDAAa,CAAC,8BAA8B,CAAC;aAC1D,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;CACF,CAAA;AAvBY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,mBAAU,GAAE;qCAG+B,kEAA8B;GAF7D,6BAA6B,CAuBzC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RoutingMessage } from '../message/routing-message';
|
|
2
|
+
export type MessagingData = RoutingMessage;
|
|
3
|
+
export declare enum LifecycleHook {
|
|
4
|
+
AFTER_MESSAGE_DENORMALIZED = "AFTER_MESSAGE_DENORMALIZED",
|
|
5
|
+
BEFORE_MESSAGE_HANDLER = "BEFORE_MESSAGE_HANDLER",
|
|
6
|
+
AFTER_MESSAGE_HANDLER_EXECUTED = "AFTER_MESSAGE_HANDLER_EXECUTED"
|
|
7
|
+
}
|
|
8
|
+
export interface MessagingLifecycleHookListener {
|
|
9
|
+
on(data: MessagingData): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LifecycleHook = void 0;
|
|
4
|
+
var LifecycleHook;
|
|
5
|
+
(function (LifecycleHook) {
|
|
6
|
+
LifecycleHook["AFTER_MESSAGE_DENORMALIZED"] = "AFTER_MESSAGE_DENORMALIZED";
|
|
7
|
+
LifecycleHook["BEFORE_MESSAGE_HANDLER"] = "BEFORE_MESSAGE_HANDLER";
|
|
8
|
+
LifecycleHook["AFTER_MESSAGE_HANDLER_EXECUTED"] = "AFTER_MESSAGE_HANDLER_EXECUTED";
|
|
9
|
+
})(LifecycleHook || (exports.LifecycleHook = LifecycleHook = {}));
|
|
10
|
+
//# sourceMappingURL=messaging-lifecycle-hook-listener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging-lifecycle-hook-listener.js","sourceRoot":"","sources":["../../src/lifecycle-hook/messaging-lifecycle-hook-listener.ts"],"names":[],"mappings":";;;AAIA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,0EAAyD,CAAA;IACzD,kEAAiD,CAAA;IACjD,kFAAiE,CAAA;AACnE,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseRegistry } from '../shared/base-registry';
|
|
2
|
+
import { MessagingLifecycleHookListener, LifecycleHook } from './messaging-lifecycle-hook-listener';
|
|
3
|
+
export declare class MessagingLifecycleHookRegistry extends BaseRegistry<MessagingLifecycleHookListener> {
|
|
4
|
+
getAllByHook(hook: LifecycleHook): MessagingLifecycleHookListener[];
|
|
5
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MessagingLifecycleHookRegistry = void 0;
|
|
4
|
+
const base_registry_1 = require("../shared/base-registry");
|
|
5
|
+
class MessagingLifecycleHookRegistry extends base_registry_1.BaseRegistry {
|
|
6
|
+
getAllByHook(hook) {
|
|
7
|
+
const result = [];
|
|
8
|
+
for (const [key, listener] of this.registry.entries()) {
|
|
9
|
+
//Because pattern is `${hook}:${target.name}`,
|
|
10
|
+
const name = key.split(':')[0];
|
|
11
|
+
if (name.includes(hook)) {
|
|
12
|
+
result.push(listener);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.MessagingLifecycleHookRegistry = MessagingLifecycleHookRegistry;
|
|
19
|
+
//# sourceMappingURL=messaging-lifecycle-hook.registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging-lifecycle-hook.registry.js","sourceRoot":"","sources":["../../src/lifecycle-hook/messaging-lifecycle-hook.registry.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAGvD,MAAa,8BAA+B,SAAQ,4BAA4C;IAC9F,YAAY,CAAC,IAAmB;QAC9B,MAAM,MAAM,GAAqC,EAAE,CAAC;QAEpD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,8CAA8C;YAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAdD,wEAcC"}
|