@nestjstools/messaging 4.1.1 → 4.2.0-beta.1

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 (39) hide show
  1. package/lib/bus/consumer.message-bus.d.ts +3 -1
  2. package/lib/bus/consumer.message-bus.js +4 -1
  3. package/lib/bus/consumer.message-bus.js.map +1 -1
  4. package/lib/bus/distributed-message.bus.d.ts +3 -1
  5. package/lib/bus/distributed-message.bus.js +8 -2
  6. package/lib/bus/distributed-message.bus.js.map +1 -1
  7. package/lib/bus/in-memory-message-bus.factory.d.ts +3 -1
  8. package/lib/bus/in-memory-message-bus.factory.js +6 -3
  9. package/lib/bus/in-memory-message-bus.factory.js.map +1 -1
  10. package/lib/bus/in-memory-message.bus.d.ts +3 -1
  11. package/lib/bus/in-memory-message.bus.js +18 -10
  12. package/lib/bus/in-memory-message.bus.js.map +1 -1
  13. package/lib/consumer/distributed.consumer.d.ts +3 -1
  14. package/lib/consumer/distributed.consumer.js +7 -3
  15. package/lib/consumer/distributed.consumer.js.map +1 -1
  16. package/lib/dependency-injection/decorator.d.ts +3 -0
  17. package/lib/dependency-injection/decorator.js +8 -1
  18. package/lib/dependency-injection/decorator.js.map +1 -1
  19. package/lib/dependency-injection/register.d.ts +1 -0
  20. package/lib/dependency-injection/register.js +13 -10
  21. package/lib/dependency-injection/register.js.map +1 -1
  22. package/lib/index.d.ts +1 -0
  23. package/lib/index.js +1 -0
  24. package/lib/index.js.map +1 -1
  25. package/lib/lifecycle-hook/messaging-lifecycle-hook-handler.d.ts +14 -0
  26. package/lib/lifecycle-hook/messaging-lifecycle-hook-handler.js +56 -0
  27. package/lib/lifecycle-hook/messaging-lifecycle-hook-handler.js.map +1 -0
  28. package/lib/lifecycle-hook/messaging-lifecycle-hook-listener.d.ts +31 -0
  29. package/lib/lifecycle-hook/messaging-lifecycle-hook-listener.js +40 -0
  30. package/lib/lifecycle-hook/messaging-lifecycle-hook-listener.js.map +1 -0
  31. package/lib/lifecycle-hook/messaging-lifecycle-hook.registry.d.ts +5 -0
  32. package/lib/lifecycle-hook/messaging-lifecycle-hook.registry.js +19 -0
  33. package/lib/lifecycle-hook/messaging-lifecycle-hook.registry.js.map +1 -0
  34. package/lib/messaging.module.js +11 -4
  35. package/lib/messaging.module.js.map +1 -1
  36. package/lib/shared/base-registry.d.ts +1 -1
  37. package/lib/shared/base-registry.js.map +1 -1
  38. package/lib/tsconfig.build.tsbuildinfo +1 -1
  39. package/package.json +1 -1
@@ -4,12 +4,14 @@ import { Channel } from '../channel/channel';
4
4
  import { MessagingLogger } from '../logger/messaging-logger';
5
5
  import { IMessagingConsumer } from '../consumer/i-messaging-consumer';
6
6
  import { ExceptionListenerHandler } from '../exception-listener/exception-listener-handler';
7
+ import { MessagingLifecycleHookHandler } from '../lifecycle-hook/messaging-lifecycle-hook-handler';
7
8
  export declare class ConsumerMessageBus {
8
9
  private readonly messageBus;
9
10
  private readonly channel;
10
11
  private readonly logger;
11
12
  private readonly consumer;
12
13
  private readonly exceptionListenerHandler;
13
- constructor(messageBus: IMessageBus, channel: Channel<any>, logger: MessagingLogger, consumer: IMessagingConsumer<any>, exceptionListenerHandler: ExceptionListenerHandler);
14
+ private readonly messagingHookHandler;
15
+ constructor(messageBus: IMessageBus, channel: Channel<any>, logger: MessagingLogger, consumer: IMessagingConsumer<any>, exceptionListenerHandler: ExceptionListenerHandler, messagingHookHandler: MessagingLifecycleHookHandler);
14
16
  dispatch(consumerMessage: ConsumerMessage): Promise<void>;
15
17
  }
@@ -7,13 +7,15 @@ const log_1 = require("../logger/log");
7
7
  const consumer_dispatched_message_error_1 = require("../consumer/consumer-dispatched-message-error");
