@nestjstools/messaging 2.3.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 (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +565 -0
  3. package/lib/bus/composite-message-bus.factory.d.ts +9 -0
  4. package/lib/bus/composite-message-bus.factory.js +54 -0
  5. package/lib/bus/composite-message-bus.factory.js.map +1 -0
  6. package/lib/bus/distributed-message.bus.d.ts +11 -0
  7. package/lib/bus/distributed-message.bus.js +44 -0
  8. package/lib/bus/distributed-message.bus.js.map +1 -0
  9. package/lib/bus/i-message-bus.d.ts +4 -0
  10. package/lib/bus/i-message-bus.factory.d.ts +4 -0
  11. package/lib/bus/i-message-bus.factory.js +3 -0
  12. package/lib/bus/i-message-bus.factory.js.map +1 -0
  13. package/lib/bus/i-message-bus.js +3 -0
  14. package/lib/bus/i-message-bus.js.map +1 -0
  15. package/lib/bus/in-memory-message-bus.factory.d.ts +13 -0
  16. package/lib/bus/in-memory-message-bus.factory.js +45 -0
  17. package/lib/bus/in-memory-message-bus.factory.js.map +1 -0
  18. package/lib/bus/in-memory-message.bus.d.ts +14 -0
  19. package/lib/bus/in-memory-message.bus.js +53 -0
  20. package/lib/bus/in-memory-message.bus.js.map +1 -0
  21. package/lib/bus/message-bus.collection.d.ts +13 -0
  22. package/lib/bus/message-bus.collection.js +16 -0
  23. package/lib/bus/message-bus.collection.js.map +1 -0
  24. package/lib/channel/channel.d.ts +5 -0
  25. package/lib/channel/channel.js +10 -0
  26. package/lib/channel/channel.js.map +1 -0
  27. package/lib/channel/channel.registry.d.ts +10 -0
  28. package/lib/channel/channel.registry.js +31 -0
  29. package/lib/channel/channel.registry.js.map +1 -0
  30. package/lib/channel/factory/composite-channel.factory.d.ts +8 -0
  31. package/lib/channel/factory/composite-channel.factory.js +43 -0
  32. package/lib/channel/factory/composite-channel.factory.js.map +1 -0
  33. package/lib/channel/factory/in-memory-channel.factory.d.ts +6 -0
  34. package/lib/channel/factory/in-memory-channel.factory.js +28 -0
  35. package/lib/channel/factory/in-memory-channel.factory.js.map +1 -0
  36. package/lib/channel/i-channel-factory.d.ts +5 -0
  37. package/lib/channel/i-channel-factory.js +3 -0
  38. package/lib/channel/i-channel-factory.js.map +1 -0
  39. package/lib/channel/in-memory.channel.d.ts +4 -0
  40. package/lib/channel/in-memory.channel.js +8 -0
  41. package/lib/channel/in-memory.channel.js.map +1 -0
  42. package/lib/config.d.ts +40 -0
  43. package/lib/config.js +40 -0
  44. package/lib/config.js.map +1 -0
  45. package/lib/consumer/consumer-dispatched-message-error.d.ts +6 -0
  46. package/lib/consumer/consumer-dispatched-message-error.js +11 -0
  47. package/lib/consumer/consumer-dispatched-message-error.js.map +1 -0
  48. package/lib/consumer/consumer-message-dispatcher.d.ts +3 -0
  49. package/lib/consumer/consumer-message-dispatcher.js +3 -0
  50. package/lib/consumer/consumer-message-dispatcher.js.map +1 -0
  51. package/lib/consumer/consumer-message-mediator.d.ts +9 -0
  52. package/lib/consumer/consumer-message-mediator.js +17 -0
  53. package/lib/consumer/consumer-message-mediator.js.map +1 -0
  54. package/lib/consumer/consumer-message.d.ts +6 -0
  55. package/lib/consumer/consumer-message.js +15 -0
  56. package/lib/consumer/consumer-message.js.map +1 -0
  57. package/lib/consumer/distributed.consumer.d.ts +12 -0
  58. package/lib/consumer/distributed.consumer.js +79 -0
  59. package/lib/consumer/distributed.consumer.js.map +1 -0
  60. package/lib/consumer/i-messaging-consumer.d.ts +6 -0
  61. package/lib/consumer/i-messaging-consumer.js +3 -0
  62. package/lib/consumer/i-messaging-consumer.js.map +1 -0
  63. package/lib/dependency-injection/decorator.d.ts +13 -0
  64. package/lib/dependency-injection/decorator.js +53 -0
  65. package/lib/dependency-injection/decorator.js.map +1 -0
  66. package/lib/dependency-injection/injectable.d.ts +2 -0
  67. package/lib/dependency-injection/injectable.js +10 -0
  68. package/lib/dependency-injection/injectable.js.map +1 -0
  69. package/lib/dependency-injection/register.d.ts +4 -0
  70. package/lib/dependency-injection/register.js +59 -0
  71. package/lib/dependency-injection/register.js.map +1 -0
  72. package/lib/dependency-injection/service.d.ts +10 -0
  73. package/lib/dependency-injection/service.js +15 -0
  74. package/lib/dependency-injection/service.js.map +1 -0
  75. package/lib/exception/handler-for-message-not-found.exception.d.ts +4 -0
  76. package/lib/exception/handler-for-message-not-found.exception.js +11 -0
  77. package/lib/exception/handler-for-message-not-found.exception.js.map +1 -0
  78. package/lib/exception/invalid-channel-config.exception.d.ts +4 -0
  79. package/lib/exception/invalid-channel-config.exception.js +11 -0
  80. package/lib/exception/invalid-channel-config.exception.js.map +1 -0
  81. package/lib/exception/invalid-channel.exception.d.ts +4 -0
  82. package/lib/exception/invalid-channel.exception.js +11 -0
  83. package/lib/exception/invalid-channel.exception.js.map +1 -0
  84. package/lib/exception/messaging.exception.d.ts +3 -0
  85. package/lib/exception/messaging.exception.js +10 -0
  86. package/lib/exception/messaging.exception.js.map +1 -0
  87. package/lib/exception/unsupported-channel-factory.exception.d.ts +4 -0
  88. package/lib/exception/unsupported-channel-factory.exception.js +11 -0
  89. package/lib/exception/unsupported-channel-factory.exception.js.map +1 -0
  90. package/lib/handler/handler-response.d.ts +4 -0
  91. package/lib/handler/handler-response.js +10 -0
  92. package/lib/handler/handler-response.js.map +1 -0
  93. package/lib/handler/i-message.handler.d.ts +3 -0
  94. package/lib/handler/i-message.handler.js +3 -0
  95. package/lib/handler/i-message.handler.js.map +1 -0
  96. package/lib/handler/message-handler.registry.d.ts +6 -0
  97. package/lib/handler/message-handler.registry.js +28 -0
  98. package/lib/handler/message-handler.registry.js.map +1 -0
  99. package/lib/index.d.ts +27 -0
  100. package/lib/index.js +44 -0
  101. package/lib/index.js.map +1 -0
  102. package/lib/logger/messaging-logger.d.ts +5 -0
  103. package/lib/logger/messaging-logger.js +3 -0
  104. package/lib/logger/messaging-logger.js.map +1 -0
  105. package/lib/logger/nest-logger.d.ts +12 -0
  106. package/lib/logger/nest-logger.js +43 -0
  107. package/lib/logger/nest-logger.js.map +1 -0
  108. package/lib/message/default-message-options.d.ts +8 -0
  109. package/lib/message/default-message-options.js +12 -0
  110. package/lib/message/default-message-options.js.map +1 -0
  111. package/lib/message/message-options.d.ts +5 -0
  112. package/lib/message/message-options.js +3 -0
  113. package/lib/message/message-options.js.map +1 -0
  114. package/lib/message/message-response.d.ts +6 -0
  115. package/lib/message/message-response.js +19 -0
  116. package/lib/message/message-response.js.map +1 -0
  117. package/lib/message/message.d.ts +6 -0
  118. package/lib/message/message.factory.d.ts +7 -0
  119. package/lib/message/message.factory.js +15 -0
  120. package/lib/message/message.factory.js.map +1 -0
  121. package/lib/message/message.js +3 -0
  122. package/lib/message/message.js.map +1 -0
  123. package/lib/message/routing-message.d.ts +9 -0
  124. package/lib/message/routing-message.js +15 -0
  125. package/lib/message/routing-message.js.map +1 -0
  126. package/lib/message/sealed-routing-message.d.ts +9 -0
  127. package/lib/message/sealed-routing-message.js +15 -0
  128. package/lib/message/sealed-routing-message.js.map +1 -0
  129. package/lib/messaging.module.d.ts +10 -0
  130. package/lib/messaging.module.js +150 -0
  131. package/lib/messaging.module.js.map +1 -0
  132. package/lib/middleware/handler-middleware.d.ts +9 -0
  133. package/lib/middleware/handler-middleware.js +40 -0
  134. package/lib/middleware/handler-middleware.js.map +1 -0
  135. package/lib/middleware/middleware.context.d.ts +8 -0
  136. package/lib/middleware/middleware.context.js +18 -0
  137. package/lib/middleware/middleware.context.js.map +1 -0
  138. package/lib/middleware/middleware.d.ts +5 -0
  139. package/lib/middleware/middleware.js +3 -0
  140. package/lib/middleware/middleware.js.map +1 -0
  141. package/lib/middleware/middleware.registry.d.ts +7 -0
  142. package/lib/middleware/middleware.registry.js +26 -0
  143. package/lib/middleware/middleware.registry.js.map +1 -0
  144. package/lib/normalizer/message-normalizer.d.ts +4 -0
  145. package/lib/normalizer/message-normalizer.js +3 -0
  146. package/lib/normalizer/message-normalizer.js.map +1 -0
  147. package/lib/normalizer/normalizer.registry.d.ts +7 -0
  148. package/lib/normalizer/normalizer.registry.js +26 -0
  149. package/lib/normalizer/normalizer.registry.js.map +1 -0
  150. package/lib/normalizer/object-forward-message.normalizer.d.ts +5 -0
  151. package/lib/normalizer/object-forward-message.normalizer.js +26 -0
  152. package/lib/normalizer/object-forward-message.normalizer.js.map +1 -0
  153. package/lib/shared/decorator-extractor.d.ts +3 -0
  154. package/lib/shared/decorator-extractor.js +11 -0
  155. package/lib/shared/decorator-extractor.js.map +1 -0
  156. package/lib/tsconfig.build.tsbuildinfo +1 -0
  157. package/package.json +100 -0
@@ -0,0 +1,44 @@
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.DistributedMessageBus = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const message_response_1 = require("../message/message-response");
15
+ const message_bus_collection_1 = require("./message-bus.collection");
16
+ const routing_message_1 = require("../message/routing-message");
17
+ const message_factory_1 = require("../message/message.factory");
18
+ const normalizer_registry_1 = require("../normalizer/normalizer.registry");
19
+ let DistributedMessageBus = class DistributedMessageBus {
20
+ constructor(messageBusCollection, normalizerRegistry) {
21
+ this.messageBusCollection = messageBusCollection;
22
+ this.normalizerRegistry = normalizerRegistry;
23
+ }
24
+ async dispatch(message) {
25
+ if (!(message instanceof routing_message_1.RoutingMessage)) {
26
+ throw new Error(`Message must be instance of ${routing_message_1.RoutingMessage.name}`);
27
+ }
28
+ const response = [];
29
+ for (const collection of this.messageBusCollection.getAll()) {
30
+ const normalizedMessage = await this.normalizerRegistry.getByName(collection.channel.config.normalizer.name).normalize(message.message, message.messageRoutingKey);
31
+ const handlerResponse = await collection.messageBus.dispatch(message_factory_1.MessageFactory.creteSealedFromMessage(normalizedMessage, message));
32
+ if (handlerResponse) {
33
+ response.push(handlerResponse);
34
+ }
35
+ }
36
+ return new message_response_1.MessageResponse(response);
37
+ }
38
+ };
39
+ exports.DistributedMessageBus = DistributedMessageBus;
40
+ exports.DistributedMessageBus = DistributedMessageBus = __decorate([
41
+ (0, common_1.Injectable)(),
42
+ __metadata("design:paramtypes", [message_bus_collection_1.MessageBusCollection, normalizer_registry_1.NormalizerRegistry])
43
+ ], DistributedMessageBus);
44
+ //# sourceMappingURL=distributed-message.bus.js.map
@@ -0,0 +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,YAAoB,oBAA0C,EAAU,kBAAsC;QAA1F,yBAAoB,GAApB,oBAAoB,CAAsB;QAAU,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAElH,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,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACnK,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,gCAAc,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;YAChI,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;AAnBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAE+B,6CAAoB,EAA8B,wCAAkB;GADnG,qBAAqB,CAmBjC"}
@@ -0,0 +1,4 @@
1
+ import { Message } from '../message/message';
2
+ export interface IMessageBus {
3
+ dispatch(message: Message): Promise<object | void>;
4
+ }
@@ -0,0 +1,4 @@
1
+ import { IMessageBus } from './i-message-bus';
2
+ export interface IMessageBusFactory<T> {
3
+ create(channel: T): IMessageBus;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i-message-bus.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-message-bus.factory.js","sourceRoot":"","sources":["../../src/bus/i-message-bus.factory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i-message-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-message-bus.js","sourceRoot":"","sources":["../../src/bus/i-message-bus.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { IMessageBus } from './i-message-bus';
2
+ import { MessageHandlerRegistry } from '../handler/message-handler.registry';
3
+ import { MiddlewareRegistry } from '../middleware/middleware.registry';
4
+ import { InMemoryChannel } from '../channel/in-memory.channel';
5
+ import { IMessageBusFactory } from './i-message-bus.factory';
6
+ import { NormalizerRegistry } from '../normalizer/normalizer.registry';
7
+ export declare class InMemoryMessageBusFactory implements IMessageBusFactory<InMemoryChannel> {
8
+ private registry;
9
+ private middlewareRegistry;
10
+ private messageNormalizerRegistry;
11
+ constructor(registry: MessageHandlerRegistry, middlewareRegistry: MiddlewareRegistry, messageNormalizerRegistry: NormalizerRegistry);
12
+ create(channel: InMemoryChannel): IMessageBus;
13
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.InMemoryMessageBusFactory = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const message_handler_registry_1 = require("../handler/message-handler.registry");
18
+ const service_1 = require("../dependency-injection/service");
19
+ const middleware_registry_1 = require("../middleware/middleware.registry");
20
+ const in_memory_channel_1 = require("../channel/in-memory.channel");
21
+ const decorator_1 = require("../dependency-injection/decorator");
22
+ const in_memory_message_bus_1 = require("./in-memory-message.bus");
23
+ const normalizer_registry_1 = require("../normalizer/normalizer.registry");
24
+ let InMemoryMessageBusFactory = class InMemoryMessageBusFactory {
25
+ constructor(registry, middlewareRegistry, messageNormalizerRegistry) {
26
+ this.registry = registry;
27
+ this.middlewareRegistry = middlewareRegistry;
28
+ this.messageNormalizerRegistry = messageNormalizerRegistry;
29
+ }
30
+ create(channel) {
31
+ return new in_memory_message_bus_1.InMemoryMessageBus(this.registry, this.middlewareRegistry, channel, this.messageNormalizerRegistry);
32
+ }
33
+ };
34
+ exports.InMemoryMessageBusFactory = InMemoryMessageBusFactory;
35
+ exports.InMemoryMessageBusFactory = InMemoryMessageBusFactory = __decorate([
36
+ (0, common_1.Injectable)(),
37
+ (0, decorator_1.MessageBusFactory)(in_memory_channel_1.InMemoryChannel),
38
+ __param(0, (0, common_1.Inject)(service_1.Service.MESSAGE_HANDLERS_REGISTRY)),
39
+ __param(1, (0, common_1.Inject)(service_1.Service.MIDDLEWARE_REGISTRY)),
40
+ __param(2, (0, common_1.Inject)(service_1.Service.MESSAGE_NORMALIZERS_REGISTRY)),
41
+ __metadata("design:paramtypes", [message_handler_registry_1.MessageHandlerRegistry,
42
+ middleware_registry_1.MiddlewareRegistry,
43
+ normalizer_registry_1.NormalizerRegistry])
44
+ ], InMemoryMessageBusFactory);
45
+ //# sourceMappingURL=in-memory-message-bus.factory.js.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { IMessageBus } from './i-message-bus';
2
+ import { MessageHandlerRegistry } from '../handler/message-handler.registry';
3
+ import { MiddlewareRegistry } from '../middleware/middleware.registry';
4
+ import { InMemoryChannel } from '../channel/in-memory.channel';
5
+ import { Message } from '../message/message';
6
+ import { NormalizerRegistry } from '../normalizer/normalizer.registry';
7
+ export declare class InMemoryMessageBus implements IMessageBus {
8
+ private registry;
9
+ private middlewareRegistry;
10
+ private channel;
11
+ private normalizerRegistry;
12
+ constructor(registry: MessageHandlerRegistry, middlewareRegistry: MiddlewareRegistry, channel: InMemoryChannel, normalizerRegistry: NormalizerRegistry);
13
+ dispatch(message: Message): Promise<object | void>;
14
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InMemoryMessageBus = void 0;
4
+ const in_memory_channel_1 = require("../channel/in-memory.channel");
5
+ const handler_middleware_1 = require("../middleware/handler-middleware");
6
+ const middleware_context_1 = require("../middleware/middleware.context");
7
+ const decorator_extractor_1 = require("../shared/decorator-extractor");
8
+ const sealed_routing_message_1 = require("../message/sealed-routing-message");
9
+ const object_forward_message_normalizer_1 = require("../normalizer/object-forward-message.normalizer");
10
+ const message_factory_1 = require("../message/message.factory");
11
+ const routing_message_1 = require("../message/routing-message");
12
+ const default_message_options_1 = require("../message/default-message-options");
13
+ class InMemoryMessageBus {
14
+ constructor(registry, middlewareRegistry, channel, normalizerRegistry) {
15
+ this.registry = registry;
16
+ this.middlewareRegistry = middlewareRegistry;
17
+ this.channel = channel;
18
+ this.normalizerRegistry = normalizerRegistry;
19
+ }
20
+ async dispatch(message) {
21
+ const middlewares = [];
22
+ middlewares.push(...(this.channel.config?.middlewares ?? []), ...(message.messageOptions?.middlewares ?? []), handler_middleware_1.HandlerMiddleware);
23
+ try {
24
+ this.registry.getByRoutingKey(message.messageRoutingKey);
25
+ }
26
+ catch (e) {
27
+ let avoidErrorsForNonExistedHandlers = true;
28
+ if (this.channel instanceof in_memory_channel_1.InMemoryChannel && 'default.bus' !== this.channel.config.name) {
29
+ avoidErrorsForNonExistedHandlers = this.channel.config.avoidErrorsForNotExistedHandlers ?? avoidErrorsForNonExistedHandlers;
30
+ }
31
+ else {
32
+ avoidErrorsForNonExistedHandlers = message.messageOptions?.avoidErrorsWhenNotExistedHandler ?? avoidErrorsForNonExistedHandlers;
33
+ }
34
+ if (avoidErrorsForNonExistedHandlers) {
35
+ return Promise.resolve();
36
+ }
37
+ throw e;
38
+ }
39
+ const middlewareInstances = middlewares.map(middleware => this.middlewareRegistry.getByName(decorator_extractor_1.DecoratorExtractor.extractMessageMiddleware(middleware)));
40
+ const context = middleware_context_1.MiddlewareContext.createFresh(middlewareInstances);
41
+ let messageToDispatch = message instanceof routing_message_1.RoutingMessage ? message.message : {};
42
+ if (message instanceof sealed_routing_message_1.SealedRoutingMessage) {
43
+ let normalizerDefinition = (message.messageOptions instanceof default_message_options_1.DefaultMessageOptions
44
+ ? message.messageOptions.normalizer
45
+ : object_forward_message_normalizer_1.ObjectForwardMessageNormalizer);
46
+ messageToDispatch = await this.normalizerRegistry.getByName(normalizerDefinition['name']).denormalize(message.message, message.messageRoutingKey);
47
+ }
48
+ const response = await middlewareInstances[0].process(message_factory_1.MessageFactory.creteRoutingFromMessage(messageToDispatch, message), context);
49
+ return Promise.resolve(response);
50
+ }
51
+ }
52
+ exports.InMemoryMessageBus = InMemoryMessageBus;
53
+ //# sourceMappingURL=in-memory-message.bus.js.map
@@ -0,0 +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,IAAI,IAAI,CAAC,OAAO,YAAY,mCAAe,IAAI,aAAa,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC1F,gCAAgC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gCAAgC,IAAI,gCAAgC,CAAC;YAC9H,CAAC;iBAAM,CAAC;gBACN,gCAAgC,GAAG,OAAO,CAAC,cAAc,EAAE,gCAAgC,IAAI,gCAAgC,CAAC;YAClI,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,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CACvG,wCAAkB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CACxD,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,sCAAiB,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAEnE,IAAI,iBAAiB,GAAG,OAAO,YAAY,gCAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjF,IAAI,OAAO,YAAY,6CAAoB,EAAE,CAAC;YAC5C,IAAI,oBAAoB,GAAW,CAAC,OAAO,CAAC,cAAc,YAAY,+CAAqB;gBACzF,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU;gBACnC,CAAC,CAAC,kEAA8B,CAAW,CAAC;YAE9C,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACpJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAc,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QAEnI,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF;AArDD,gDAqDC"}
@@ -0,0 +1,13 @@
1
+ import { IMessageBus } from './i-message-bus';
2
+ import { Channel } from '../channel/channel';
3
+ export declare class MessageBusCollection {
4
+ private collection;
5
+ constructor(collection?: Collection[]);
6
+ add(collection: Collection): void;
7
+ getAll(): Collection[];
8
+ }
9
+ interface Collection {
10
+ messageBus: IMessageBus;
11
+ channel: Channel<any>;
12
+ }
13
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageBusCollection = void 0;
4
+ class MessageBusCollection {
5
+ constructor(collection = []) {
6
+ this.collection = collection;
7
+ }
8
+ add(collection) {
9
+ this.collection.push(collection);
10
+ }
11
+ getAll() {
12
+ return this.collection;
13
+ }
14
+ }
15
+ exports.MessageBusCollection = MessageBusCollection;
16
+ //# sourceMappingURL=message-bus.collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-bus.collection.js","sourceRoot":"","sources":["../../src/bus/message-bus.collection.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAC/B,YAAoB,aAA2B,EAAE;QAA7B,eAAU,GAAV,UAAU,CAAmB;IACjD,CAAC;IAED,GAAG,CAAC,UAAsB;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AAXD,oDAWC"}
@@ -0,0 +1,5 @@
1
+ import { ChannelConfig } from '../config';
2
+ export declare class Channel<T extends ChannelConfig> {
3
+ readonly config: T;
4
+ constructor(config: T);
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Channel = void 0;
4
+ class Channel {
5
+ constructor(config) {
6
+ this.config = config;
7
+ }
8
+ }
9
+ exports.Channel = Channel;
10
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel/channel.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAClB,YACkB,MAAS;QAAT,WAAM,GAAN,MAAM,CAAG;IAE3B,CAAC;CACF;AALD,0BAKC"}
@@ -0,0 +1,10 @@
1
+ import { Channel } from './channel';
2
+ import { MessagingLogger } from '../logger/messaging-logger';
3
+ export declare class ChannelRegistry {
4
+ private logger;
5
+ private registry;
6
+ constructor(channels: Channel<any>[], logger: MessagingLogger);
7
+ register(channel: Channel<any>): void;
8
+ getByName(name: string): Channel<any>;
9
+ getALl(): Channel<any>[];
10
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelRegistry = void 0;
4
+ const messaging_exception_1 = require("../exception/messaging.exception");
5
+ class ChannelRegistry {
6
+ constructor(channels, logger) {
7
+ this.logger = logger;
8
+ this.registry = new Map();
9
+ channels.forEach((channel) => {
10
+ this.register(channel);
11
+ this.logger.log(`Channel [${channel.config.name}] was registered`);
12
+ });
13
+ }
14
+ register(channel) {
15
+ if (this.registry.has(channel.config.name)) {
16
+ return;
17
+ }
18
+ this.registry.set(channel.config.name, channel);
19
+ }
20
+ getByName(name) {
21
+ if (!this.registry.has(name)) {
22
+ throw new messaging_exception_1.MessagingException(`There is no channel with name: ${name}`);
23
+ }
24
+ return this.registry.get(name);
25
+ }
26
+ getALl() {
27
+ return Array.from(this.registry.values());
28
+ }
29
+ }
30
+ exports.ChannelRegistry = ChannelRegistry;
31
+ //# sourceMappingURL=channel.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.registry.js","sourceRoot":"","sources":["../../src/channel/channel.registry.ts"],"names":[],"mappings":";;;AAEA,0EAAsE;AAEtE,MAAa,eAAe;IAG1B,YACE,QAAwB,EAChB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAJzB,aAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;QAMtD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,OAAqB;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,wCAAkB,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF;AAhCD,0CAgCC"}
@@ -0,0 +1,8 @@
1
+ import { DiscoveryService } from '@nestjs/core';
2
+ import { Channel } from '../channel';
3
+ import { ChannelConfig } from '../../config';
4
+ export declare class CompositeChannelFactory {
5
+ private readonly discoveryService;
6
+ constructor(discoveryService: DiscoveryService);
7
+ create(channelConfig: ChannelConfig): Channel<any>;
8
+ }
@@ -0,0 +1,43 @@
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.CompositeChannelFactory = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const decorator_1 = require("../../dependency-injection/decorator");
16
+ const unsupported_channel_factory_exception_1 = require("../../exception/unsupported-channel-factory.exception");
17
+ let CompositeChannelFactory = class CompositeChannelFactory {
18
+ constructor(discoveryService) {
19
+ this.discoveryService = discoveryService;
20
+ }
21
+ create(channelConfig) {
22
+ const factory = this.discoveryService
23
+ .getProviders()
24
+ .filter((provider) => {
25
+ if (!provider.metatype) {
26
+ return false;
27
+ }
28
+ return Reflect.hasMetadata(decorator_1.CHANNEL_FACTORY_METADATA, provider.metatype);
29
+ })
30
+ .filter((factory) => Reflect.getMetadata(decorator_1.CHANNEL_FACTORY_METADATA, factory.metatype)
31
+ .name === channelConfig.constructor.name);
32
+ if (factory.length !== 1) {
33
+ throw new unsupported_channel_factory_exception_1.UnsupportedChannelFactoryException(channelConfig.constructor.name);
34
+ }
35
+ return factory[0].instance.create(channelConfig);
36
+ }
37
+ };
38
+ exports.CompositeChannelFactory = CompositeChannelFactory;
39
+ exports.CompositeChannelFactory = CompositeChannelFactory = __decorate([
40
+ (0, common_1.Injectable)(),
41
+ __metadata("design:paramtypes", [core_1.DiscoveryService])
42
+ ], CompositeChannelFactory);
43
+ //# sourceMappingURL=composite-channel.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-channel.factory.js","sourceRoot":"","sources":["../../../src/channel/factory/composite-channel.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAgD;AAGhD,oEAAgF;AAChF,iHAA2G;AAGpG,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAEnE,MAAM,CAAC,aAA4B;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB;aAClC,YAAY,EAAE;aACd,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC;aACD,MAAM,CACL,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,OAAO,CAAC,QAAQ,CAAC;aAC5D,IAAI,KAAK,aAAa,CAAC,WAAW,CAAC,IAAI,CAC7C,CAAC;QAEJ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,0EAAkC,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AAzBY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;qCAEoC,uBAAgB;GADpD,uBAAuB,CAyBnC"}
@@ -0,0 +1,6 @@
1
+ import { IChannelFactory } from '../i-channel-factory';
2
+ import { ChannelConfig, InMemoryChannelConfig } from '../../config';
3
+ import { Channel } from '../channel';
4
+ export declare class InMemoryChannelFactory implements IChannelFactory<InMemoryChannelConfig> {
5
+ create(channelConfig: ChannelConfig): Channel<InMemoryChannelConfig>;
6
+ }
@@ -0,0 +1,28 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InMemoryChannelFactory = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const decorator_1 = require("../../dependency-injection/decorator");
12
+ const config_1 = require("../../config");
13
+ const in_memory_channel_1 = require("../in-memory.channel");
14
+ const invalid_channel_config_exception_1 = require("../../exception/invalid-channel-config.exception");
15
+ let InMemoryChannelFactory = class InMemoryChannelFactory {
16
+ create(channelConfig) {
17
+ if (!(channelConfig instanceof config_1.InMemoryChannelConfig)) {
18
+ throw new invalid_channel_config_exception_1.InvalidChannelConfigException(config_1.InMemoryChannelConfig.name);
19
+ }
20
+ return new in_memory_channel_1.InMemoryChannel(channelConfig);
21
+ }
22
+ };
23
+ exports.InMemoryChannelFactory = InMemoryChannelFactory;
24
+ exports.InMemoryChannelFactory = InMemoryChannelFactory = __decorate([
25
+ (0, common_1.Injectable)(),
26
+ (0, decorator_1.ChannelFactory)(config_1.InMemoryChannelConfig)
27
+ ], InMemoryChannelFactory);
28
+ //# sourceMappingURL=in-memory-channel.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-channel.factory.js","sourceRoot":"","sources":["../../../src/channel/factory/in-memory-channel.factory.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,oEAAsE;AACtE,yCAAoE;AAEpE,4DAAuD;AACvD,uGAAiG;AAI1F,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,MAAM,CAAC,aAA4B;QACjC,IAAI,CAAC,CAAC,aAAa,YAAY,8BAAqB,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,gEAA6B,CAAC,8BAAqB,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,IAAI,mCAAe,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AARY,wDAAsB;iCAAtB,sBAAsB;IAFlC,IAAA,mBAAU,GAAE;IACZ,IAAA,0BAAc,EAAC,8BAAqB,CAAC;GACzB,sBAAsB,CAQlC"}
@@ -0,0 +1,5 @@
1
+ import { Channel } from './channel';
2
+ import { ChannelConfig } from '../config';
3
+ export interface IChannelFactory<T extends ChannelConfig> {
4
+ create(channelConfig: T): Channel<T>;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i-channel-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-channel-factory.js","sourceRoot":"","sources":["../../src/channel/i-channel-factory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { Channel } from './channel';
2
+ import { InMemoryChannelConfig } from '../config';
3
+ export declare class InMemoryChannel extends Channel<InMemoryChannelConfig> {
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InMemoryChannel = void 0;
4
+ const channel_1 = require("./channel");
5
+ class InMemoryChannel extends channel_1.Channel {
6
+ }
7
+ exports.InMemoryChannel = InMemoryChannel;
8
+ //# sourceMappingURL=in-memory.channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory.channel.js","sourceRoot":"","sources":["../../src/channel/in-memory.channel.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAGpC,MAAa,eAAgB,SAAQ,iBAA8B;CAClE;AADD,0CACC"}
@@ -0,0 +1,40 @@
1
+ type DefineChannels = ChannelConfig[];
2
+ export interface MessagingModuleOptions {
3
+ messageHandlers?: object[];
4
+ buses?: DefineBusOption[];
5
+ channels?: DefineChannels;
6
+ debug?: boolean;
7
+ logging?: boolean;
8
+ global?: boolean;
9
+ }
10
+ interface DefineBusOption {
11
+ name: string;
12
+ channels: string[];
13
+ }
14
+ export declare class ChannelConfig {
15
+ readonly name: string;
16
+ readonly avoidErrorsForNotExistedHandlers?: boolean;
17
+ readonly middlewares?: object[];
18
+ readonly enableConsumer?: boolean;
19
+ readonly normalizer?: object;
20
+ constructor(name: string, avoidErrorsForNotExistedHandlers?: boolean, middlewares?: object[], enableConsumer?: boolean, normalizer?: object);
21
+ }
22
+ export declare class AmqpChannelConfig extends ChannelConfig {
23
+ readonly connectionUri: string;
24
+ readonly exchangeName: string;
25
+ readonly exchangeType: ExchangeType;
26
+ readonly queue: string;
27
+ readonly bindingKeys?: string[];
28
+ readonly autoCreate?: boolean;
29
+ readonly deadLetterQueueFeature?: boolean;
30
+ constructor({ name, connectionUri, exchangeName, exchangeType, queue, enableConsumer, bindingKeys, autoCreate, deadLetterQueueFeature, avoidErrorsForNotExistedHandlers, middlewares, normalizer, }: AmqpChannelConfig);
31
+ }
32
+ export declare class InMemoryChannelConfig extends ChannelConfig {
33
+ constructor({ name, avoidErrorsForNotExistedHandlers, middlewares, enableConsumer, normalizer, }: InMemoryChannelConfig);
34
+ }
35
+ export declare enum ExchangeType {
36
+ TOPIC = "topic",
37
+ FANOUT = "fanout",
38
+ DIRECT = "direct"
39
+ }
40
+ export {};
package/lib/config.js ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExchangeType = exports.InMemoryChannelConfig = exports.AmqpChannelConfig = exports.ChannelConfig = void 0;
4
+ const object_forward_message_normalizer_1 = require("./normalizer/object-forward-message.normalizer");
5
+ class ChannelConfig {
6
+ constructor(name, avoidErrorsForNotExistedHandlers, middlewares, enableConsumer, normalizer) {
7
+ this.name = name;
8
+ this.avoidErrorsForNotExistedHandlers = avoidErrorsForNotExistedHandlers ?? false;
9
+ this.middlewares = middlewares ?? [];
10
+ this.enableConsumer = enableConsumer ?? true;
11
+ this.normalizer = normalizer ?? object_forward_message_normalizer_1.ObjectForwardMessageNormalizer;
12
+ }
13
+ }
14
+ exports.ChannelConfig = ChannelConfig;
15
+ class AmqpChannelConfig extends ChannelConfig {
16
+ constructor({ name, connectionUri, exchangeName, exchangeType, queue, enableConsumer, bindingKeys, autoCreate, deadLetterQueueFeature, avoidErrorsForNotExistedHandlers, middlewares, normalizer, }) {
17
+ super(name, avoidErrorsForNotExistedHandlers, middlewares, enableConsumer, normalizer);
18
+ this.connectionUri = connectionUri;
19
+ this.exchangeName = exchangeName;
20
+ this.exchangeType = exchangeType;
21
+ this.queue = queue;
22
+ this.bindingKeys = bindingKeys;
23
+ this.autoCreate = autoCreate ?? true;
24
+ this.deadLetterQueueFeature = deadLetterQueueFeature ?? false;
25
+ }
26
+ }
27
+ exports.AmqpChannelConfig = AmqpChannelConfig;
28
+ class InMemoryChannelConfig extends ChannelConfig {
29
+ constructor({ name, avoidErrorsForNotExistedHandlers, middlewares, enableConsumer, normalizer, }) {
30
+ super(name, avoidErrorsForNotExistedHandlers, middlewares, enableConsumer, normalizer);
31
+ }
32
+ }
33
+ exports.InMemoryChannelConfig = InMemoryChannelConfig;
34
+ var ExchangeType;
35
+ (function (ExchangeType) {
36
+ ExchangeType["TOPIC"] = "topic";
37
+ ExchangeType["FANOUT"] = "fanout";
38
+ ExchangeType["DIRECT"] = "direct";
39
+ })(ExchangeType || (exports.ExchangeType = ExchangeType = {}));
40
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,sGAAgG;AAkBhG,MAAa,aAAa;IAMxB,YACkB,IAAY,EAC5B,gCAA0C,EAC1C,WAAsB,EACtB,cAAwB,EACxB,UAAmB;QAJH,SAAI,GAAJ,IAAI,CAAQ;QAM5B,IAAI,CAAC,gCAAgC,GAAG,gCAAgC,IAAI,KAAK,CAAC;QAClF,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;AAlBD,sCAkBC;AAED,MAAa,iBAAkB,SAAQ,aAAa;IASlD,YAAY,EACV,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,cAAc,EACd,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,gCAAgC,EAChC,WAAW,EACX,UAAU,GACQ;QAClB,KAAK,CAAC,IAAI,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAA;QACtF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,IAAI,KAAK,CAAC;IAChE,CAAC;CACF;AAhCD,8CAgCC;AAED,MAAa,qBAAsB,SAAQ,aAAa;IACtD,YAAY,EACV,IAAI,EACJ,gCAAgC,EAChC,WAAW,EACX,cAAc,EACd,UAAU,GACY;QACtB,KAAK,CAAC,IAAI,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IACzF,CAAC;CACF;AAVD,sDAUC;AAED,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"}
@@ -0,0 +1,6 @@
1
+ import { ConsumerMessage } from './consumer-message';
2
+ export declare class ConsumerDispatchedMessageError {
3
+ readonly dispatchedConsumerMessage: ConsumerMessage;
4
+ readonly error: Error;
5
+ constructor(dispatchedConsumerMessage: ConsumerMessage, error: Error);
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsumerDispatchedMessageError = void 0;
4
+ class ConsumerDispatchedMessageError {
5
+ constructor(dispatchedConsumerMessage, error) {
6
+ this.dispatchedConsumerMessage = dispatchedConsumerMessage;
7
+ this.error = error;
8
+ }
9
+ }
10
+ exports.ConsumerDispatchedMessageError = ConsumerDispatchedMessageError;
11
+ //# sourceMappingURL=consumer-dispatched-message-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-dispatched-message-error.js","sourceRoot":"","sources":["../../src/consumer/consumer-dispatched-message-error.ts"],"names":[],"mappings":";;;AAEA,MAAa,8BAA8B;IACzC,YACkB,yBAA0C,EAC1C,KAAY;QADZ,8BAAyB,GAAzB,yBAAyB,CAAiB;QAC1C,UAAK,GAAL,KAAK,CAAO;IAC3B,CAAC;CACL;AALD,wEAKC"}
@@ -0,0 +1,3 @@
1
+ export interface ConsumerMessageDispatcher {
2
+ dispatch(message: object | string): void;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=consumer-message-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-message-dispatcher.js","sourceRoot":"","sources":["../../src/consumer/consumer-message-dispatcher.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ConsumerMessage } from './consumer-message';
3
+ import { ConsumerMessageDispatcher } from './consumer-message-dispatcher';
4
+ export declare class ConsumerMessageMediator implements ConsumerMessageDispatcher {
5
+ private $message;
6
+ constructor();
7
+ dispatch(message: ConsumerMessage): void;
8
+ listen(): Observable<ConsumerMessage>;
9
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsumerMessageMediator = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ class ConsumerMessageMediator {
6
+ constructor() {
7
+ this.$message = new rxjs_1.Subject();
8
+ }
9
+ dispatch(message) {
10
+ this.$message.next(message);
11
+ }
12
+ listen() {
13
+ return this.$message.asObservable();
14
+ }
15
+ }
16
+ exports.ConsumerMessageMediator = ConsumerMessageMediator;
17
+ //# sourceMappingURL=consumer-message-mediator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-message-mediator.js","sourceRoot":"","sources":["../../src/consumer/consumer-message-mediator.ts"],"names":[],"mappings":";;;AAAA,+BAA2C;AAI3C,MAAa,uBAAuB;IAGlC;QAFQ,aAAQ,GAA6B,IAAI,cAAO,EAAE,CAAC;IAE5C,CAAC;IAEhB,QAAQ,CAAC,OAAwB;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;CACF;AAZD,0DAYC"}