@hestjs/cqrs 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +234 -0
  2. package/dist/classes/command.d.ts +13 -0
  3. package/dist/classes/command.d.ts.map +1 -0
  4. package/dist/classes/command.js +11 -0
  5. package/dist/classes/command.js.map +1 -0
  6. package/dist/classes/event.d.ts +10 -0
  7. package/dist/classes/event.d.ts.map +1 -0
  8. package/dist/classes/event.js +14 -0
  9. package/dist/classes/event.js.map +1 -0
  10. package/dist/classes/index.d.ts +4 -0
  11. package/dist/classes/index.d.ts.map +1 -0
  12. package/dist/classes/index.js +20 -0
  13. package/dist/classes/index.js.map +1 -0
  14. package/dist/classes/query.d.ts +13 -0
  15. package/dist/classes/query.d.ts.map +1 -0
  16. package/dist/classes/query.js +11 -0
  17. package/dist/classes/query.js.map +1 -0
  18. package/dist/command-bus.d.ts +30 -0
  19. package/dist/command-bus.d.ts.map +1 -0
  20. package/dist/command-bus.js +88 -0
  21. package/dist/command-bus.js.map +1 -0
  22. package/dist/constants.d.ts +10 -0
  23. package/dist/constants.d.ts.map +1 -0
  24. package/dist/constants.js +16 -0
  25. package/dist/constants.js.map +1 -0
  26. package/dist/cqrs.module.d.ts +50 -0
  27. package/dist/cqrs.module.d.ts.map +1 -0
  28. package/dist/cqrs.module.js +149 -0
  29. package/dist/cqrs.module.js.map +1 -0
  30. package/dist/decorators/command-handler.decorator.d.ts +12 -0
  31. package/dist/decorators/command-handler.decorator.d.ts.map +1 -0
  32. package/dist/decorators/command-handler.decorator.js +27 -0
  33. package/dist/decorators/command-handler.decorator.js.map +1 -0
  34. package/dist/decorators/events-handler.decorator.d.ts +12 -0
  35. package/dist/decorators/events-handler.decorator.d.ts.map +1 -0
  36. package/dist/decorators/events-handler.decorator.js +23 -0
  37. package/dist/decorators/events-handler.decorator.js.map +1 -0
  38. package/dist/decorators/index.d.ts +5 -0
  39. package/dist/decorators/index.d.ts.map +1 -0
  40. package/dist/decorators/index.js +21 -0
  41. package/dist/decorators/index.js.map +1 -0
  42. package/dist/decorators/query-handler.decorator.d.ts +12 -0
  43. package/dist/decorators/query-handler.decorator.d.ts.map +1 -0
  44. package/dist/decorators/query-handler.decorator.js +27 -0
  45. package/dist/decorators/query-handler.decorator.js.map +1 -0
  46. package/dist/decorators/saga.decorator.d.ts +9 -0
  47. package/dist/decorators/saga.decorator.d.ts.map +1 -0
  48. package/dist/decorators/saga.decorator.js +21 -0
  49. package/dist/decorators/saga.decorator.js.map +1 -0
  50. package/dist/event-bus.d.ts +38 -0
  51. package/dist/event-bus.d.ts.map +1 -0
  52. package/dist/event-bus.js +135 -0
  53. package/dist/event-bus.js.map +1 -0
  54. package/dist/exceptions/command.exceptions.d.ts +7 -0
  55. package/dist/exceptions/command.exceptions.d.ts.map +1 -0
  56. package/dist/exceptions/command.exceptions.js +18 -0
  57. package/dist/exceptions/command.exceptions.js.map +1 -0
  58. package/dist/exceptions/event.exceptions.d.ts +7 -0
  59. package/dist/exceptions/event.exceptions.d.ts.map +1 -0
  60. package/dist/exceptions/event.exceptions.js +18 -0
  61. package/dist/exceptions/event.exceptions.js.map +1 -0
  62. package/dist/exceptions/index.d.ts +4 -0
  63. package/dist/exceptions/index.d.ts.map +1 -0
  64. package/dist/exceptions/index.js +20 -0
  65. package/dist/exceptions/index.js.map +1 -0
  66. package/dist/exceptions/query.exceptions.d.ts +7 -0
  67. package/dist/exceptions/query.exceptions.d.ts.map +1 -0
  68. package/dist/exceptions/query.exceptions.js +18 -0
  69. package/dist/exceptions/query.exceptions.js.map +1 -0
  70. package/dist/helpers/default-command-pubsub.d.ts +7 -0
  71. package/dist/helpers/default-command-pubsub.d.ts.map +1 -0
  72. package/dist/helpers/default-command-pubsub.js +21 -0
  73. package/dist/helpers/default-command-pubsub.js.map +1 -0
  74. package/dist/helpers/default-event-pubsub.d.ts +8 -0
  75. package/dist/helpers/default-event-pubsub.d.ts.map +1 -0
  76. package/dist/helpers/default-event-pubsub.js +24 -0
  77. package/dist/helpers/default-event-pubsub.js.map +1 -0
  78. package/dist/helpers/default-query-pubsub.d.ts +7 -0
  79. package/dist/helpers/default-query-pubsub.d.ts.map +1 -0
  80. package/dist/helpers/default-query-pubsub.js +21 -0
  81. package/dist/helpers/default-query-pubsub.js.map +1 -0
  82. package/dist/helpers/index.d.ts +4 -0
  83. package/dist/helpers/index.d.ts.map +1 -0
  84. package/dist/helpers/index.js +20 -0
  85. package/dist/helpers/index.js.map +1 -0
  86. package/dist/index.d.ts +14 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +39 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/interfaces/command.interface.d.ts +14 -0
  91. package/dist/interfaces/command.interface.d.ts.map +1 -0
  92. package/dist/interfaces/command.interface.js +3 -0
  93. package/dist/interfaces/command.interface.js.map +1 -0
  94. package/dist/interfaces/cqrs-module-options.interface.d.ts +17 -0
  95. package/dist/interfaces/cqrs-module-options.interface.d.ts.map +1 -0
  96. package/dist/interfaces/cqrs-module-options.interface.js +3 -0
  97. package/dist/interfaces/cqrs-module-options.interface.js.map +1 -0
  98. package/dist/interfaces/event.interface.d.ts +23 -0
  99. package/dist/interfaces/event.interface.d.ts.map +1 -0
  100. package/dist/interfaces/event.interface.js +3 -0
  101. package/dist/interfaces/event.interface.js.map +1 -0
  102. package/dist/interfaces/index.d.ts +5 -0
  103. package/dist/interfaces/index.d.ts.map +1 -0
  104. package/dist/interfaces/index.js +21 -0
  105. package/dist/interfaces/index.js.map +1 -0
  106. package/dist/interfaces/query.interface.d.ts +16 -0
  107. package/dist/interfaces/query.interface.d.ts.map +1 -0
  108. package/dist/interfaces/query.interface.js +3 -0
  109. package/dist/interfaces/query.interface.js.map +1 -0
  110. package/dist/query-bus.d.ts +30 -0
  111. package/dist/query-bus.d.ts.map +1 -0
  112. package/dist/query-bus.js +88 -0
  113. package/dist/query-bus.js.map +1 -0
  114. package/dist/services/explorer.service.d.ts +25 -0
  115. package/dist/services/explorer.service.d.ts.map +1 -0
  116. package/dist/services/explorer.service.js +95 -0
  117. package/dist/services/explorer.service.js.map +1 -0
  118. package/dist/services/index.d.ts +2 -0
  119. package/dist/services/index.d.ts.map +1 -0
  120. package/dist/services/index.js +18 -0
  121. package/dist/services/index.js.map +1 -0
  122. package/dist/utils/index.d.ts +2 -0
  123. package/dist/utils/index.d.ts.map +1 -0
  124. package/dist/utils/index.js +18 -0
  125. package/dist/utils/index.js.map +1 -0
  126. package/dist/utils/observable-bus.d.ts +11 -0
  127. package/dist/utils/observable-bus.d.ts.map +1 -0
  128. package/dist/utils/observable-bus.js +26 -0
  129. package/dist/utils/observable-bus.js.map +1 -0
  130. package/package.json +51 -0