8
8
  const handlers_exception_1 = require("../exception/handlers.exception");
9
9
  const exception_context_1 = require("../exception-listener/exception-context");
10
+ const messaging_lifecycle_hook_listener_1 = require("../lifecycle-hook/messaging-lifecycle-hook-listener");
10
11
  class ConsumerMessageBus {
11
- constructor(messageBus, channel, logger, consumer, exceptionListenerHandler) {
12
+ constructor(messageBus, channel, logger, consumer, exceptionListenerHandler, messagingHookHandler) {
12
13
  this.messageBus = messageBus;
13
14
  this.channel = channel;
14
15
  this.logger = logger;
15
16
  this.consumer = consumer;
16
17
  this.exceptionListenerHandler = exceptionListenerHandler;
18
+ this.messagingHookHandler = messagingHookHandler;
17
19
  }
18
20
  async dispatch(consumerMessage) {
19
21
  try {
@@ -35,6 +37,7 @@ class ConsumerMessageBus {
35
37
  }));
36
38
  }
37
39
  await this.exceptionListenerHandler.handleError(new exception_context_1.ExceptionContext(e, this.channel.config.name, consumerMessage.message, consumerMessage.routingKey));
40
+ await this.messagingHookHandler.handleOnFailedMessageConsumer(messaging_lifecycle_hook_listener_1.DetailedConsumerMessage.fromConsumerMessage(consumerMessage, this.channel.config.name, this.channel.constructor.name));
38
41
  }
39
42
  return Promise.resolve();
40
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"consumer.message-bus.js","sourceRoot":"","sources":["../../src/bus/consumer.message-bus.ts"],"names":[],"mappings":";;;AAEA,8EAAyE;AACzE,gFAA2E;AAI3E,uCAAoC;AAEpC,qGAA+F;AAC/F,wEAAoE;AAEpE,+EAA2E;AAE3E,MAAa,kBAAkB;IAC7B,YACmB,UAAuB,EACvB,OAAqB,EACrB,MAAuB,EACvB,QAAiC,EACjC,wBAAkD;QAJlD,eAAU,GAAV,UAAU,CAAa;QACvB,YAAO,GAAP,OAAO,CAAc;QACrB,WAAM,GAAN,MAAM,CAAiB;QACvB,aAAQ,GAAR,QAAQ,CAAyB;QACjC,6BAAwB,GAAxB,wBAAwB,CAA0B;IAClE,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,eAAgC;QAC7C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAG,CAAC,MAAM,CACR,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,wCAAwC,eAAe,CAAC,UAAU,GAAG,EACjG;gBACE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;aACjD,CACF,CACF,CAAC;YAEF,MAAM,WAAW,GAAiB,IAAI,CAAC,OAAO,CAAC,MAAM;iBAClD,WAA2B,CAAC;YAE/B,MAAM,cAAc,GAAG,IAAI,6CAAoB,CAC7C,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,UAAU,CAC3B,CAAC,iBAAiB,CACjB,IAAI,+CAAqB,CACvB,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gCAAgC,IAAI,IAAI,EAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAC/B,CACF,CAAC;YAEF,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CACzB,IAAI,kEAA8B,CAAC,eAAe,EAAE,CAAC,CAAC,EACtD,IAAI,CAAC,OAAO,CACb,CAAC;YAEF,IAAI,CAAC,CAAC,CAAC,YAAY,sCAAiB,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAG,CAAC,MAAM,CACR,mCAAmC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,EAC9D;oBACE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACjD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;oBAChD,UAAU,EAAE,eAAe,CAAC,UAAU;iBACvC,CACF,CACF,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAC7C,IAAI,oCAAgB,CAClB,CAAC,EACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EACxB,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,UAAU,CAC3B,CACF,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAlED,gDAkEC"}
1
+ {"version":3,"file":"consumer.message-bus.js","sourceRoot":"","sources":["../../src/bus/consumer.message-bus.ts"],"names":[],"mappings":";;;AAEA,8EAAyE;AACzE,gFAA2E;AAI3E,uCAAoC;AAEpC,qGAA+F;AAC/F,wEAAoE;AAEpE,+EAA2E;AAE3E,2GAA8F;AAE9F,MAAa,kBAAkB;IAC7B,YACmB,UAAuB,EACvB,OAAqB,EACrB,MAAuB,EACvB,QAAiC,EACjC,wBAAkD,EAClD,oBAAmD;QALnD,eAAU,GAAV,UAAU,CAAa;QACvB,YAAO,GAAP,OAAO,CAAc;QACrB,WAAM,GAAN,MAAM,CAAiB;QACvB,aAAQ,GAAR,QAAQ,CAAyB;QACjC,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,yBAAoB,GAApB,oBAAoB,CAA+B;IACnE,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,eAAgC;QAC7C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAG,CAAC,MAAM,CACR,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,wCAAwC,eAAe,CAAC,UAAU,GAAG,EACjG;gBACE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;aACjD,CACF,CACF,CAAC;YAEF,MAAM,WAAW,GAAiB,IAAI,CAAC,OAAO,CAAC,MAAM;iBAClD,WAA2B,CAAC;YAE/B,MAAM,cAAc,GAAG,IAAI,6CAAoB,CAC7C,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,UAAU,CAC3B,CAAC,iBAAiB,CACjB,IAAI,+CAAqB,CACvB,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gCAAgC,IAAI,IAAI,EAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAC/B,CACF,CAAC;YAEF,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CACzB,IAAI,kEAA8B,CAAC,eAAe,EAAE,CAAC,CAAC,EACtD,IAAI,CAAC,OAAO,CACb,CAAC;YAEF,IAAI,CAAC,CAAC,CAAC,YAAY,sCAAiB,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAG,CAAC,MAAM,CACR,mCAAmC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,EAC9D;oBACE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACjD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;oBAChD,UAAU,EAAE,eAAe,CAAC,UAAU;iBACvC,CACF,CACF,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAC7C,IAAI,oCAAgB,CAClB,CAAC,EACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EACxB,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,UAAU,CAC3B,CACF,CAAC;YAEF,MAAM,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAC3D,2DAAuB,CAAC,mBAAmB,CACzC,eAAe,EACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAC9B,CACF,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AA3ED,gDA2EC"}
@@ -3,9 +3,11 @@ import { IMessageBus } from './i-message-bus';
3
3
  import { MessageBusCollection } from './message-bus.collection';
