@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,6 @@
1
+ export declare class ConsumerMessage {
2
+ readonly message: object | string;
3
+ readonly routingKey: string;
4
+ readonly metadata: any[];
5
+ constructor(message: object | string, routingKey: string, metadata?: any[]);
6
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsumerMessage = void 0;
4
+ class ConsumerMessage {
5
+ constructor(message, routingKey, metadata = []) {
6
+ this.message = message;
7
+ this.routingKey = routingKey;
8
+ this.metadata = metadata;
9
+ this.message = message;
10
+ this.routingKey = routingKey;
11
+ this.metadata = metadata ?? [];
12
+ }
13
+ }
14
+ exports.ConsumerMessage = ConsumerMessage;
15
+ //# sourceMappingURL=consumer-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-message.js","sourceRoot":"","sources":["../../src/consumer/consumer-message.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAC1B,YACkB,OAAsB,EACtB,UAAkB,EAClB,WAAkB,EAAE;QAFpB,YAAO,GAAP,OAAO,CAAe;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAAY;QAEpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;IACjC,CAAC;CACF;AAVD,0CAUC"}
@@ -0,0 +1,12 @@
1
+ import { DiscoveryService } from '@nestjs/core';
2
+ import { IMessageBus } from '../bus/i-message-bus';
3
+ import { ChannelRegistry } from '../channel/channel.registry';
4
+ import { MessagingLogger } from '../logger/messaging-logger';
5
+ export declare class DistributedConsumer {
6
+ private readonly messageBus;
7
+ private readonly channelRegistry;
8
+ private readonly logger;
9
+ private readonly discoveryService;
10
+ constructor(messageBus: IMessageBus, channelRegistry: ChannelRegistry, logger: MessagingLogger, discoveryService: DiscoveryService);
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,79 @@
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.DistributedConsumer = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const core_1 = require("@nestjs/core");
18
+ const service_1 = require("../dependency-injection/service");
19
+ const channel_registry_1 = require("../channel/channel.registry");
20
+ const in_memory_channel_1 = require("../channel/in-memory.channel");
21
+ const decorator_1 = require("../dependency-injection/decorator");
22
+ const consumer_message_mediator_1 = require("./consumer-message-mediator");
23
+ const default_message_options_1 = require("../message/default-message-options");
24
+ const consumer_dispatched_message_error_1 = require("./consumer-dispatched-message-error");
25
+ const sealed_routing_message_1 = require("../message/sealed-routing-message");
26
+ let DistributedConsumer = class DistributedConsumer {
27
+ constructor(messageBus, channelRegistry, logger, discoveryService) {
28
+ this.messageBus = messageBus;
29
+ this.channelRegistry = channelRegistry;
30
+ this.logger = logger;
31
+ this.discoveryService = discoveryService;
32
+ }
33
+ async run() {
34
+ for (const channel of this.channelRegistry.getALl()) {
35
+ if (channel instanceof in_memory_channel_1.InMemoryChannel ||
36
+ false === channel.config.enableConsumer) {
37
+ continue;
38
+ }
39
+ const channelConsumer = this.discoveryService
40
+ .getProviders()
41
+ .filter((provider) => {
42
+ if (!provider.metatype) {
43
+ return false;
44
+ }
45
+ return Reflect.hasMetadata(decorator_1.MESSAGE_CONSUMER_METADATA, provider.metatype);
46
+ })
47
+ .filter((consumer) => Reflect.getMetadata(decorator_1.MESSAGE_CONSUMER_METADATA, consumer.metatype)
48
+ .name === channel.constructor.name);
49
+ if (channelConsumer.length !== 1) {
50
+ throw new Error(`Consumer for channel ${channel.constructor.name} does not found`);
51
+ }
52
+ const mediator = new consumer_message_mediator_1.ConsumerMessageMediator();
53
+ const consumer = channelConsumer[0].instance;
54
+ await consumer.consume(mediator, channel);
55
+ mediator.listen().subscribe(async (consumerMessage) => {
56
+ try {
57
+ this.logger.debug(`Message handled [${JSON.stringify(consumerMessage.message)}] with routing key: [${consumerMessage.routingKey}]`);
58
+ const middlewares = channel.config
59
+ .middlewares;
60
+ const routingMessage = new sealed_routing_message_1.SealedRoutingMessage(consumerMessage.message, consumerMessage.routingKey).createWithOptions(new default_message_options_1.DefaultMessageOptions(middlewares, channel.config?.avoidErrorsForNotExistedHandlers ?? true, channel.config.normalizer));
61
+ await this.messageBus.dispatch(routingMessage);
62
+ }
63
+ catch (e) {
64
+ await consumer.onError(new consumer_dispatched_message_error_1.ConsumerDispatchedMessageError(consumerMessage, e), channel);
65
+ this.logger.error(`Some error occurred in handler: [${e}]`);
66
+ }
67
+ });
68
+ this.logger.log(`Consumer for channel [${channel.config.name}] is ready to handle messages`);
69
+ }
70
+ }
71
+ };
72
+ exports.DistributedConsumer = DistributedConsumer;
73
+ exports.DistributedConsumer = DistributedConsumer = __decorate([
74
+ __param(0, (0, common_1.Inject)(service_1.Service.DEFAULT_MESSAGE_BUS)),
75
+ __param(1, (0, common_1.Inject)(service_1.Service.CHANNEL_REGISTRY)),
76
+ __param(2, (0, common_1.Inject)(service_1.Service.LOGGER)),
77
+ __metadata("design:paramtypes", [Object, channel_registry_1.ChannelRegistry, Object, core_1.DiscoveryService])
78
+ ], DistributedConsumer);
79
+ //# sourceMappingURL=distributed.consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distributed.consumer.js","sourceRoot":"","sources":["../../src/consumer/distributed.consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ConsumerMessageDispatcher } from './consumer-message-dispatcher';
2
+ import { ConsumerDispatchedMessageError } from './consumer-dispatched-message-error';
3
+ export interface IMessagingConsumer<T> {
4
+ consume(dispatcher: ConsumerMessageDispatcher, channel: T): Promise<void>;
5
+ onError(errored: ConsumerDispatchedMessageError, channel: T): Promise<void>;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i-messaging-consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-messaging-consumer.js","sourceRoot":"","sources":["../../src/consumer/i-messaging-consumer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { ChannelConfig } from '../config';
2
+ export declare const MESSAGE_HANDLER_METADATA = "MESSAGE_HANDLER_METADATA";
3
+ export declare const CHANNEL_FACTORY_METADATA = "CHANNEL_FACTORY_METADATA";
4
+ export declare const MESSAGE_BUS_FACTORY_METADATA = "MESSAGE_BUS_FACTORY_METADATA";
5
+ export declare const MESSAGE_CONSUMER_METADATA = "MESSAGE_CONSUMER_METADATA";
6
+ export declare const MESSAGING_MIDDLEWARE_METADATA = "MESSAGING_MIDDLEWARE_METADATA";
7
+ export declare const MESSAGING_NORMALIZER_METADATA = "MESSAGING_NORMALIZER_METADATA";
8
+ export declare const MessageHandler: (routingKey: string) => ClassDecorator;
9
+ export declare const ChannelFactory: (channelConfig: ChannelConfig) => ClassDecorator;
10
+ export declare const MessageBusFactory: (channel: any) => ClassDecorator;
11
+ export declare const MessageConsumer: (channel: any) => ClassDecorator;
12
+ export declare const MessagingMiddleware: (name: string) => ClassDecorator;
13
+ export declare const MessagingNormalizer: (name?: string) => ClassDecorator;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessagingNormalizer = exports.MessagingMiddleware = exports.MessageConsumer = exports.MessageBusFactory = exports.ChannelFactory = exports.MessageHandler = exports.MESSAGING_NORMALIZER_METADATA = exports.MESSAGING_MIDDLEWARE_METADATA = exports.MESSAGE_CONSUMER_METADATA = exports.MESSAGE_BUS_FACTORY_METADATA = exports.CHANNEL_FACTORY_METADATA = exports.MESSAGE_HANDLER_METADATA = void 0;
4
+ exports.MESSAGE_HANDLER_METADATA = 'MESSAGE_HANDLER_METADATA';
5
+ exports.CHANNEL_FACTORY_METADATA = 'CHANNEL_FACTORY_METADATA';
6
+ exports.MESSAGE_BUS_FACTORY_METADATA = 'MESSAGE_BUS_FACTORY_METADATA';
7
+ exports.MESSAGE_CONSUMER_METADATA = 'MESSAGE_CONSUMER_METADATA';
8
+ exports.MESSAGING_MIDDLEWARE_METADATA = 'MESSAGING_MIDDLEWARE_METADATA';
9
+ exports.MESSAGING_NORMALIZER_METADATA = 'MESSAGING_NORMALIZER_METADATA';
10
+ const MessageHandler = (routingKey) => {
11
+ return (target) => {
12
+ Reflect.defineMetadata(exports.MESSAGE_HANDLER_METADATA, routingKey, target);
13
+ };
14
+ };
15
+ exports.MessageHandler = MessageHandler;
16
+ const ChannelFactory = (channelConfig) => {
17
+ return (target) => {
18
+ Reflect.defineMetadata(exports.CHANNEL_FACTORY_METADATA, channelConfig, target);
19
+ };
20
+ };
21
+ exports.ChannelFactory = ChannelFactory;
22
+ const MessageBusFactory = (channel) => {
23
+ classValidator(channel, 'Channel');
24
+ return (target) => {
25
+ Reflect.defineMetadata(exports.MESSAGE_BUS_FACTORY_METADATA, channel, target);
26
+ };
27
+ };
28
+ exports.MessageBusFactory = MessageBusFactory;
29
+ const MessageConsumer = (channel) => {
30
+ classValidator(channel, 'Channel');
31
+ return (target) => {
32
+ Reflect.defineMetadata(exports.MESSAGE_CONSUMER_METADATA, channel, target);
33
+ };
34
+ };
35
+ exports.MessageConsumer = MessageConsumer;
36
+ const MessagingMiddleware = (name) => {
37
+ return (target) => {
38
+ Reflect.defineMetadata(exports.MESSAGING_MIDDLEWARE_METADATA, name, target);
39
+ };
40
+ };
41
+ exports.MessagingMiddleware = MessagingMiddleware;
42
+ const MessagingNormalizer = (name) => {
43
+ return (target) => {
44
+ Reflect.defineMetadata(exports.MESSAGING_NORMALIZER_METADATA, name ?? target.name, target);
45
+ };
46
+ };
47
+ exports.MessagingNormalizer = MessagingNormalizer;
48
+ const classValidator = (value, type) => {
49
+ if (Object.getPrototypeOf(value).name !== type) {
50
+ throw new Error(`Given value must be instance of [${type}]`);
51
+ }
52
+ };
53
+ //# sourceMappingURL=decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/dependency-injection/decorator.ts"],"names":[],"mappings":";;;AAEa,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAC9D,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAChE,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAEtE,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAkB,EAAE;IACnE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,gCAAwB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB;AAEK,MAAM,cAAc,GAAG,CAC5B,aAA4B,EACZ,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,gCAAwB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,iBAAiB,GAAG,CAAC,OAAY,EAAkB,EAAE;IAChE,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,oCAA4B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEK,MAAM,eAAe,GAAG,CAAC,OAAY,EAAkB,EAAE;IAC9D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,iCAAyB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAkB,EAAE;IAClE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAa,EAAkB,EAAE;IACnE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,IAAY,EAAQ,EAAE;IAC3D,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,GAAG,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const MessageBus: (busName: any) => PropertyDecorator & ParameterDecorator;
2
+ export declare const DefaultMessageBus: () => PropertyDecorator & ParameterDecorator;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultMessageBus = exports.MessageBus = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const service_1 = require("./service");
6
+ const MessageBus = (busName) => (0, common_1.Inject)(busName);
7
+ exports.MessageBus = MessageBus;
8
+ const DefaultMessageBus = () => (0, common_1.Inject)(service_1.Service.DEFAULT_MESSAGE_BUS);
9
+ exports.DefaultMessageBus = DefaultMessageBus;
10
+ //# sourceMappingURL=injectable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../src/dependency-injection/injectable.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,uCAAoC;AAE7B,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;AAA1C,QAAA,UAAU,cAAgC;AAEhD,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAA,eAAM,EAAC,iBAAO,CAAC,mBAAmB,CAAC,CAAC;AAA9D,QAAA,iBAAiB,qBAA6C"}
@@ -0,0 +1,4 @@
1
+ import { DiscoveryService, ModuleRef } from '@nestjs/core';
2
+ export declare const registerHandlers: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
3
+ export declare const registerMiddlewares: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
4
+ export declare const registerMessageNormalizers: (moduleRef: ModuleRef, discoveryService: DiscoveryService) => void;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerMessageNormalizers = exports.registerMiddlewares = exports.registerHandlers = void 0;
4
+ const service_1 = require("./service");
5
+ const decorator_1 = require("./decorator");
6
+ const registerHandlers = (moduleRef, discoveryService) => {
7
+ const registry = moduleRef.get(service_1.Service.MESSAGE_HANDLERS_REGISTRY);
8
+ const logger = moduleRef.get(service_1.Service.LOGGER);
9
+ const handlerInstances = discoveryService.getProviders().filter((handler) => {
10
+ if (!handler.metatype) {
11
+ return false;
12
+ }
13
+ return Reflect.hasMetadata(decorator_1.MESSAGE_HANDLER_METADATA, handler.metatype);
14
+ });
15
+ handlerInstances.forEach((handler) => {
16
+ registry.register(Reflect.getMetadata(decorator_1.MESSAGE_HANDLER_METADATA, handler.metatype), handler.instance);
17
+ logger.log(`Handler [${handler.name}] was registered`);
18
+ });
19
+ };
20
+ exports.registerHandlers = registerHandlers;
21
+ const registerMiddlewares = (moduleRef, discoveryService) => {
22
+ const registry = moduleRef.get(service_1.Service.MIDDLEWARE_REGISTRY);
23
+ const logger = moduleRef.get(service_1.Service.LOGGER);
24
+ const middlewareInstances = discoveryService
25
+ .getProviders()
26
+ .filter((middleware) => {
27
+ if (!middleware.metatype) {
28
+ return false;
29
+ }
30
+ return Reflect.hasMetadata(decorator_1.MESSAGING_MIDDLEWARE_METADATA, middleware.metatype);
31
+ });
32
+ middlewareInstances.forEach((middleware) => {
33
+ registry.register(Reflect.getMetadata(decorator_1.MESSAGING_MIDDLEWARE_METADATA, middleware.metatype), middleware.instance);
34
+ if (middleware.name !== 'HandlerMiddleware') {
35
+ logger.log(`Middleware [${middleware.name}] was registered`);
36
+ }
37
+ });
38
+ };
39
+ exports.registerMiddlewares = registerMiddlewares;
40
+ const registerMessageNormalizers = (moduleRef, discoveryService) => {
41
+ const registry = moduleRef.get(service_1.Service.MESSAGE_NORMALIZERS_REGISTRY);
42
+ const logger = moduleRef.get(service_1.Service.LOGGER);
43
+ const messageNormalizerInstances = discoveryService
44
+ .getProviders()
45
+ .filter((messageNormalizer) => {
46
+ if (!messageNormalizer.metatype) {
47
+ return false;
48
+ }
49
+ return Reflect.hasMetadata(decorator_1.MESSAGING_NORMALIZER_METADATA, messageNormalizer.metatype);
50
+ });
51
+ messageNormalizerInstances.forEach((messageNormalizer) => {
52
+ registry.register(Reflect.getMetadata(decorator_1.MESSAGING_NORMALIZER_METADATA, messageNormalizer.metatype), messageNormalizer.instance);
53
+ if (messageNormalizer.name !== 'ObjectForwardMessageNormalizer') {
54
+ logger.log(`MessageNormalizer [${messageNormalizer.name}] was registered`);
55
+ }
56
+ });
57
+ };
58
+ exports.registerMessageNormalizers = registerMessageNormalizers;
59
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/dependency-injection/register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare enum Service {
2
+ DEFAULT_MESSAGE_BUS = "messenger_DEFAULT_MESSAGE_BUS",
3
+ MIDDLEWARE_REGISTRY = "messenger_MIDDLEWARE_REGISTRY",
4
+ MESSAGE_HANDLERS = "messenger_MESSAGE_HANDLERS",
5
+ MESSAGE_HANDLERS_REGISTRY = "messenger_MESSAGE_HANDLERS_REGISTRY",
6
+ MESSAGE_NORMALIZERS_REGISTRY = "messenger_MESSAGE_NORMALIZERS_REGISTRY",
7
+ CHANNEL_REGISTRY = "messenger_CHANNEL_REGISTRY",
8
+ CHANNELS = "messenger_CHANNELS",
9
+ LOGGER = "messenger_LOGGER"
10
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Service = void 0;
4
+ var Service;
5
+ (function (Service) {
6
+ Service["DEFAULT_MESSAGE_BUS"] = "messenger_DEFAULT_MESSAGE_BUS";
7
+ Service["MIDDLEWARE_REGISTRY"] = "messenger_MIDDLEWARE_REGISTRY";
8
+ Service["MESSAGE_HANDLERS"] = "messenger_MESSAGE_HANDLERS";
9
+ Service["MESSAGE_HANDLERS_REGISTRY"] = "messenger_MESSAGE_HANDLERS_REGISTRY";
10
+ Service["MESSAGE_NORMALIZERS_REGISTRY"] = "messenger_MESSAGE_NORMALIZERS_REGISTRY";
11
+ Service["CHANNEL_REGISTRY"] = "messenger_CHANNEL_REGISTRY";
12
+ Service["CHANNELS"] = "messenger_CHANNELS";
13
+ Service["LOGGER"] = "messenger_LOGGER";
14
+ })(Service || (exports.Service = Service = {}));
15
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dependency-injection/service.ts"],"names":[],"mappings":";;;AAAA,IAAY,OASX;AATD,WAAY,OAAO;IACjB,gEAAqD,CAAA;IACrD,gEAAqD,CAAA;IACrD,0DAA+C,CAAA;IAC/C,4EAAiE,CAAA;IACjE,kFAAuE,CAAA;IACvE,0DAA+C,CAAA;IAC/C,0CAA+B,CAAA;IAC/B,sCAA2B,CAAA;AAC7B,CAAC,EATW,OAAO,uBAAP,OAAO,QASlB"}
@@ -0,0 +1,4 @@
1
+ import { MessagingException } from './messaging.exception';
2
+ export declare class HandlerForMessageNotFoundException extends MessagingException {
3
+ constructor(routingKey: string);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandlerForMessageNotFoundException = void 0;
4
+ const messaging_exception_1 = require("./messaging.exception");
5
+ class HandlerForMessageNotFoundException extends messaging_exception_1.MessagingException {
6
+ constructor(routingKey) {
7
+ super(`There is no handlers for this routing key: [${routingKey}]`);
8
+ }
9
+ }
10
+ exports.HandlerForMessageNotFoundException = HandlerForMessageNotFoundException;
11
+ //# sourceMappingURL=handler-for-message-not-found.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler-for-message-not-found.exception.js","sourceRoot":"","sources":["../../src/exception/handler-for-message-not-found.exception.ts"],"names":[],"mappings":";;;AAAA,+DAA2D;AAE3D,MAAa,kCAAmC,SAAQ,wCAAkB;IACxE,YAAY,UAAkB;QAC5B,KAAK,CAAC,+CAA+C,UAAU,GAAG,CAAC,CAAC;IACtE,CAAC;CACF;AAJD,gFAIC"}
@@ -0,0 +1,4 @@
1
+ import { MessagingException } from './messaging.exception';
2
+ export declare class InvalidChannelConfigException extends MessagingException {
3
+ constructor(expectedChannelName: string);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidChannelConfigException = void 0;
4
+ const messaging_exception_1 = require("./messaging.exception");
5
+ class InvalidChannelConfigException extends messaging_exception_1.MessagingException {
6
+ constructor(expectedChannelName) {
7
+ super(`Invalid ChannelConfig. Expected ChannelConfig is [${expectedChannelName}]`);
8
+ }
9
+ }
10
+ exports.InvalidChannelConfigException = InvalidChannelConfigException;
11
+ //# sourceMappingURL=invalid-channel-config.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalid-channel-config.exception.js","sourceRoot":"","sources":["../../src/exception/invalid-channel-config.exception.ts"],"names":[],"mappings":";;;AAAA,+DAA2D;AAE3D,MAAa,6BAA8B,SAAQ,wCAAkB;IACnE,YAAY,mBAA2B;QACrC,KAAK,CAAC,qDAAqD,mBAAmB,GAAG,CAAC,CAAC;IACrF,CAAC;CACF;AAJD,sEAIC"}
@@ -0,0 +1,4 @@
1
+ import { MessagingException } from './messaging.exception';
2
+ export declare class InvalidChannelException extends MessagingException {
3
+ constructor(expectedChannelConfigName: string);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidChannelException = void 0;
4
+ const messaging_exception_1 = require("./messaging.exception");
5
+ class InvalidChannelException extends messaging_exception_1.MessagingException {
6
+ constructor(expectedChannelConfigName) {
7
+ super(`Invalid Channel. Expected Channel is [${expectedChannelConfigName}]`);
8
+ }
9
+ }
10
+ exports.InvalidChannelException = InvalidChannelException;
11
+ //# sourceMappingURL=invalid-channel.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalid-channel.exception.js","sourceRoot":"","sources":["../../src/exception/invalid-channel.exception.ts"],"names":[],"mappings":";;;AAAA,+DAA2D;AAE3D,MAAa,uBAAwB,SAAQ,wCAAkB;IAC7D,YAAY,yBAAiC;QAC3C,KAAK,CAAC,yCAAyC,yBAAyB,GAAG,CAAC,CAAC;IAC/E,CAAC;CACF;AAJD,0DAIC"}
@@ -0,0 +1,3 @@
1
+ export declare class MessagingException extends Error {
2
+ constructor(message: string);
3
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessagingException = void 0;
4
+ class MessagingException extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ }
8
+ }
9
+ exports.MessagingException = MessagingException;
10
+ //# sourceMappingURL=messaging.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messaging.exception.js","sourceRoot":"","sources":["../../src/exception/messaging.exception.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAJD,gDAIC"}
@@ -0,0 +1,4 @@
1
+ import { MessagingException } from './messaging.exception';
2
+ export declare class UnsupportedChannelFactoryException extends MessagingException {
3
+ constructor(channelConfig: string);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnsupportedChannelFactoryException = void 0;
4
+ const messaging_exception_1 = require("./messaging.exception");
5
+ class UnsupportedChannelFactoryException extends messaging_exception_1.MessagingException {
6
+ constructor(channelConfig) {
7
+ super(`Unsupported ChannelFactory for channel [${channelConfig}]`);
8
+ }
9
+ }
10
+ exports.UnsupportedChannelFactoryException = UnsupportedChannelFactoryException;
11
+ //# sourceMappingURL=unsupported-channel-factory.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsupported-channel-factory.exception.js","sourceRoot":"","sources":["../../src/exception/unsupported-channel-factory.exception.ts"],"names":[],"mappings":";;;AAAA,+DAA2D;AAE3D,MAAa,kCAAmC,SAAQ,wCAAkB;IACxE,YAAY,aAAqB;QAC/B,KAAK,CAAC,2CAA2C,aAAa,GAAG,CAAC,CAAC;IACrE,CAAC;CACF;AAJD,gFAIC"}
@@ -0,0 +1,4 @@
1
+ export declare class HandlerResponse {
2
+ readonly response: any[];
3
+ constructor(response: any[]);
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandlerResponse = void 0;
4
+ class HandlerResponse {
5
+ constructor(response) {
6
+ this.response = response;
7
+ }
8
+ }
9
+ exports.HandlerResponse = HandlerResponse;
10
+ //# sourceMappingURL=handler-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler-response.js","sourceRoot":"","sources":["../../src/handler/handler-response.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAC1B,YAA4B,QAAe;QAAf,aAAQ,GAAR,QAAQ,CAAO;IAC3C,CAAC;CACF;AAHD,0CAGC"}
@@ -0,0 +1,3 @@
1
+ export interface IMessageHandler<T> {
2
+ handle(message: T): Promise<object | void>;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i-message.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-message.handler.js","sourceRoot":"","sources":["../../src/handler/i-message.handler.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { IMessageHandler } from './i-message.handler';
2
+ export declare class MessageHandlerRegistry {
3
+ private registry;
4
+ register(name: string, handler: IMessageHandler<any>): void;
5
+ getByRoutingKey(routingKey: string): IMessageHandler<any>[];
6
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageHandlerRegistry = void 0;
4
+ const handler_for_message_not_found_exception_1 = require("../exception/handler-for-message-not-found.exception");
5
+ class MessageHandlerRegistry {
6
+ constructor() {
7
+ this.registry = new Map();
8
+ }
9
+ register(name, handler) {
10
+ if (this.registry.has(name)) {
11
+ const bucket = this.registry.get(name);
12
+ if (bucket.includes(handler)) {
13
+ return;
14
+ }
15
+ this.registry.get(name).push(handler);
16
+ return;
17
+ }
18
+ this.registry.set(name, [handler]);
19
+ }
20
+ getByRoutingKey(routingKey) {
21
+ if (!this.registry.has(routingKey)) {
22
+ throw new handler_for_message_not_found_exception_1.HandlerForMessageNotFoundException(routingKey);
23
+ }
24
+ return this.registry.get(routingKey);
25
+ }
26
+ }
27
+ exports.MessageHandlerRegistry = MessageHandlerRegistry;
28
+ //# sourceMappingURL=message-handler.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-handler.registry.js","sourceRoot":"","sources":["../../src/handler/message-handler.registry.ts"],"names":[],"mappings":";;;AACA,kHAA0G;AAE1G,MAAa,sBAAsB;IAAnC;QACU,aAAQ,GAAwC,IAAI,GAAG,EAAE,CAAC;IAyBpE,CAAC;IAvBC,QAAQ,CAAC,IAAY,EAAE,OAA6B;QAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAgC,CAAC;YAEtE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEtC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,4EAAkC,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF;AA1BD,wDA0BC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ export * from './messaging.module';
2
+ export * from './config';
3
+ export * from './consumer/i-messaging-consumer';
4
+ export * from './consumer/consumer-message';
5
+ export * from './consumer/consumer-message-dispatcher';
6
+ export * from './consumer/consumer-dispatched-message-error';
7
+ export * from './consumer/consumer-message-mediator';
8
+ export * from './dependency-injection/decorator';
9
+ export * from './dependency-injection/injectable';
10
+ export * from './handler/i-message.handler';
11
+ export * from './bus/i-message-bus.factory';
12
+ export * from './bus/i-message-bus';
13
+ export * from './bus/in-memory-message.bus';
14
+ export * from './message/default-message-options';
15
+ export * from './message/routing-message';
16
+ export * from './message/message-options';
17
+ export * from './message/message';
18
+ export * from './message/message-response';
19
+ export * from './channel/factory/composite-channel.factory';
20
+ export * from './channel/factory/in-memory-channel.factory';
21
+ export * from './channel/i-channel-factory';
22
+ export * from './channel/channel';
23
+ export * from './middleware/middleware';
24
+ export * from './exception/invalid-channel.exception';
25
+ export * from './exception/invalid-channel-config.exception';
26
+ export * from './middleware/middleware.context';
27
+ export * from './normalizer/message-normalizer';
package/lib/index.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./messaging.module"), exports);
18
+ __exportStar(require("./config"), exports);
19
+ __exportStar(require("./consumer/i-messaging-consumer"), exports);
20
+ __exportStar(require("./consumer/consumer-message"), exports);
21
+ __exportStar(require("./consumer/consumer-message-dispatcher"), exports);
22
+ __exportStar(require("./consumer/consumer-dispatched-message-error"), exports);
23
+ __exportStar(require("./consumer/consumer-message-mediator"), exports);
24
+ __exportStar(require("./dependency-injection/decorator"), exports);
25
+ __exportStar(require("./dependency-injection/injectable"), exports);
26
+ __exportStar(require("./handler/i-message.handler"), exports);
27
+ __exportStar(require("./bus/i-message-bus.factory"), exports);
28
+ __exportStar(require("./bus/i-message-bus"), exports);
29
+ __exportStar(require("./bus/in-memory-message.bus"), exports);
30
+ __exportStar(require("./message/default-message-options"), exports);
31
+ __exportStar(require("./message/routing-message"), exports);
32
+ __exportStar(require("./message/message-options"), exports);
33
+ __exportStar(require("./message/message"), exports);
34
+ __exportStar(require("./message/message-response"), exports);
35
+ __exportStar(require("./channel/factory/composite-channel.factory"), exports);
36
+ __exportStar(require("./channel/factory/in-memory-channel.factory"), exports);
37
+ __exportStar(require("./channel/i-channel-factory"), exports);
38
+ __exportStar(require("./channel/channel"), exports);
39
+ __exportStar(require("./middleware/middleware"), exports);
40
+ __exportStar(require("./exception/invalid-channel.exception"), exports);
41
+ __exportStar(require("./exception/invalid-channel-config.exception"), exports);
42
+ __exportStar(require("./middleware/middleware.context"), exports);
43
+ __exportStar(require("./normalizer/message-normalizer"), exports);
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2CAAyB;AACzB,kEAAgD;AAChD,8DAA4C;AAC5C,yEAAuD;AACvD,+EAA6D;AAC7D,uEAAqD;AACrD,mEAAiD;AACjD,oEAAkD;AAClD,8DAA4C;AAC5C,8DAA4C;AAC5C,sDAAoC;AACpC,8DAA4C;AAC5C,oEAAkD;AAClD,4DAA0C;AAC1C,4DAA0C;AAC1C,oDAAkC;AAClC,6DAA2C;AAC3C,8EAA4D;AAC5D,8EAA4D;AAC5D,8DAA4C;AAC5C,oDAAkC;AAClC,0DAAwC;AACxC,wEAAsD;AACtD,+EAA6D;AAC7D,kEAAgD;AAChD,kEAAgD"}
@@ -0,0 +1,5 @@
1
+ export interface MessagingLogger {
2
+ error(message: string): void;
3
+ log(message: string): void;
4
+ debug(message: string): void;
5
+ }