@hestjs/cqrs 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto-discovery.d.ts +8 -0
- package/dist/auto-discovery.d.ts.map +1 -0
- package/dist/auto-discovery.js +166 -0
- package/dist/auto-discovery.js.map +1 -0
- package/dist/cqrs.module.d.ts +4 -12
- package/dist/cqrs.module.d.ts.map +1 -1
- package/dist/cqrs.module.js +5 -72
- package/dist/cqrs.module.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/explorer.service.d.ts +12 -1
- package/dist/services/explorer.service.d.ts.map +1 -1
- package/dist/services/explorer.service.js +37 -16
- package/dist/services/explorer.service.js.map +1 -1
- package/package.json +2 -2
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"auto-discovery.d.ts","sourceRoot":"","sources":["../src/auto-discovery.ts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,wBAAgB,2BAA2B,SAqE1C"}
|
@@ -0,0 +1,166 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.initializeCqrsAutoDiscovery = initializeCqrsAutoDiscovery;
|
4
|
+
const core_1 = require("@hestjs/core");
|
5
|
+
const logger_1 = require("@hestjs/logger");
|
6
|
+
const command_bus_1 = require("./command-bus");
|
7
|
+
const query_bus_1 = require("./query-bus");
|
8
|
+
const event_bus_1 = require("./event-bus");
|
9
|
+
const constants_1 = require("./constants");
|
10
|
+
const logger = (0, logger_1.createLogger)("CqrsAutoInit");
|
11
|
+
/**
|
12
|
+
* CQRS 自动初始化扩展
|
13
|
+
*
|
14
|
+
* 通过 core 包的钩子系统自动注册 CQRS 相关的处理器
|
15
|
+
* 这样避免了 core 包与 CQRS 包的直接耦合
|
16
|
+
*/
|
17
|
+
function initializeCqrsAutoDiscovery() {
|
18
|
+
// 注册应用启动钩子
|
19
|
+
core_1.ApplicationHooks.getInstance().registerHook(async (container) => {
|
20
|
+
try {
|
21
|
+
logger.info("🔄 Auto-discovering CQRS handlers...");
|
22
|
+
// 尝试从容器中获取已存在的CQRS服务实例,如果没有则创建新的
|
23
|
+
let commandBus;
|
24
|
+
let queryBus;
|
25
|
+
let eventBus;
|
26
|
+
try {
|
27
|
+
commandBus = container.resolve(command_bus_1.CommandBus);
|
28
|
+
queryBus = container.resolve(query_bus_1.QueryBus);
|
29
|
+
eventBus = container.resolve(event_bus_1.EventBus);
|
30
|
+
logger.info("🔗 Using existing CQRS service instances from container");
|
31
|
+
}
|
32
|
+
catch {
|
33
|
+
// 如果容器中没有,则创建新的实例
|
34
|
+
commandBus = new command_bus_1.CommandBus();
|
35
|
+
queryBus = new query_bus_1.QueryBus();
|
36
|
+
eventBus = new event_bus_1.EventBus();
|
37
|
+
logger.info("🆕 Created new CQRS service instances");
|
38
|
+
// 将新实例注册到容器中
|
39
|
+
container.registerInstance(command_bus_1.CommandBus, commandBus);
|
40
|
+
container.registerInstance(query_bus_1.QueryBus, queryBus);
|
41
|
+
container.registerInstance(event_bus_1.EventBus, eventBus);
|
42
|
+
}
|
43
|
+
// 从逻辑容器中发现处理器
|
44
|
+
const providerItems = container.getItemsByType('provider');
|
45
|
+
const handlers = {
|
46
|
+
commands: [],
|
47
|
+
queries: [],
|
48
|
+
events: [],
|
49
|
+
sagas: []
|
50
|
+
};
|
51
|
+
for (const item of providerItems) {
|
52
|
+
const handlerClass = item.provider;
|
53
|
+
// 检查命令处理器
|
54
|
+
if (Reflect.hasMetadata(constants_1.COMMAND_HANDLER_METADATA, handlerClass)) {
|
55
|
+
handlers.commands.push(handlerClass);
|
56
|
+
// logger.debug(`Found command handler: ${handlerClass.name}`);
|
57
|
+
}
|
58
|
+
// 检查查询处理器
|
59
|
+
if (Reflect.hasMetadata(constants_1.QUERY_HANDLER_METADATA, handlerClass)) {
|
60
|
+
handlers.queries.push(handlerClass);
|
61
|
+
// logger.debug(`Found query handler: ${handlerClass.name}`);
|
62
|
+
}
|
63
|
+
// 检查事件处理器
|
64
|
+
if (Reflect.hasMetadata(constants_1.EVENT_HANDLER_METADATA, handlerClass)) {
|
65
|
+
handlers.events.push(handlerClass);
|
66
|
+
// logger.debug(`Found event handler: ${handlerClass.name}`);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
// 手动注册处理器到总线(避免容器解析问题)
|
70
|
+
registerHandlersManually(commandBus, queryBus, eventBus, handlers, container);
|
71
|
+
logger.info(`✅ CQRS handlers auto-discovery completed: ${handlers.commands.length} commands, ${handlers.queries.length} queries, ${handlers.events.length} events`);
|
72
|
+
}
|
73
|
+
catch (error) {
|
74
|
+
logger.error("❌ Failed to auto-discover CQRS handlers:", error);
|
75
|
+
}
|
76
|
+
});
|
77
|
+
}
|
78
|
+
/**
|
79
|
+
* 手动注册处理器到总线,避免容器解析问题
|
80
|
+
*/
|
81
|
+
function registerHandlersManually(commandBus, queryBus, eventBus, handlers, container) {
|
82
|
+
// 注册命令处理器
|
83
|
+
for (const HandlerClass of handlers.commands) {
|
84
|
+
try {
|
85
|
+
const commandType = Reflect.getMetadata(constants_1.COMMAND_HANDLER_METADATA, HandlerClass);
|
86
|
+
if (commandType) {
|
87
|
+
// 手动解析构造函数依赖并创建实例
|
88
|
+
const handlerInstance = createHandlerInstance(HandlerClass, container);
|
89
|
+
const commandName = commandType.name;
|
90
|
+
// 直接设置到 commandBus 的内部映射
|
91
|
+
commandBus.handlers.set(commandName, (command) => handlerInstance.execute(command));
|
92
|
+
// logger.info(`Manually registered command handler for "${commandName}"`);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
catch (error) {
|
96
|
+
logger.error(`Failed to register command handler ${HandlerClass.name}:`, error);
|
97
|
+
}
|
98
|
+
}
|
99
|
+
// 注册查询处理器
|
100
|
+
for (const HandlerClass of handlers.queries) {
|
101
|
+
try {
|
102
|
+
const queryType = Reflect.getMetadata(constants_1.QUERY_HANDLER_METADATA, HandlerClass);
|
103
|
+
if (queryType) {
|
104
|
+
// 手动解析构造函数依赖并创建实例
|
105
|
+
const handlerInstance = createHandlerInstance(HandlerClass, container);
|
106
|
+
const queryName = queryType.name;
|
107
|
+
// 直接设置到 queryBus 的内部映射
|
108
|
+
queryBus.handlers.set(queryName, (query) => handlerInstance.execute(query));
|
109
|
+
// logger.info(`Manually registered query handler for "${queryName}"`);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
catch (error) {
|
113
|
+
logger.warn(`Failed to register query handler ${HandlerClass.name}:`, error);
|
114
|
+
}
|
115
|
+
}
|
116
|
+
// 注册事件处理器
|
117
|
+
for (const HandlerClass of handlers.events) {
|
118
|
+
try {
|
119
|
+
const eventTypes = Reflect.getMetadata(constants_1.EVENT_HANDLER_METADATA, HandlerClass);
|
120
|
+
if (eventTypes) {
|
121
|
+
// 手动解析构造函数依赖并创建实例
|
122
|
+
const handlerInstance = createHandlerInstance(HandlerClass, container);
|
123
|
+
// 处理可能有多个事件类型的情况
|
124
|
+
const eventTypeArray = Array.isArray(eventTypes) ? eventTypes : [eventTypes];
|
125
|
+
for (const eventType of eventTypeArray) {
|
126
|
+
const eventName = eventType.name;
|
127
|
+
// 直接设置到 eventBus 的内部映射
|
128
|
+
if (!eventBus.handlers) {
|
129
|
+
eventBus.handlers = new Map();
|
130
|
+
}
|
131
|
+
if (!eventBus.handlers.has(eventName)) {
|
132
|
+
eventBus.handlers.set(eventName, []);
|
133
|
+
}
|
134
|
+
eventBus.handlers.get(eventName).push((event) => handlerInstance.handle(event));
|
135
|
+
logger.info(`Manually registered event handler for "${eventName}"`);
|
136
|
+
}
|
137
|
+
}
|
138
|
+
}
|
139
|
+
catch (error) {
|
140
|
+
logger.warn(`Failed to register event handler ${HandlerClass.name}:`, error);
|
141
|
+
}
|
142
|
+
}
|
143
|
+
}
|
144
|
+
/**
|
145
|
+
* 手动创建处理器实例并解析依赖
|
146
|
+
*/
|
147
|
+
function createHandlerInstance(HandlerClass, container) {
|
148
|
+
// 获取构造函数参数类型
|
149
|
+
const paramTypes = Reflect.getMetadata('design:paramtypes', HandlerClass) || [];
|
150
|
+
// 解析每个依赖
|
151
|
+
const dependencies = paramTypes.map((paramType) => {
|
152
|
+
try {
|
153
|
+
// 尝试从容器中解析依赖
|
154
|
+
return container.resolve(paramType);
|
155
|
+
}
|
156
|
+
catch (error) {
|
157
|
+
logger.warn(`Failed to resolve dependency ${paramType?.name || 'unknown'} for ${HandlerClass.name}, using null`);
|
158
|
+
return null;
|
159
|
+
}
|
160
|
+
});
|
161
|
+
// 创建实例
|
162
|
+
return new HandlerClass(...dependencies);
|
163
|
+
}
|
164
|
+
// 自动初始化
|
165
|
+
initializeCqrsAutoDiscovery();
|
166
|
+
//# sourceMappingURL=auto-discovery.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"auto-discovery.js","sourceRoot":"","sources":["../src/auto-discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/cqrs.module.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { CommandBus } from "./command-bus";
|
2
2
|
import { EventBus } from "./event-bus";
|
3
|
-
import {
|
3
|
+
import { IEvent } from "./interfaces";
|
4
4
|
import { QueryBus } from "./query-bus";
|
5
5
|
import { ExplorerService } from "./services";
|
6
6
|
/**
|
@@ -12,18 +12,14 @@ export declare class CqrsModule<EventBase extends IEvent = IEvent> {
|
|
12
12
|
private readonly eventBus;
|
13
13
|
private readonly commandBus;
|
14
14
|
private readonly queryBus;
|
15
|
-
private static isInitialized;
|
16
15
|
constructor(explorerService: ExplorerService<EventBase>, eventBus: EventBus<EventBase>, commandBus: CommandBus, queryBus: QueryBus);
|
17
16
|
/**
|
18
|
-
* Configure CQRS module
|
17
|
+
* Configure CQRS module for root
|
19
18
|
*/
|
20
|
-
static forRoot(
|
21
|
-
/**
|
22
|
-
* Configure CQRS module with async options
|
23
|
-
*/
|
24
|
-
static forRootAsync(options: CqrsModuleAsyncOptions): typeof CqrsModule;
|
19
|
+
static forRoot(): typeof CqrsModule;
|
25
20
|
/**
|
26
21
|
* Initialize the CQRS module and register all handlers
|
22
|
+
* This will be called automatically by the application hooks system
|
27
23
|
*/
|
28
24
|
onApplicationBootstrap(): Promise<void>;
|
29
25
|
/**
|
@@ -42,9 +38,5 @@ export declare class CqrsModule<EventBase extends IEvent = IEvent> {
|
|
42
38
|
* Register a handler manually
|
43
39
|
*/
|
44
40
|
registerHandler(handlerClass: Function): void;
|
45
|
-
/**
|
46
|
-
* Get a singleton instance of the CQRS module
|
47
|
-
*/
|
48
|
-
static getInstance<EventBase extends IEvent = IEvent>(): CqrsModule<EventBase>;
|
49
41
|
}
|
50
42
|
//# sourceMappingURL=cqrs.module.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cqrs.module.d.ts","sourceRoot":"","sources":["../src/cqrs.module.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"cqrs.module.d.ts","sourceRoot":"","sources":["../src/cqrs.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,qBAKa,UAAU,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAHR,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,EAC3C,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC7B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ;IAGrC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,OAAO,UAAU;IAKnC;;;OAGG;IACG,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7C;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,WAAW,IAAI,QAAQ;IAIvB;;OAEG;IACH,WAAW,IAAI,QAAQ,CAAC,SAAS,CAAC;IAIlC;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI;CAG9C"}
|
package/dist/cqrs.module.js
CHANGED
@@ -12,9 +12,7 @@ var CqrsModule_1;
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
13
13
|
exports.CqrsModule = void 0;
|
14
14
|
const core_1 = require("@hestjs/core");
|
15
|
-
const tsyringe_1 = require("tsyringe");
|
16
15
|
const command_bus_1 = require("./command-bus");
|
17
|
-
const constants_1 = require("./constants");
|
18
16
|
const event_bus_1 = require("./event-bus");
|
19
17
|
const query_bus_1 = require("./query-bus");
|
20
18
|
const services_1 = require("./services");
|
@@ -30,68 +28,18 @@ let CqrsModule = CqrsModule_1 = class CqrsModule {
|
|
30
28
|
this.queryBus = queryBus;
|
31
29
|
}
|
32
30
|
/**
|
33
|
-
* Configure CQRS module
|
31
|
+
* Configure CQRS module for root
|
34
32
|
*/
|
35
|
-
static forRoot(
|
36
|
-
|
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");
|
33
|
+
static forRoot() {
|
34
|
+
core_1.logger.info("CqrsModule configured for root");
|
88
35
|
return CqrsModule_1;
|
89
36
|
}
|
90
37
|
/**
|
91
38
|
* Initialize the CQRS module and register all handlers
|
39
|
+
* This will be called automatically by the application hooks system
|
92
40
|
*/
|
93
41
|
async onApplicationBootstrap() {
|
94
|
-
const { events, queries, sagas, commands } = this.explorerService.
|
42
|
+
const { events, queries, sagas, commands } = this.explorerService.explore();
|
95
43
|
this.eventBus.register(events);
|
96
44
|
this.commandBus.register(commands);
|
97
45
|
this.queryBus.register(queries);
|
@@ -122,23 +70,8 @@ let CqrsModule = CqrsModule_1 = class CqrsModule {
|
|
122
70
|
registerHandler(handlerClass) {
|
123
71
|
this.explorerService.registerHandler(handlerClass);
|
124
72
|
}
|
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
73
|
};
|
140
74
|
exports.CqrsModule = CqrsModule;
|
141
|
-
CqrsModule.isInitialized = false;
|
142
75
|
exports.CqrsModule = CqrsModule = CqrsModule_1 = __decorate([
|
143
76
|
(0, core_1.Module)({
|
144
77
|
providers: [command_bus_1.CommandBus, query_bus_1.QueryBus, event_bus_1.EventBus, services_1.ExplorerService],
|
package/dist/cqrs.module.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cqrs.module.js","sourceRoot":"","sources":["../src/cqrs.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,uCAA0D;AAC1D
|
1
|
+
{"version":3,"file":"cqrs.module.js","sourceRoot":"","sources":["../src/cqrs.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,uCAA0D;AAC1D,+CAA2C;AAC3C,2CAAuC;AAEvC,2CAAuC;AACvC,yCAA6C;AAE7C;;;GAGG;AAMI,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,YACmB,eAA2C,EAC3C,QAA6B,EAC7B,UAAsB,EACtB,QAAkB;QAHlB,oBAAe,GAAf,eAAe,CAA4B;QAC3C,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAU;IAClC,CAAC;IAEJ;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,aAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,YAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,sBAAsB;QAC1B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GACxC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAEjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEnC,aAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,YAAsB;QACpC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AA3DY,gCAAU;qBAAV,UAAU;IALtB,IAAA,aAAM,EAAC;QACN,SAAS,EAAE,CAAC,wBAAU,EAAE,oBAAQ,EAAE,oBAAQ,EAAE,0BAAe,CAAC;QAC5D,OAAO,EAAE,CAAC,wBAAU,EAAE,oBAAQ,EAAE,oBAAQ,EAAE,0BAAe,CAAC;KAC3D,CAAC;IACD,IAAA,iBAAU,GAAE;qCAGyB,0BAAe;QACtB,oBAAQ;QACN,wBAAU;QACZ,oBAAQ;GAL1B,UAAU,CA2DtB"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,cAAc,aAAa,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,kBAAkB,CAAC;AAG1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,cAAc,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
@@ -16,6 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
17
|
exports.CqrsModule = exports.QueryBus = exports.EventBus = exports.CommandBus = void 0;
|
18
18
|
require("reflect-metadata");
|
19
|
+
// 自动初始化CQRS扩展
|
20
|
+
require("./auto-discovery");
|
19
21
|
// 导出所有公共 API
|
20
22
|
__exportStar(require("./classes"), exports);
|
21
23
|
__exportStar(require("./decorators"), exports);
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4BAA0B;AAE1B,aAAa;AACb,4CAA0B;AAC1B,+CAA6B;AAC7B,+CAA6B;AAC7B,4CAA0B;AAC1B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AAExB,SAAS;AACT,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAEjB,OAAO;AACP,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAEnB,OAAO;AACP,8CAA4B"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4BAA0B;AAE1B,cAAc;AACd,4BAA0B;AAE1B,aAAa;AACb,4CAA0B;AAC1B,+CAA6B;AAC7B,+CAA6B;AAC7B,4CAA0B;AAC1B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AAExB,SAAS;AACT,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAEjB,OAAO;AACP,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAEnB,OAAO;AACP,8CAA4B"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Container } from "@hestjs/core";
|
1
2
|
import "reflect-metadata";
|
2
3
|
import { CommandHandlerType, EventHandlerType, ICommand, IEvent, IQuery, QueryHandlerType, SagaType } from "../interfaces";
|
3
4
|
export interface ExplorerResult<EventBase extends IEvent = IEvent> {
|
@@ -7,11 +8,21 @@ export interface ExplorerResult<EventBase extends IEvent = IEvent> {
|
|
7
8
|
sagas: SagaType<EventBase>[];
|
8
9
|
}
|
9
10
|
export declare class ExplorerService<EventBase extends IEvent = IEvent> {
|
11
|
+
private readonly container;
|
10
12
|
private registeredHandlers;
|
13
|
+
constructor(container: Container);
|
11
14
|
/**
|
12
|
-
* Explores and discovers all CQRS handlers and sagas from the
|
15
|
+
* Explores and discovers all CQRS handlers and sagas from the container.
|
13
16
|
*/
|
14
17
|
explore(): ExplorerResult<EventBase>;
|
18
|
+
/**
|
19
|
+
* 自动从容器中发现处理器
|
20
|
+
*/
|
21
|
+
private autoDiscoverHandlers;
|
22
|
+
/**
|
23
|
+
* 检查类是否是CQRS处理器
|
24
|
+
*/
|
25
|
+
private isCqrsHandler;
|
15
26
|
/**
|
16
27
|
* Manually register a handler class for discovery.
|
17
28
|
* This is a workaround since TSyringe doesn't provide direct access to all registered classes.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"explorer.service.d.ts","sourceRoot":"","sources":["../../src/services/explorer.service.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"explorer.service.d.ts","sourceRoot":"","sources":["../../src/services/explorer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,kBAAkB,CAAC;AAO1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,QAAQ,EACT,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,cAAc,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IAC/D,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpC,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;CAC9B;AAED,qBACa,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IAGhD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,kBAAkB,CAAuB;gBAEpB,SAAS,EAAE,SAAS;IAEjD;;OAEG;IACH,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC;IAOpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;;OAGG;IACH,eAAe,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI;IA4B7C;;OAEG;IACH,qBAAqB,IAAI,cAAc,CAAC,SAAS,CAAC;CAmCnD"}
|
@@ -5,32 +5,51 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
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
|
+
};
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
9
12
|
exports.ExplorerService = void 0;
|
10
13
|
const core_1 = require("@hestjs/core");
|
11
14
|
require("reflect-metadata");
|
12
15
|
const constants_1 = require("../constants");
|
13
16
|
let ExplorerService = class ExplorerService {
|
14
|
-
constructor() {
|
17
|
+
constructor(container) {
|
18
|
+
this.container = container;
|
15
19
|
this.registeredHandlers = new Set();
|
16
20
|
}
|
17
21
|
/**
|
18
|
-
* Explores and discovers all CQRS handlers and sagas from the
|
22
|
+
* Explores and discovers all CQRS handlers and sagas from the container.
|
19
23
|
*/
|
20
24
|
explore() {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
25
|
+
// 自动从容器中发现所有提供者
|
26
|
+
this.autoDiscoverHandlers();
|
27
|
+
return this.getRegisteredHandlers();
|
28
|
+
}
|
29
|
+
/**
|
30
|
+
* 自动从容器中发现处理器
|
31
|
+
*/
|
32
|
+
autoDiscoverHandlers() {
|
33
|
+
const providerItems = this.container.getItemsByType('provider');
|
34
|
+
let discoveredCount = 0;
|
35
|
+
for (const item of providerItems) {
|
36
|
+
const handlerClass = item.provider;
|
37
|
+
// 检查是否是CQRS处理器
|
38
|
+
if (this.isCqrsHandler(handlerClass)) {
|
39
|
+
this.registerHandler(handlerClass);
|
40
|
+
discoveredCount++;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
core_1.logger.info(`🔍 Auto-discovered ${discoveredCount} CQRS handlers from container`);
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* 检查类是否是CQRS处理器
|
47
|
+
*/
|
48
|
+
isCqrsHandler(handlerClass) {
|
49
|
+
return (Reflect.hasMetadata(constants_1.COMMAND_HANDLER_METADATA, handlerClass) ||
|
50
|
+
Reflect.hasMetadata(constants_1.QUERY_HANDLER_METADATA, handlerClass) ||
|
51
|
+
Reflect.hasMetadata(constants_1.EVENT_HANDLER_METADATA, handlerClass) ||
|
52
|
+
Reflect.hasMetadata(constants_1.SAGA_METADATA, handlerClass));
|
34
53
|
}
|
35
54
|
/**
|
36
55
|
* Manually register a handler class for discovery.
|
@@ -80,6 +99,7 @@ let ExplorerService = class ExplorerService {
|
|
80
99
|
sagas.push(handlerClass);
|
81
100
|
}
|
82
101
|
}
|
102
|
+
core_1.logger.info(`📊 CQRS Handlers registered - commands: ${commands.length}, queries: ${queries.length}, events: ${events.length}, sagas: ${sagas.length}`);
|
83
103
|
return {
|
84
104
|
commands,
|
85
105
|
queries,
|
@@ -90,6 +110,7 @@ let ExplorerService = class ExplorerService {
|
|
90
110
|
};
|
91
111
|
exports.ExplorerService = ExplorerService;
|
92
112
|
exports.ExplorerService = ExplorerService = __decorate([
|
93
|
-
(0, core_1.Injectable)()
|
113
|
+
(0, core_1.Injectable)(),
|
114
|
+
__metadata("design:paramtypes", [core_1.Container])
|
94
115
|
], ExplorerService);
|
95
116
|
//# sourceMappingURL=explorer.service.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"explorer.service.js","sourceRoot":"","sources":["../../src/services/explorer.service.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"explorer.service.js","sourceRoot":"","sources":["../../src/services/explorer.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@hestjs/cqrs",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.4",
|
4
4
|
"description": "HestJS CQRS - Command Query Responsibility Segregation module for HestJS",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -28,7 +28,7 @@
|
|
28
28
|
"author": "aqz236",
|
29
29
|
"license": "MIT",
|
30
30
|
"dependencies": {
|
31
|
-
"@hestjs/core": "^0.1.
|
31
|
+
"@hestjs/core": "^0.1.10",
|
32
32
|
"reflect-metadata": "^0.2.2",
|
33
33
|
"rxjs": "^7.8.1",
|
34
34
|
"tsyringe": "^4.10.0"
|