4
4
  import { RoutingMessage } from '../message/routing-message';
5
5
  import { NormalizerRegistry } from '../normalizer/normalizer.registry';
6
+ import { MessagingLifecycleHookHandler } from '../lifecycle-hook/messaging-lifecycle-hook-handler';
6
7
  export declare class DistributedMessageBus implements IMessageBus {
7
8
  private messageBusCollection;
8
9
  private normalizerRegistry;
9
- constructor(messageBusCollection: MessageBusCollection, normalizerRegistry: NormalizerRegistry);
10
+ private messagingLifecycleHookHandler;
11
+ constructor(messageBusCollection: MessageBusCollection, normalizerRegistry: NormalizerRegistry, messagingLifecycleHookHandler: MessagingLifecycleHookHandler);
10
12
  dispatch(message: RoutingMessage): Promise<MessageResponse>;
11
13
  }
@@ -16,10 +16,13 @@ const message_bus_collection_1 = require("./message-bus.collection");
16
16
  const routing_message_1 = require("../message/routing-message");
17
17
  const message_factory_1 = require("../message/message.factory");
18
18
  const normalizer_registry_1 = require("../normalizer/normalizer.registry");
19
+ const messaging_lifecycle_hook_handler_1 = require("../lifecycle-hook/messaging-lifecycle-hook-handler");
20
+ const messaging_lifecycle_hook_listener_1 = require("../lifecycle-hook/messaging-lifecycle-hook-listener");
19
21
  let DistributedMessageBus = class DistributedMessageBus {
20
- constructor(messageBusCollection, normalizerRegistry) {
22
+ constructor(messageBusCollection, normalizerRegistry, messagingLifecycleHookHandler) {
21
23
  this.messageBusCollection = messageBusCollection;
22
24
  this.normalizerRegistry = normalizerRegistry;
25
+ this.messagingLifecycleHookHandler = messagingLifecycleHookHandler;
23
26
  }
24
27
  async dispatch(message) {
25
28
  if (!(message instanceof routing_message_1.RoutingMessage)) {
@@ -27,9 +30,11 @@ let DistributedMessageBus = class DistributedMessageBus {
27
30
  }
28
31
  const response = [];
29
32
  for (const collection of this.messageBusCollection.getAll()) {
33
+ await this.messagingLifecycleHookHandler.handleBeforeMessageNormalization(messaging_lifecycle_hook_listener_1.MessageBusMessage.fromMessage(message.message, message.messageRoutingKey, collection.channel.config.name, collection.channel.constructor.name));
30
34
  const normalizedMessage = await this.normalizerRegistry
31
35
  .getByName(collection.channel.config.normalizer.name)
32
36
  .normalize(message.message, message.messageRoutingKey);
37
+ await this.messagingLifecycleHookHandler.handleAfterMessageNormalization(messaging_lifecycle_hook_listener_1.MessageBusMessage.fromMessage(message.message, message.messageRoutingKey, collection.channel.config.name, collection.channel.constructor.name));
33
38
  const handlerResponse = await collection.messageBus.dispatch(message_factory_1.MessageFactory.creteSealedFromMessage(normalizedMessage, message));
34
39
  if (handlerResponse) {
35
40
  response.push(handlerResponse);
@@ -42,6 +47,7 @@ exports.DistributedMessageBus = DistributedMessageBus;
42
47
  exports.DistributedMessageBus = DistributedMessageBus = __decorate([
43
48
  (0, common_1.Injectable)(),
44
49
  __metadata("design:paramtypes", [message_bus_collection_1.MessageBusCollection,
45
- normalizer_registry_1.NormalizerRegistry])
50
+ normalizer_registry_1.NormalizerRegistry,
51
+ messaging_lifecycle_hook_handler_1.MessagingLifecycleHookHandler])
46
52
  ], DistributedMessageBus);
47
53
  //# sourceMappingURL=distributed-message.bus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"distributed-message.bus.js","sourceRoot":"","sources":["../../src/bus/distributed-message.bus.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kEAA8D;AAE9D,qEAAgE;AAChE,gEAA4D;AAC5D,gEAA4D;AAC5D,2EAAuE;AAGhE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,YACU,oBAA0C,EAC1C,kBAAsC;QADtC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC7C,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,OAAuB;QACpC,IAAI,CAAC,CAAC,OAAO,YAAY,gCAAc,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,gCAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB;iBACpD,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;iBACpD,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACzD,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,CAC1D,gCAAc,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAClE,CAAC;YACF,IAAI,eAAe,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,kCAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;CACF,CAAA;AA1BY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAGqB,6CAAoB;QACtB,wCAAkB;GAHrC,qBAAqB,CA0BjC"}
1
+ {"version":3,"file":"distributed-message.bus.js","sourceRoot":"","sources":["../../src/bus/distributed-message.bus.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kEAA8D;AAE9D,qEAAgE;AAChE,gEAA4D;AAC5D,gEAA4D;AAC5D,2EAAuE;AACvE,yGAAmG;AACnG,2GAAwF;AAGjF,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,YACU,oBAA0C,EAC1C,kBAAsC,EACtC,6BAA4D;QAF5D,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kCAA6B,GAA7B,6BAA6B,CAA+B;IACnE,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,OAAuB;QACpC,IAAI,CAAC,CAAC,OAAO,YAAY,gCAAc,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,gCAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,6BAA6B,CAAC,gCAAgC,CACvE,qDAAiB,CAAC,WAAW,CAC3B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,iBAAiB,EACzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAC9B,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CACpC,CACF,CAAC;YAEF,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB;iBACpD,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;iBACpD,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAEzD,MAAM,IAAI,CAAC,6BAA6B,CAAC,+BAA+B,CACtE,qDAAiB,CAAC,WAAW,CAC3B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,iBAAiB,EACzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAC9B,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CACpC,CACF,CAAC;YAEF,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,CAC1D,gCAAc,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAClE,CAAC;YAEF,IAAI,eAAe,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,kCAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;CACF,CAAA;AA/CY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAGqB,6CAAoB;QACtB,wCAAkB;QACP,gEAA6B;GAJ3D,qBAAqB,CA+CjC"}
@@ -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
- constructor(registry: MessageHandlerRegistry, middlewareRegistry: MiddlewareRegistry, messageNormalizerRegistry: NormalizerRegistry);
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;AAIhE,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YAEU,QAAgC,EAEhC,kBAAsC,EAEtC,yBAA6C;QAJ7C,aAAQ,GAAR,QAAQ,CAAwB;QAEhC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAEtC,8BAAyB,GAAzB,yBAAyB,CAAoB;IACpD,CAAC;IAEJ,MAAM,CAAC,OAAwB;QAC7B,OAAO,IAAI,0CAAkB,CAC3B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,kBAAkB,EACvB,OAAO,EACP,IAAI,CAAC,yBAAyB,CAC/B,CAAC;IACJ,CAAC;CACF,CAAA;AAlBY,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;GAP5C,yBAAyB,CAkBrC"}
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;IAC1D,CAAC;IAEJ,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;AApBY,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,CAoBrC"}
@@ -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
- constructor(registry: MessageHandlerRegistry, middlewareRegistry: MiddlewareRegistry, channel: InMemoryChannel, normalizerRegistry: NormalizerRegistry);
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,28 @@ 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 = [];
22
23
  middlewares.push(...(this.channel.config?.middlewares ?? []), ...(message.messageOptions?.middlewares ?? []), handler_middleware_1.HandlerMiddleware);
24
+ let messageToDispatch = message instanceof routing_message_1.RoutingMessage ? message.message : {};
25
+ if (message instanceof sealed_routing_message_1.SealedRoutingMessage) {
26
+ // Sealed messages carry raw payload and must be denormalized before dispatch.
27
+ const normalizerDefinition = message.messageOptions instanceof default_message_options_1.DefaultMessageOptions
28
+ ? message.messageOptions.normalizer
29
+ : object_forward_message_normalizer_1.ObjectForwardMessageNormalizer;
30
+ messageToDispatch = await this.normalizerRegistry
31
+ .getByName(normalizerDefinition['name'])
32
+ .denormalize(message.message, message.messageRoutingKey);
33
+ }
34
+ // Hook fired once the payload shape is ready for handler pipeline.
35
+ await this.messagingHookHandler.handleAfterMessageDenormalized(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message));
23
36
  try {
24
37
  this.registry.getByRoutingKey(message.messageRoutingKey);
25
38
  }
@@ -36,6 +49,7 @@ class InMemoryMessageBus {
36
49
  message.messageOptions?.avoidErrorsWhenNotExistedHandler ??
37
50
  avoidErrorsForNonExistedHandlers;
38
51
  }
52
+ // Missing handler can be configured as no-op for fire-and-forget scenarios.
39
53
  if (avoidErrorsForNonExistedHandlers) {
40
54
  return Promise.resolve();
41
55
  }
@@ -43,16 +57,10 @@ class InMemoryMessageBus {
43
57
  }
44
58
  const middlewareInstances = middlewares.map((middleware) => this.middlewareRegistry.getByName(decorator_extractor_1.DecoratorExtractor.extractMessageMiddleware(middleware)));
45
59
  const context = middleware_context_1.MiddlewareContext.createFresh(middlewareInstances);
46
- let messageToDispatch = message instanceof routing_message_1.RoutingMessage ? message.message : {};
47
- if (message instanceof sealed_routing_message_1.SealedRoutingMessage) {
48
- const 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
- }
60
+ // Hook around handler execution.
61
+ await this.messagingHookHandler.handleBeforeMessageHandler(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message));
55
62
  const response = await middlewareInstances[0].process(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message), context);
63
+ await this.messagingHookHandler.handleAfterMessageHandlerExecuted(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message));
56
64
  return Promise.resolve(response);
57
65
  }