@@ -0,0 +1,149 @@
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 CqrsModule_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CqrsModule = void 0;
14
+ const core_1 = require("@hestjs/core");
15
+ const tsyringe_1 = require("tsyringe");
16
+ const command_bus_1 = require("./command-bus");
17
+ const constants_1 = require("./constants");
18
+ const event_bus_1 = require("./event-bus");
19
+ const query_bus_1 = require("./query-bus");
20
+ const services_1 = require("./services");
21
+ /**
22
+ * CQRS Module for HestJS
23
+ * Provides Command Query Responsibility Segregation capabilities
24
+ */
25
+ let CqrsModule = CqrsModule_1 = class CqrsModule {
26
+ constructor(explorerService, eventBus, commandBus, queryBus) {
27
+ this.explorerService = explorerService;
28
+ this.eventBus = eventBus;
29
+ this.commandBus = commandBus;
30
+ this.queryBus = queryBus;
31
+ }
32
+ /**
33
+ * Configure CQRS module with options
34
+ */
35
+ static forRoot(options) {
36
+ if (CqrsModule_1.isInitialized) {
37
+ core_1.logger.warn("CqrsModule is already initialized");
38
+ return CqrsModule_1;
39
+ }
40
+ // Register options
41
+ if (options) {
42
+ tsyringe_1.container.registerInstance(constants_1.CQRS_MODULE_OPTIONS, options);
43
+ }
44
+ // Register core services
45
+ tsyringe_1.container.registerSingleton(command_bus_1.CommandBus);
46
+ tsyringe_1.container.registerSingleton(query_bus_1.QueryBus);
47
+ tsyringe_1.container.registerSingleton(event_bus_1.EventBus);
48
+ tsyringe_1.container.registerSingleton(services_1.ExplorerService);
49
+ CqrsModule_1.isInitialized = true;
50
+ core_1.logger.info("CqrsModule initialized");
51
+ return CqrsModule_1;
52
+ }
53
+ /**
54
+ * Configure CQRS module with async options
55
+ */
56
+ static forRootAsync(options) {
57
+ if (CqrsModule_1.isInitialized) {
58
+ core_1.logger.warn("CqrsModule is already initialized");
59
+ return CqrsModule_1;
60
+ }
61
+ // Handle async configuration
62
+ if (options.useFactory) {
63
+ const factory = options.useFactory;
64
+ const deps = options.inject || [];
65
+ tsyringe_1.container.register(constants_1.CQRS_MODULE_OPTIONS, {
66
+ useFactory: () => factory(...deps.map((dep) => tsyringe_1.container.resolve(dep))),
67
+ });
68
+ }
69
+ else if (options.useClass) {
70
+ tsyringe_1.container.registerSingleton(options.useClass);
71
+ tsyringe_1.container.register(constants_1.CQRS_MODULE_OPTIONS, {
72
+ useFactory: () => {
73
+ const factory = tsyringe_1.container.resolve(options.useClass);
74
+ return factory.createCqrsOptions();
75
+ },
76
+ });
77
+ }
78
+ else if (options.useValue) {
79
+ tsyringe_1.container.registerInstance(constants_1.CQRS_MODULE_OPTIONS, options.useValue);
80
+ }
81
+ // Register core services
82
+ tsyringe_1.container.registerSingleton(command_bus_1.CommandBus);
83
+ tsyringe_1.container.registerSingleton(query_bus_1.QueryBus);
84
+ tsyringe_1.container.registerSingleton(event_bus_1.EventBus);
85
+ tsyringe_1.container.registerSingleton(services_1.ExplorerService);
86
+ CqrsModule_1.isInitialized = true;
87
+ core_1.logger.info("CqrsModule initialized with async options");
88
+ return CqrsModule_1;
89
+ }
90
+ /**
91
+ * Initialize the CQRS module and register all handlers
92
+ */
93
+ async onApplicationBootstrap() {
94
+ const { events, queries, sagas, commands } = this.explorerService.getRegisteredHandlers();
95
+ this.eventBus.register(events);
96
+ this.commandBus.register(commands);
97
+ this.queryBus.register(queries);
98
+ this.eventBus.registerSagas(sagas);
99
+ core_1.logger.info("CQRS module bootstrap completed");
100
+ }
101
+ /**
102
+ * Get the command bus instance
103
+ */
104
+ getCommandBus() {
105
+ return this.commandBus;
106
+ }
107
+ /**
108
+ * Get the query bus instance
109
+ */
110
+ getQueryBus() {
111
+ return this.queryBus;
112
+ }
113
+ /**
114
+ * Get the event bus instance
115
+ */
116
+ getEventBus() {
117
+ return this.eventBus;
118
+ }
119
+ /**
120
+ * Register a handler manually
121
+ */
122
+ registerHandler(handlerClass) {
123
+ this.explorerService.registerHandler(handlerClass);
124
+ }
125
+ /**
126
+ * Get a singleton instance of the CQRS module
127
+ */
128
+ static getInstance() {
129
+ if (!CqrsModule_1.isInitialized) {
130
+ throw new Error("CqrsModule must be initialized before getting instance. Call forRoot() or forRootAsync() first.");
131
+ }
132
+ // Manually create the instance to avoid circular dependency
133
+ const explorerService = tsyringe_1.container.resolve(services_1.ExplorerService);
134
+ const eventBus = tsyringe_1.container.resolve(event_bus_1.EventBus);
135
+ const commandBus = tsyringe_1.container.resolve(command_bus_1.CommandBus);
136
+ const queryBus = tsyringe_1.container.resolve(query_bus_1.QueryBus);
137
+ return new CqrsModule_1(explorerService, eventBus, commandBus, queryBus);
138
+ }
139
+ };
140
+ exports.CqrsModule = CqrsModule;
141
+ CqrsModule.isInitialized = false;
142
+ exports.CqrsModule = CqrsModule = CqrsModule_1 = __decorate([
143
+ (0, core_1.Injectable)(),
144
+ __metadata("design:paramtypes", [services_1.ExplorerService,
145
+ event_bus_1.EventBus,
146
+ command_bus_1.CommandBus,
147
+ query_bus_1.QueryBus])
148
+ ], CqrsModule);
149
+ //# sourceMappingURL=cqrs.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cqrs.module.js","sourceRoot":"","sources":["../src/cqrs.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import "reflect-metadata";
2
+ import { ICommand } from "../interfaces";
3
+ /**
4
+ * Decorator that marks a class as a command handler.
5
+ * A command handler handles commands (actions) executed by your application code.
6
+ *
7
+ * The decorated class must implement the `ICommandHandler` interface.
8
+ *
9
+ * @param command command *type* to be handled by this handler.
10
+ */
11
+ export declare const CommandHandler: (command: ICommand | (new (...args: any[]) => ICommand)) => ClassDecorator;
12
+ //# sourceMappingURL=command-handler.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-handler.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/command-handler.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,SAAS,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,CAAC,KACrD,cAUF,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommandHandler = void 0;
4
+ const core_1 = require("@hestjs/core");
5
+ const crypto_1 = require("crypto");
6
+ require("reflect-metadata");
7
+ const constants_1 = require("../constants");
8
+ /**
9
+ * Decorator that marks a class as a command handler.
10
+ * A command handler handles commands (actions) executed by your application code.
11
+ *
12
+ * The decorated class must implement the `ICommandHandler` interface.
13
+ *
14
+ * @param command command *type* to be handled by this handler.
15
+ */
16
+ const CommandHandler = (command) => {
17
+ return (target) => {
18
+ if (!Reflect.hasOwnMetadata(constants_1.COMMAND_METADATA, command)) {
19
+ Reflect.defineMetadata(constants_1.COMMAND_METADATA, { id: (0, crypto_1.randomUUID)() }, command);
20
+ }
21
+ Reflect.defineMetadata(constants_1.COMMAND_HANDLER_METADATA, command, target);
22
+ // 自动添加 Injectable 装饰器
23
+ (0, core_1.Injectable)()(target);
24
+ };
25
+ };
26
+ exports.CommandHandler = CommandHandler;
27
+ //# sourceMappingURL=command-handler.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-handler.decorator.js","sourceRoot":"","sources":["../../src/decorators/command-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAC1C,mCAAoC;AACpC,4BAA0B;AAC1B,4CAA0E;AAG1E;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAC5B,OAAsD,EACtC,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,4BAAgB,EAAE,OAAO,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,4BAAgB,EAAE,EAAE,EAAE,EAAE,IAAA,mBAAU,GAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAElE,sBAAsB;QACtB,IAAA,iBAAU,GAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
@@ -0,0 +1,12 @@
1
+ import "reflect-metadata";
2
+ import { IEvent } from "../interfaces";
3
+ /**
4
+ * Decorator that marks a class as an event handler.
5
+ * An event handler handles events published by your application code.
6
+ *
7
+ * The decorated class must implement the `IEventHandler` interface.
8
+ *
9
+ * @param events event *types* to be handled by this handler.
10
+ */
11
+ export declare const EventsHandler: (...events: (IEvent | (new (...args: any[]) => IEvent))[]) => ClassDecorator;
12
+ //# sourceMappingURL=events-handler.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-handler.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/events-handler.decorator.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GACxB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC,EAAE,KACvD,cAOF,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventsHandler = void 0;
4
+ const core_1 = require("@hestjs/core");
5
+ require("reflect-metadata");
6
+ const constants_1 = require("../constants");
7
+ /**
8
+ * Decorator that marks a class as an event handler.
9
+ * An event handler handles events published by your application code.
10
+ *
11
+ * The decorated class must implement the `IEventHandler` interface.
12
+ *
13
+ * @param events event *types* to be handled by this handler.
14
+ */
15
+ const EventsHandler = (...events) => {
16
+ return (target) => {
17
+ Reflect.defineMetadata(constants_1.EVENT_HANDLER_METADATA, events, target);
18
+ // 自动添加 Injectable 装饰器
19
+ (0, core_1.Injectable)()(target);
20
+ };
21
+ };
22
+ exports.EventsHandler = EventsHandler;
23
+ //# sourceMappingURL=events-handler.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-handler.decorator.js","sourceRoot":"","sources":["../../src/decorators/events-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAC1C,4BAA0B;AAC1B,4CAAsD;AAGtD;;;;;;;GAOG;AACI,MAAM,aAAa,GAAG,CAC3B,GAAG,MAAqD,EACxC,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,kCAAsB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE/D,sBAAsB;QACtB,IAAA,iBAAU,GAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB"}
@@ -0,0 +1,5 @@
1
+ export * from "./command-handler.decorator";
2
+ export * from "./events-handler.decorator";
3
+ export * from "./query-handler.decorator";
4
+ export * from "./saga.decorator";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,21 @@
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("./command-handler.decorator"), exports);
18
+ __exportStar(require("./events-handler.decorator"), exports);
19
+ __exportStar(require("./query-handler.decorator"), exports);
20
+ __exportStar(require("./saga.decorator"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,6DAA2C;AAC3C,4DAA0C;AAC1C,mDAAiC"}
@@ -0,0 +1,12 @@
1
+ import "reflect-metadata";
2
+ import { IQuery } from "../interfaces";
3
+ /**
4
+ * Decorator that marks a class as a query handler.
5
+ * A query handler handles queries executed by your application code.
6
+ *
7
+ * The decorated class must implement the `IQueryHandler` interface.
8
+ *
9
+ * @param query query *type* to be handled by this handler.
10
+ */
11
+ export declare const QueryHandler: (query: IQuery | (new (...args: any[]) => IQuery)) => ClassDecorator;
12
+ //# sourceMappingURL=query-handler.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-handler.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/query-handler.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,KAC/C,cAUF,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryHandler = void 0;
4
+ const core_1 = require("@hestjs/core");
5
+ const crypto_1 = require("crypto");
6
+ require("reflect-metadata");
7
+ const constants_1 = require("../constants");
8
+ /**
9
+ * Decorator that marks a class as a query handler.
10
+ * A query handler handles queries executed by your application code.
11
+ *
12
+ * The decorated class must implement the `IQueryHandler` interface.
13
+ *
14
+ * @param query query *type* to be handled by this handler.
15
+ */
16
+ const QueryHandler = (query) => {
17
+ return (target) => {
18
+ if (!Reflect.hasOwnMetadata(constants_1.QUERY_METADATA, query)) {
19
+ Reflect.defineMetadata(constants_1.QUERY_METADATA, { id: (0, crypto_1.randomUUID)() }, query);
20
+ }
21
+ Reflect.defineMetadata(constants_1.QUERY_HANDLER_METADATA, query, target);
22
+ // 自动添加 Injectable 装饰器
23
+ (0, core_1.Injectable)()(target);
24
+ };
25
+ };
26
+ exports.QueryHandler = QueryHandler;
27
+ //# sourceMappingURL=query-handler.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-handler.decorator.js","sourceRoot":"","sources":["../../src/decorators/query-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAC1C,mCAAoC;AACpC,4BAA0B;AAC1B,4CAAsE;AAGtE;;;;;;;GAOG;AACI,MAAM,YAAY,GAAG,CAC1B,KAAgD,EAChC,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,0BAAc,EAAE,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,cAAc,CAAC,0BAAc,EAAE,EAAE,EAAE,EAAE,IAAA,mBAAU,GAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,kCAAsB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE9D,sBAAsB;QACtB,IAAA,iBAAU,GAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
@@ -0,0 +1,9 @@
1
+ import "reflect-metadata";
2
+ /**
3
+ * Decorator that marks a class as a saga.
4
+ * Sagas are long-running processes that listen to events and may execute commands.
5
+ *
6
+ * The decorated class must implement methods that correspond to event handlers.
7
+ */
8
+ export declare const Saga: () => ClassDecorator;
9
+ //# sourceMappingURL=saga.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saga.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/saga.decorator.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAG1B;;;;;GAKG;AACH,eAAO,MAAM,IAAI,QAAO,cAOvB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Saga = void 0;
4
+ const core_1 = require("@hestjs/core");
5
+ require("reflect-metadata");
6
+ const constants_1 = require("../constants");
7
+ /**
8
+ * Decorator that marks a class as a saga.
9
+ * Sagas are long-running processes that listen to events and may execute commands.
10
+ *
11
+ * The decorated class must implement methods that correspond to event handlers.
12
+ */
13
+ const Saga = () => {
14
+ return (target) => {
15
+ Reflect.defineMetadata(constants_1.SAGA_METADATA, true, target);
16
+ // 自动添加 Injectable 装饰器
17
+ (0, core_1.Injectable)()(target);
18
+ };
19
+ };
20
+ exports.Saga = Saga;
21
+ //# sourceMappingURL=saga.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saga.decorator.js","sourceRoot":"","sources":["../../src/decorators/saga.decorator.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAC1C,4BAA0B;AAC1B,4CAA6C;AAE7C;;;;;GAKG;AACI,MAAM,IAAI,GAAG,GAAmB,EAAE;IACvC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,yBAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEpD,sBAAsB;QACtB,IAAA,iBAAU,GAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,IAAI,QAOf"}
@@ -0,0 +1,38 @@
1
+ import "reflect-metadata";
2
+ import { EventHandlerType, IEvent, IEventBus, IEventPublisher, SagaType } from "./interfaces";
3
+ import { ObservableBus } from "./utils";
4
+ export declare class EventBus<EventBase extends IEvent = IEvent> extends ObservableBus<EventBase> implements IEventBus<EventBase> {
5
+ private eventHandlers;
6
+ private sagas;
7
+ private _publisher;
8
+ constructor();
9
+ /**
10
+ * Returns the publisher.
11
+ */
12
+ get publisher(): IEventPublisher<EventBase>;
13
+ /**
14
+ * Sets the publisher.
15
+ */
16
+ set publisher(_publisher: IEventPublisher<EventBase>);
17
+ /**
18
+ * Publishes a single event.
19
+ */
20
+ publish<T extends EventBase>(event: T): Promise<void>;
21
+ /**
22
+ * Publishes multiple events.
23
+ */
24
+ publishAll<T extends EventBase>(events: T[]): Promise<void>;
25
+ /**
26
+ * Registers event handlers.
27
+ */
28
+ register(handlers: EventHandlerType<EventBase>[]): void;
29
+ /**
30
+ * Registers sagas.
31
+ */
32
+ registerSagas(sagas: SagaType<EventBase>[]): void;
33
+ private registerHandler;
34
+ private registerSaga;
35
+ private useDefaultPublisher;
36
+ private getEventName;
37
+ }
38
+ //# sourceMappingURL=event-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAQ1B,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,SAAS,EAET,eAAe,EAEf,QAAQ,EACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,qBACa,QAAQ,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,CACrD,SAAQ,aAAa,CAAC,SAAS,CAC/B,YAAW,SAAS,CAAC,SAAS,CAAC;IAE/B,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,UAAU,CAA8B;;IAOhD;;OAEG;IACH,IAAI,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,CAE1C;IAED;;OAEG;IACH,IAAI,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC,EAEnD;IAED;;OAEG;IACG,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC3D;;OAEG;IACG,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI;IAIvD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI;IAIjD,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,YAAY;CAIrB"}
@@ -0,0 +1,135 @@
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.EventBus = void 0;
13
+ const core_1 = require("@hestjs/core");
14
+ require("reflect-metadata");
15
+ const tsyringe_1 = require("tsyringe");
16
+ const constants_1 = require("./constants");
17
+ const exceptions_1 = require("./exceptions");
18
+ const helpers_1 = require("./helpers");
19
+ const utils_1 = require("./utils");
20
+ let EventBus = class EventBus extends utils_1.ObservableBus {
21
+ constructor() {
22
+ super();
23
+ this.eventHandlers = new Map();
24
+ this.sagas = new Map();
25
+ this.useDefaultPublisher();
26
+ }
27
+ /**
28
+ * Returns the publisher.
29
+ */
30
+ get publisher() {
31
+ return this._publisher;
32
+ }
33
+ /**
34
+ * Sets the publisher.
35
+ */
36
+ set publisher(_publisher) {
37
+ this._publisher = _publisher;
38
+ }
39
+ /**
40
+ * Publishes a single event.
41
+ */
42
+ async publish(event) {
43
+ const eventName = this.getEventName(event);
44
+ this.publishToSubject(event);
45
+ try {
46
+ // Handle event handlers
47
+ const handlers = this.eventHandlers.get(eventName) || [];
48
+ await Promise.all(handlers.map((handler) => Promise.resolve(handler.handle(event))));
49
+ // Handle sagas
50
+ const eventSagas = this.sagas.get(eventName) || [];
51
+ await Promise.all(eventSagas.map((saga) => {
52
+ const methodName = `on${eventName}`;
53
+ const sagaMethod = saga[methodName];
54
+ if (typeof sagaMethod === "function") {
55
+ return Promise.resolve(sagaMethod.call(saga, event));
56
+ }
57
+ return Promise.resolve();
58
+ }));
59
+ core_1.logger.debug(`Published event "${eventName}"`);
60
+ }
61
+ catch (error) {
62
+ core_1.logger.error(`Error publishing event "${eventName}":`, String(error));
63
+ throw error;
64
+ }
65
+ }
66
+ /**
67
+ * Publishes multiple events.
68
+ */
69
+ async publishAll(events) {
70
+ await Promise.all(events.map((event) => this.publish(event)));
71
+ }
72
+ /**
73
+ * Registers event handlers.
74
+ */
75
+ register(handlers) {
76
+ handlers.forEach((handler) => this.registerHandler(handler));
77
+ }
78
+ /**
79
+ * Registers sagas.
80
+ */
81
+ registerSagas(sagas) {
82
+ sagas.forEach((saga) => this.registerSaga(saga));
83
+ }
84
+ registerHandler(handler) {
85
+ const target = handler;
86
+ const events = Reflect.getMetadata(constants_1.EVENT_HANDLER_METADATA, target);
87
+ if (!events || !Array.isArray(events)) {
88
+ throw new exceptions_1.InvalidEventHandlerException(`Missing @EventsHandler decorator on ${target.name}`);
89
+ }
90
+ // Get handler instance from container
91
+ const handlerInstance = tsyringe_1.container.resolve(target);
92
+ events.forEach((eventType) => {
93
+ const eventName = this.getEventName(eventType);
94
+ if (!this.eventHandlers.has(eventName)) {
95
+ this.eventHandlers.set(eventName, []);
96
+ }
97
+ this.eventHandlers.get(eventName).push(handlerInstance);
98
+ core_1.logger.info(`Registered event handler for "${eventName}"`);
99
+ });
100
+ }
101
+ registerSaga(saga) {
102
+ const target = saga;
103
+ const isSaga = Reflect.getMetadata(constants_1.SAGA_METADATA, target);
104
+ if (!isSaga) {
105
+ throw new exceptions_1.InvalidSagaException(`Missing @Saga decorator on ${target.name}`);
106
+ }
107
+ // Get saga instance from container
108
+ const sagaInstance = tsyringe_1.container.resolve(target);
109
+ // Find all methods that start with 'on' and register them as event handlers
110
+ const prototype = Object.getPrototypeOf(sagaInstance);
111
+ const methodNames = Object.getOwnPropertyNames(prototype).filter((name) => name.startsWith("on") && typeof prototype[name] === "function");
112
+ methodNames.forEach((methodName) => {
113
+ // Extract event name from method name (e.g., 'onUserCreated' -> 'UserCreated')
114
+ const eventName = methodName.substring(2);
115
+ if (!this.sagas.has(eventName)) {
116
+ this.sagas.set(eventName, []);
117
+ }
118
+ this.sagas.get(eventName).push(sagaInstance);
119
+ core_1.logger.info(`Registered saga method "${methodName}" for event "${eventName}"`);
120
+ });
121
+ }
122
+ useDefaultPublisher() {
123
+ this._publisher = new helpers_1.DefaultEventPubSub();
124
+ }
125
+ getEventName(event) {
126
+ const { constructor } = Object.getPrototypeOf(event);
127
+ return constructor.name;
128
+ }
129
+ };
130
+ exports.EventBus = EventBus;
131
+ exports.EventBus = EventBus = __decorate([
132
+ (0, core_1.Injectable)(),
133
+ __metadata("design:paramtypes", [])
134
+ ], EventBus);
135
+ //# sourceMappingURL=event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class CommandHandlerNotFoundException extends Error {
2
+ constructor(commandName: string);
3
+ }
4
+ export declare class InvalidCommandHandlerException extends Error {
5
+ constructor(message?: string);
6
+ }
7
+ //# sourceMappingURL=command.exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions/command.exceptions.ts"],"names":[],"mappings":"AAAA,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,WAAW,EAAE,MAAM;CAIhC;AAED,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,OAAO,CAAC,EAAE,MAAM;CAI7B"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidCommandHandlerException = exports.CommandHandlerNotFoundException = void 0;
4
+ class CommandHandlerNotFoundException extends Error {
5
+ constructor(commandName) {
6
+ super(`Command handler for "${commandName}" not found.`);
7
+ this.name = "CommandHandlerNotFoundException";
8
+ }
9
+ }
10
+ exports.CommandHandlerNotFoundException = CommandHandlerNotFoundException;
11
+ class InvalidCommandHandlerException extends Error {
12
+ constructor(message) {
13
+ super(message || "Invalid command handler.");
14
+ this.name = "InvalidCommandHandlerException";
15
+ }
16
+ }
17
+ exports.InvalidCommandHandlerException = InvalidCommandHandlerException;
18
+ //# sourceMappingURL=command.exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.exceptions.js","sourceRoot":"","sources":["../../src/exceptions/command.exceptions.ts"],"names":[],"mappings":";;;AAAA,MAAa,+BAAgC,SAAQ,KAAK;IACxD,YAAY,WAAmB;QAC7B,KAAK,CAAC,wBAAwB,WAAW,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AALD,0EAKC;AAED,MAAa,8BAA+B,SAAQ,KAAK;IACvD,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,IAAI,0BAA0B,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AALD,wEAKC"}
@@ -0,0 +1,7 @@
1
+ export declare class InvalidEventHandlerException extends Error {
2
+ constructor(message?: string);
3
+ }
4
+ export declare class InvalidSagaException extends Error {
5
+ constructor(message?: string);
6
+ }
7
+ //# sourceMappingURL=event.exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions/event.exceptions.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,OAAO,CAAC,EAAE,MAAM;CAI7B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,CAAC,EAAE,MAAM;CAI7B"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidSagaException = exports.InvalidEventHandlerException = void 0;
4
+ class InvalidEventHandlerException extends Error {
5
+ constructor(message) {
6
+ super(message || "Invalid event handler.");
7
+ this.name = "InvalidEventHandlerException";
8
+ }
9
+ }
10
+ exports.InvalidEventHandlerException = InvalidEventHandlerException;
11
+ class InvalidSagaException extends Error {
12
+ constructor(message) {
13
+ super(message || "Invalid saga.");
14
+ this.name = "InvalidSagaException";
15
+ }
16
+ }
17
+ exports.InvalidSagaException = InvalidSagaException;
18
+ //# sourceMappingURL=event.exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.exceptions.js","sourceRoot":"","sources":["../../src/exceptions/event.exceptions.ts"],"names":[],"mappings":";;;AAAA,MAAa,4BAA6B,SAAQ,KAAK;IACrD,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,IAAI,wBAAwB,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AALD,oEAKC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC"}