58
66
  }
@@ -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;AAE3E,MAAa,kBAAkB;IAC7B,YACU,QAAgC,EAChC,kBAAsC,EACtC,OAAwB,EACxB,kBAAsC;QAHtC,aAAQ,GAAR,QAAQ,CAAwB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,YAAO,GAAP,OAAO,CAAiB;QACxB,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC7C,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,OAAgB;QAC7B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,WAAW,CAAC,IAAI,CACd,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,EAC3C,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,IAAI,EAAE,CAAC,EAC9C,sCAAiB,CAClB,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,gCAAgC,GAAG,IAAI,CAAC;YAE5C,IACE,IAAI,CAAC,OAAO,YAAY,mCAAe;gBACvC,aAAa,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAC1C,CAAC;gBACD,gCAAgC;oBAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gCAAgC;wBACpD,gCAAgC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,gCAAgC;oBAC9B,OAAO,CAAC,cAAc,EAAE,gCAAgC;wBACxD,gCAAgC,CAAC;YACrC,CAAC;YAED,IAAI,gCAAgC,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;YAED,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,mBAAmB,GAAiB,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACvE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAC/B,wCAAkB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CACxD,CACF,CAAC;QACF,MAAM,OAAO,GAAG,sCAAiB,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAEnE,IAAI,iBAAiB,GACnB,OAAO,YAAY,gCAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3D,IAAI,OAAO,YAAY,6CAAoB,EAAE,CAAC;YAC5C,MAAM,oBAAoB,GACxB,OAAO,CAAC,cAAc,YAAY,+CAAqB;gBACrD,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU;gBACnC,CAAC,CAAC,kEAA8B,CAAC;YAErC,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB;iBAC9C,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;iBACvC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CACnD,gCAAc,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAClE,OAAO,CACR,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF;AArED,gDAqEC"}
1
+ {"version":3,"file":"in-memory-message.bus.js","sourceRoot":"","sources":["../../src/bus/in-memory-message.bus.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,14 @@ import { IMessageBus } from '../bus/i-message-bus';
3
3
  import { ChannelRegistry } from '../channel/channel.registry';
4
4
  import { MessagingLogger } from '../logger/messaging-logger';
5
5
  import { ExceptionListenerHandler } from '../exception-listener/exception-listener-handler';
6
+ import { MessagingLifecycleHookHandler } from '../lifecycle-hook/messaging-lifecycle-hook-handler';
6
7
  export declare class DistributedConsumer {
7
8
  private readonly messageBus;
8
9
  private readonly channelRegistry;
9
10
  private readonly exceptionListenerHandler;
10
11
  private readonly logger;
11
12
  private readonly discoveryService;
12
- constructor(messageBus: IMessageBus, channelRegistry: ChannelRegistry, exceptionListenerHandler: ExceptionListenerHandler, logger: MessagingLogger, discoveryService: DiscoveryService);
13
+ private readonly messagingLifecycleHookHandler;
14
+ constructor(messageBus: IMessageBus, channelRegistry: ChannelRegistry, exceptionListenerHandler: ExceptionListenerHandler, logger: MessagingLogger, discoveryService: DiscoveryService, messagingLifecycleHookHandler: MessagingLifecycleHookHandler);
13
15
  run(): Promise<void>;
14
16
  }
@@ -21,13 +21,15 @@ const in_memory_channel_1 = require("../channel/in-memory.channel");
21
21
  const decorator_1 = require("../dependency-injection/decorator");
22
22
  const exception_listener_handler_1 = require("../exception-listener/exception-listener-handler");
23
23
  const consumer_message_bus_1 = require("../bus/consumer.message-bus");
24
+ const messaging_lifecycle_hook_handler_1 = require("../lifecycle-hook/messaging-lifecycle-hook-handler");
24
25
  let DistributedConsumer = class DistributedConsumer {
25
- constructor(messageBus, channelRegistry, exceptionListenerHandler, logger, discoveryService) {
26
+ constructor(messageBus, channelRegistry, exceptionListenerHandler, logger, discoveryService, messagingLifecycleHookHandler) {
26
27
  this.messageBus = messageBus;
27
28
  this.channelRegistry = channelRegistry;
28
29
  this.exceptionListenerHandler = exceptionListenerHandler;
29
30
  this.logger = logger;
30
31
  this.discoveryService = discoveryService;
32
+ this.messagingLifecycleHookHandler = messagingLifecycleHookHandler;
31
33
  }
32
34
  async run() {
33
35
  for (const channel of this.channelRegistry.getAll()) {
@@ -49,7 +51,7 @@ let DistributedConsumer = class DistributedConsumer {
49
51
  throw new Error(`Consumer for channel ${channel.constructor.name} does not found`);
50
52
  }
51
53
  const consumer = channelConsumer[0].instance;
52
- const dispatcher = new consumer_message_bus_1.ConsumerMessageBus(this.messageBus, channel, this.logger, consumer, this.exceptionListenerHandler);
54
+ const dispatcher = new consumer_message_bus_1.ConsumerMessageBus(this.messageBus, channel, this.logger, consumer, this.exceptionListenerHandler, this.messagingLifecycleHookHandler);
53
55
  await consumer.consume(dispatcher, channel);
54
56
  this.logger.log(`Consumer for channel [${channel.config.name}] is ready to handle messages`);
55
57
  }
@@ -57,11 +59,13 @@ let DistributedConsumer = class DistributedConsumer {
57
59
  };
58
60
  exports.DistributedConsumer = DistributedConsumer;
59
61
  exports.DistributedConsumer = DistributedConsumer = __decorate([
62
+ (0, common_1.Injectable)(),
60
63
  __param(0, (0, common_1.Inject)(service_1.Service.DEFAULT_MESSAGE_BUS)),
61
64
  __param(1, (0, common_1.Inject)(service_1.Service.CHANNEL_REGISTRY)),
62
65
  __param(2, (0, common_1.Inject)(service_1.Service.EXCEPTION_LISTENER_HANDLER)),
63
66
  __param(3, (0, common_1.Inject)(service_1.Service.LOGGER)),
64
67
  __metadata("design:paramtypes", [Object, channel_registry_1.ChannelRegistry,
65
- exception_listener_handler_1.ExceptionListenerHandler, Object, core_1.DiscoveryService])
68
+ exception_listener_handler_1.ExceptionListenerHandler, Object, core_1.DiscoveryService,
69
+ messaging_lifecycle_hook_handler_1.MessagingLifecycleHookHandler])
66
70
  ], DistributedConsumer);
67
71
  //# 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;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;IAClD,CAAC;IAEJ,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;AA9DY,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,CA8D/B"}
1
+ {"version":3,"file":"distributed.consumer.js","sourceRoot":"","sources":["../../src/consumer/distributed.consumer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,uCAAgD;AAChD,6DAA0D;AAE1D,kEAA8D;AAE9D,oEAA+D;AAC/D,iEAA8E;AAE9E,iGAA4F;AAC5F,sEAAiE;AACjE,yGAAmG;AAG5F,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAEmB,UAAuB,EAEvB,eAAgC,EAEhC,wBAAkD,EAC1B,MAAuB,EAC/C,gBAAkC,EAClC,6BAA4D;QAP5D,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;QAClC,kCAA6B,GAA7B,6BAA6B,CAA+B;IAC5E,CAAC;IAEJ,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,EAC7B,IAAI,CAAC,6BAA6B,CACnC,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;AAhEY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAGR,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;QACH,gEAA6B;GAVpE,mBAAmB,CAgE/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":"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"}
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,24 @@ 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
- const instances = discoveryService
39
- .getProviders()
40
- .filter((messageExceptionListener) => {
41
- if (!messageExceptionListener.metatype) {
43
+ const instances = discoveryService.getProviders().filter((provider) => {
44
+ if (!provider.metatype) {
42
45
  return false;
43
46
  }
44
- return Reflect.hasMetadata(decoratorMetadata, messageExceptionListener.metatype);
47
+ return Reflect.hasMetadata(decoratorMetadata, provider.metatype);
45
48
  });
46
- instances.forEach((messageExceptionListener) => {
47
- registry.register(Reflect.getMetadata(decoratorMetadata, messageExceptionListener.metatype), messageExceptionListener.instance);
48
- if (!exceptions.includes(messageExceptionListener.name)) {
49
- logger.log(`${name} [${messageExceptionListener.name}] was registered`);
49
+ instances.forEach((provider) => {
50
+ registry.register(Reflect.getMetadata(decoratorMetadata, provider.metatype), provider.instance);
51
+ if (!exceptions.includes(provider.name)) {
52
+ logger.log(`${name} [${provider.name}] was registered`);
50
53
  }
51
54
  });
52
55
  };
@@ -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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"}
package/lib/index.d.ts CHANGED
@@ -31,3 +31,4 @@ export * from './exception/handlers.exception';
31
31
  export * from './logger/log';
32
32
  export * from './logger/messaging-logger';
33
33
  export * from './logger/nest-logger';
34
+ export * from './lifecycle-hook/messaging-lifecycle-hook-listener';
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,qFAAmE"}
@@ -0,0 +1,14 @@
1
+ import { MessagingLifecycleHookRegistry } from './messaging-lifecycle-hook.registry';
2
+ import { MessageBusMessage } from './messaging-lifecycle-hook-listener';
3
+ import { RoutingMessage } from '../message/routing-message';
4
+ import { ConsumerMessage } from '../consumer/consumer-message';
5
+ export declare class MessagingLifecycleHookHandler {
6
+ private readonly messagingHookRegistry;
7
+ constructor(messagingHookRegistry: MessagingLifecycleHookRegistry);
8
+ handleAfterMessageDenormalized(message: RoutingMessage): Promise<void>;
9
+ handleBeforeMessageHandler(message: RoutingMessage): Promise<void>;
10
+ handleAfterMessageHandlerExecuted(message: RoutingMessage): Promise<void>;
11
+ handleOnFailedMessageConsumer(message: ConsumerMessage): Promise<void>;
12
+ handleBeforeMessageNormalization(message: MessageBusMessage): Promise<void>;
13
+ handleAfterMessageNormalization(message: MessageBusMessage): Promise<void>;
14
+ }
@@ -0,0 +1,56 @@
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.hook(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.hook(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.hook(message));
34
+ }
35
+ async handleOnFailedMessageConsumer(message) {
36
+ await this.messagingHookRegistry
37
+ .getAllByHook(messaging_lifecycle_hook_listener_1.LifecycleHook.ON_FAILED_MESSAGE_CONSUMER)
38
+ .forEach((listener) => listener.hook(message));
39
+ }
40
+ async handleBeforeMessageNormalization(message) {
41
+ await this.messagingHookRegistry
42
+ .getAllByHook(messaging_lifecycle_hook_listener_1.LifecycleHook.BEFORE_MESSAGE_NORMALIZATION)
43
+ .forEach((listener) => listener.hook(message));
44
+ }
45
+ async handleAfterMessageNormalization(message) {
46
+ await this.messagingHookRegistry
47
+ .getAllByHook(messaging_lifecycle_hook_listener_1.LifecycleHook.AFTER_MESSAGE_NORMALIZATION)
48
+ .forEach((listener) => listener.hook(message));
49
+ }
50
+ };
51
+ exports.MessagingLifecycleHookHandler = MessagingLifecycleHookHandler;
52
+ exports.MessagingLifecycleHookHandler = MessagingLifecycleHookHandler = __decorate([
53
+ (0, common_1.Injectable)(),
54
+ __metadata("design:paramtypes", [messaging_lifecycle_hook_registry_1.MessagingLifecycleHookRegistry])
55
+ ], MessagingLifecycleHookHandler);
56
+ //# 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,2FAG6C;AAKtC,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACxC,YACmB,qBAAqD;QAArD,0BAAqB,GAArB,qBAAqB,CAAgC;IACrE,CAAC;IAEJ,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,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,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,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,iCAAiC,CACrC,OAAuB;QAEvB,MAAM,IAAI,CAAC,qBAAqB;aAC7B,YAAY,CAAC,iDAAa,CAAC,8BAA8B,CAAC;aAC1D,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,OAAwB;QAC1D,MAAM,IAAI,CAAC,qBAAqB;aAC7B,YAAY,CAAC,iDAAa,CAAC,0BAA0B,CAAC;aACtD,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,gCAAgC,CACpC,OAA0B;QAE1B,MAAM,IAAI,CAAC,qBAAqB;aAC7B,YAAY,CAAC,iDAAa,CAAC,4BAA4B,CAAC;aACxD,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,+BAA+B,CACnC,OAA0B;QAE1B,MAAM,IAAI,CAAC,qBAAqB;aAC7B,YAAY,CAAC,iDAAa,CAAC,2BAA2B,CAAC;aACvD,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AA9CY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,mBAAU,GAAE;qCAG+B,kEAA8B;GAF7D,6BAA6B,CA8CzC"}
@@ -0,0 +1,31 @@
1
+ import { RoutingMessage } from '../message/routing-message';
2
+ import { ConsumerMessage } from '../consumer/consumer-message';
3
+ export type MessagingData = RoutingMessage | ConsumerMessage | DetailedConsumerMessage | MessageBusMessage;
4
+ export declare class DetailedConsumerMessage extends ConsumerMessage {
5
+ readonly message: object | string;
6
+ readonly routingKey: string;
7
+ readonly metadata: Record<string, any>;
8
+ readonly channelName: string;
9
+ readonly channelType: string;
10
+ constructor(message: object | string, routingKey: string, metadata: Record<string, any>, channelName: string, channelType: string);
11
+ static fromConsumerMessage(consumerMessage: ConsumerMessage, channelName: string, channelType: string): DetailedConsumerMessage;
12
+ }
13
+ export declare class MessageBusMessage<T = any> {
14
+ readonly message: T;
15
+ readonly routingKey: string;
16
+ readonly channelName: string;
17
+ readonly channelType: string;
18
+ constructor(message: T, routingKey: string, channelName: string, channelType: string);
19
+ static fromMessage<T>(message: T, routingKey: string, channelName: string, channelType: string): MessageBusMessage<T>;
20
+ }
21
+ export declare enum LifecycleHook {
22
+ BEFORE_MESSAGE_NORMALIZATION = "BEFORE_MESSAGE_NORMALIZATION",
23
+ AFTER_MESSAGE_NORMALIZATION = "AFTER_MESSAGE_NORMALIZATION",
24
+ AFTER_MESSAGE_DENORMALIZED = "AFTER_MESSAGE_DENORMALIZED",
25
+ BEFORE_MESSAGE_HANDLER = "BEFORE_MESSAGE_HANDLER",
26
+ AFTER_MESSAGE_HANDLER_EXECUTED = "AFTER_MESSAGE_HANDLER_EXECUTED",
27
+ ON_FAILED_MESSAGE_CONSUMER = "ON_FAILED_MESSAGE_CONSUMER"
28
+ }
29
+ export interface MessagingLifecycleHookListener {
30
+ hook(data: MessagingData): Promise<void>;
31
+ }