@vlian/framework 1.0.1 → 1.0.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/core/event/AppEventBus.cjs +446 -0
- package/dist/core/event/AppEventBus.cjs.map +1 -0
- package/dist/core/event/AppEventBus.d.ts +179 -0
- package/dist/core/event/AppEventBus.d.ts.map +1 -0
- package/dist/core/event/AppEventBus.js +438 -0
- package/dist/core/event/AppEventBus.js.map +1 -0
- package/dist/core/event/frameworkEvents.cjs +143 -0
- package/dist/core/event/frameworkEvents.cjs.map +1 -0
- package/dist/core/event/frameworkEvents.d.ts +70 -0
- package/dist/core/event/frameworkEvents.d.ts.map +1 -0
- package/dist/core/event/frameworkEvents.js +135 -0
- package/dist/core/event/frameworkEvents.js.map +1 -0
- package/dist/core/event/hooks.cjs +71 -0
- package/dist/core/event/hooks.cjs.map +1 -0
- package/dist/core/event/hooks.d.ts +58 -0
- package/dist/core/event/hooks.d.ts.map +1 -0
- package/dist/core/event/hooks.js +95 -0
- package/dist/core/event/hooks.js.map +1 -0
- package/dist/core/event/index.cjs +43 -0
- package/dist/core/event/index.cjs.map +1 -0
- package/dist/core/event/index.d.ts +11 -0
- package/dist/core/event/index.d.ts.map +1 -0
- package/dist/core/event/index.js +10 -0
- package/dist/core/event/index.js.map +1 -0
- package/dist/core/event/types.cjs +64 -0
- package/dist/core/event/types.cjs.map +1 -0
- package/dist/core/event/types.d.ts +270 -0
- package/dist/core/event/types.d.ts.map +1 -0
- package/dist/core/event/types.js +56 -0
- package/dist/core/event/types.js.map +1 -0
- package/dist/core/event/useEventBus.cjs +27 -0
- package/dist/core/event/useEventBus.cjs.map +1 -0
- package/dist/core/event/useEventBus.d.ts +29 -0
- package/dist/core/event/useEventBus.d.ts.map +1 -0
- package/dist/core/event/useEventBus.js +39 -0
- package/dist/core/event/useEventBus.js.map +1 -0
- package/dist/core/index.cjs +1 -0
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/startup/AppInstance.cjs +8 -0
- package/dist/core/startup/AppInstance.cjs.map +1 -1
- package/dist/core/startup/AppInstance.d.ts +4 -0
- package/dist/core/startup/AppInstance.d.ts.map +1 -1
- package/dist/core/startup/AppInstance.js +8 -0
- package/dist/core/startup/AppInstance.js.map +1 -1
- package/dist/core/startup/initializeServices.cjs +21 -4
- package/dist/core/startup/initializeServices.cjs.map +1 -1
- package/dist/core/startup/initializeServices.d.ts +5 -0
- package/dist/core/startup/initializeServices.d.ts.map +1 -1
- package/dist/core/startup/initializeServices.js +21 -4
- package/dist/core/startup/initializeServices.js.map +1 -1
- package/dist/core/startup/startApp.cjs +59 -1
- package/dist/core/startup/startApp.cjs.map +1 -1
- package/dist/core/startup/startApp.d.ts.map +1 -1
- package/dist/core/startup/startApp.js +59 -1
- package/dist/core/startup/startApp.js.map +1 -1
- package/dist/core/types.d.ts +31 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/package.json +2 -3
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 框架生命周期事件集成
|
|
3
|
+
* 自动在框架关键节点触发事件
|
|
4
|
+
*/
|
|
5
|
+
import type { AppEventBus } from './AppEventBus';
|
|
6
|
+
import type { InitializationContext } from '../initialization';
|
|
7
|
+
/**
|
|
8
|
+
* 框架事件管理器
|
|
9
|
+
*/
|
|
10
|
+
export declare class FrameworkEventManager {
|
|
11
|
+
private eventBus;
|
|
12
|
+
constructor(eventBus: AppEventBus);
|
|
13
|
+
/**
|
|
14
|
+
* 触发应用启动事件
|
|
15
|
+
*/
|
|
16
|
+
emitAppStart(instanceId?: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* 触发应用启动完成事件
|
|
19
|
+
*/
|
|
20
|
+
emitAppStarted(instanceId: string, duration: number): void;
|
|
21
|
+
/**
|
|
22
|
+
* 触发应用初始化开始事件
|
|
23
|
+
*/
|
|
24
|
+
emitAppInitStart(instanceId?: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* 触发应用初始化完成事件
|
|
27
|
+
*/
|
|
28
|
+
emitAppInitComplete(instanceId: string, context: InitializationContext, duration: number): void;
|
|
29
|
+
/**
|
|
30
|
+
* 触发应用初始化错误事件
|
|
31
|
+
*/
|
|
32
|
+
emitAppInitError(instanceId: string, error: Error): void;
|
|
33
|
+
/**
|
|
34
|
+
* 触发应用渲染开始事件
|
|
35
|
+
*/
|
|
36
|
+
emitAppRenderStart(instanceId?: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* 触发应用渲染完成事件
|
|
39
|
+
*/
|
|
40
|
+
emitAppRenderComplete(instanceId: string, duration: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* 触发路由变化事件
|
|
43
|
+
*/
|
|
44
|
+
emitRouteChange(from: string, to: string, params?: Record<string, unknown>): void;
|
|
45
|
+
/**
|
|
46
|
+
* 触发路由导航开始事件
|
|
47
|
+
*/
|
|
48
|
+
emitRouteNavigateStart(to: string, options?: unknown): void;
|
|
49
|
+
/**
|
|
50
|
+
* 触发路由导航完成事件
|
|
51
|
+
*/
|
|
52
|
+
emitRouteNavigateComplete(to: string, duration: number): void;
|
|
53
|
+
/**
|
|
54
|
+
* 触发错误发生事件
|
|
55
|
+
*/
|
|
56
|
+
emitErrorOccurred(error: Error, context?: unknown): void;
|
|
57
|
+
/**
|
|
58
|
+
* 触发实例创建事件
|
|
59
|
+
*/
|
|
60
|
+
emitInstanceCreated(instanceId: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* 触发实例销毁事件
|
|
63
|
+
*/
|
|
64
|
+
emitInstanceDestroyed(instanceId: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* 触发性能指标更新事件
|
|
67
|
+
*/
|
|
68
|
+
emitPerformanceUpdate(metrics: Record<string, number>): void;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=frameworkEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frameworkEvents.d.ts","sourceRoot":"","sources":["../../../src/core/event/frameworkEvents.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAc;gBAElB,QAAQ,EAAE,WAAW;IAIjC;;OAEG;IACH,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO1D;;OAEG;IACH,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,mBAAmB,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,MAAM,GACf,IAAI;IAQP;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAOxD;;OAEG;IACH,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7C;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOjE;;OAEG;IACH,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI;IAQP;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAO3D;;OAEG;IACH,yBAAyB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO7D;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAOxD;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI7C;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM/C;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;CAG7D"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 框架生命周期事件集成
|
|
3
|
+
* 自动在框架关键节点触发事件
|
|
4
|
+
*/ function _define_property(obj, key, value) {
|
|
5
|
+
if (key in obj) {
|
|
6
|
+
Object.defineProperty(obj, key, {
|
|
7
|
+
value: value,
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true
|
|
11
|
+
});
|
|
12
|
+
} else {
|
|
13
|
+
obj[key] = value;
|
|
14
|
+
}
|
|
15
|
+
return obj;
|
|
16
|
+
}
|
|
17
|
+
import { FrameworkEventType } from "./types";
|
|
18
|
+
/**
|
|
19
|
+
* 框架事件管理器
|
|
20
|
+
*/ export class FrameworkEventManager {
|
|
21
|
+
/**
|
|
22
|
+
* 触发应用启动事件
|
|
23
|
+
*/ emitAppStart(instanceId) {
|
|
24
|
+
this.eventBus.emitSync(FrameworkEventType.APP_START, {
|
|
25
|
+
instanceId
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 触发应用启动完成事件
|
|
30
|
+
*/ emitAppStarted(instanceId, duration) {
|
|
31
|
+
this.eventBus.emitSync(FrameworkEventType.APP_STARTED, {
|
|
32
|
+
instanceId,
|
|
33
|
+
duration
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 触发应用初始化开始事件
|
|
38
|
+
*/ emitAppInitStart(instanceId) {
|
|
39
|
+
this.eventBus.emitSync(FrameworkEventType.APP_INIT_START, {
|
|
40
|
+
instanceId
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 触发应用初始化完成事件
|
|
45
|
+
*/ emitAppInitComplete(instanceId, context, duration) {
|
|
46
|
+
this.eventBus.emitSync(FrameworkEventType.APP_INIT_COMPLETE, {
|
|
47
|
+
instanceId,
|
|
48
|
+
context,
|
|
49
|
+
duration
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 触发应用初始化错误事件
|
|
54
|
+
*/ emitAppInitError(instanceId, error) {
|
|
55
|
+
this.eventBus.emitSync(FrameworkEventType.APP_INIT_ERROR, {
|
|
56
|
+
instanceId,
|
|
57
|
+
error
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 触发应用渲染开始事件
|
|
62
|
+
*/ emitAppRenderStart(instanceId) {
|
|
63
|
+
this.eventBus.emitSync(FrameworkEventType.APP_RENDER_START, {
|
|
64
|
+
instanceId
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 触发应用渲染完成事件
|
|
69
|
+
*/ emitAppRenderComplete(instanceId, duration) {
|
|
70
|
+
this.eventBus.emitSync(FrameworkEventType.APP_RENDER_COMPLETE, {
|
|
71
|
+
instanceId,
|
|
72
|
+
duration
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 触发路由变化事件
|
|
77
|
+
*/ emitRouteChange(from, to, params) {
|
|
78
|
+
this.eventBus.emitSync(FrameworkEventType.ROUTE_CHANGE, {
|
|
79
|
+
from,
|
|
80
|
+
to,
|
|
81
|
+
params
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 触发路由导航开始事件
|
|
86
|
+
*/ emitRouteNavigateStart(to, options) {
|
|
87
|
+
this.eventBus.emitSync(FrameworkEventType.ROUTE_NAVIGATE_START, {
|
|
88
|
+
to,
|
|
89
|
+
options
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 触发路由导航完成事件
|
|
94
|
+
*/ emitRouteNavigateComplete(to, duration) {
|
|
95
|
+
this.eventBus.emitSync(FrameworkEventType.ROUTE_NAVIGATE_COMPLETE, {
|
|
96
|
+
to,
|
|
97
|
+
duration
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* 触发错误发生事件
|
|
102
|
+
*/ emitErrorOccurred(error, context) {
|
|
103
|
+
this.eventBus.emitSync(FrameworkEventType.ERROR_OCCURRED, {
|
|
104
|
+
error,
|
|
105
|
+
context
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* 触发实例创建事件
|
|
110
|
+
*/ emitInstanceCreated(instanceId) {
|
|
111
|
+
this.eventBus.emitSync(FrameworkEventType.INSTANCE_CREATED, {
|
|
112
|
+
instanceId
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* 触发实例销毁事件
|
|
117
|
+
*/ emitInstanceDestroyed(instanceId) {
|
|
118
|
+
this.eventBus.emitSync(FrameworkEventType.INSTANCE_DESTROYED, {
|
|
119
|
+
instanceId
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* 触发性能指标更新事件
|
|
124
|
+
*/ emitPerformanceUpdate(metrics) {
|
|
125
|
+
this.eventBus.emitSync(FrameworkEventType.PERFORMANCE_UPDATE, {
|
|
126
|
+
metrics
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
constructor(eventBus){
|
|
130
|
+
_define_property(this, "eventBus", void 0);
|
|
131
|
+
this.eventBus = eventBus;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=frameworkEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/event/frameworkEvents.ts"],"sourcesContent":["/**\n * 框架生命周期事件集成\n * 自动在框架关键节点触发事件\n */\n\nimport type { AppEventBus } from './AppEventBus';\nimport { FrameworkEventType } from './types';\nimport type { InitializationContext } from '../initialization';\n\n/**\n * 框架事件管理器\n */\nexport class FrameworkEventManager {\n private eventBus: AppEventBus;\n\n constructor(eventBus: AppEventBus) {\n this.eventBus = eventBus;\n }\n\n /**\n * 触发应用启动事件\n */\n emitAppStart(instanceId?: string): void {\n this.eventBus.emitSync(FrameworkEventType.APP_START, { instanceId });\n }\n\n /**\n * 触发应用启动完成事件\n */\n emitAppStarted(instanceId: string, duration: number): void {\n this.eventBus.emitSync(FrameworkEventType.APP_STARTED, {\n instanceId,\n duration,\n });\n }\n\n /**\n * 触发应用初始化开始事件\n */\n emitAppInitStart(instanceId?: string): void {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_START, { instanceId });\n }\n\n /**\n * 触发应用初始化完成事件\n */\n emitAppInitComplete(\n instanceId: string,\n context: InitializationContext,\n duration: number\n ): void {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_COMPLETE, {\n instanceId,\n context,\n duration,\n });\n }\n\n /**\n * 触发应用初始化错误事件\n */\n emitAppInitError(instanceId: string, error: Error): void {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_ERROR, {\n instanceId,\n error,\n });\n }\n\n /**\n * 触发应用渲染开始事件\n */\n emitAppRenderStart(instanceId?: string): void {\n this.eventBus.emitSync(FrameworkEventType.APP_RENDER_START, { instanceId });\n }\n\n /**\n * 触发应用渲染完成事件\n */\n emitAppRenderComplete(instanceId: string, duration: number): void {\n this.eventBus.emitSync(FrameworkEventType.APP_RENDER_COMPLETE, {\n instanceId,\n duration,\n });\n }\n\n /**\n * 触发路由变化事件\n */\n emitRouteChange(\n from: string,\n to: string,\n params?: Record<string, unknown>\n ): void {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_CHANGE, {\n from,\n to,\n params,\n });\n }\n\n /**\n * 触发路由导航开始事件\n */\n emitRouteNavigateStart(to: string, options?: unknown): void {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_NAVIGATE_START, {\n to,\n options,\n });\n }\n\n /**\n * 触发路由导航完成事件\n */\n emitRouteNavigateComplete(to: string, duration: number): void {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_NAVIGATE_COMPLETE, {\n to,\n duration,\n });\n }\n\n /**\n * 触发错误发生事件\n */\n emitErrorOccurred(error: Error, context?: unknown): void {\n this.eventBus.emitSync(FrameworkEventType.ERROR_OCCURRED, {\n error,\n context,\n });\n }\n\n /**\n * 触发实例创建事件\n */\n emitInstanceCreated(instanceId: string): void {\n this.eventBus.emitSync(FrameworkEventType.INSTANCE_CREATED, { instanceId });\n }\n\n /**\n * 触发实例销毁事件\n */\n emitInstanceDestroyed(instanceId: string): void {\n this.eventBus.emitSync(FrameworkEventType.INSTANCE_DESTROYED, {\n instanceId,\n });\n }\n\n /**\n * 触发性能指标更新事件\n */\n emitPerformanceUpdate(metrics: Record<string, number>): void {\n this.eventBus.emitSync(FrameworkEventType.PERFORMANCE_UPDATE, { metrics });\n }\n}\n"],"names":["FrameworkEventType","FrameworkEventManager","emitAppStart","instanceId","eventBus","emitSync","APP_START","emitAppStarted","duration","APP_STARTED","emitAppInitStart","APP_INIT_START","emitAppInitComplete","context","APP_INIT_COMPLETE","emitAppInitError","error","APP_INIT_ERROR","emitAppRenderStart","APP_RENDER_START","emitAppRenderComplete","APP_RENDER_COMPLETE","emitRouteChange","from","to","params","ROUTE_CHANGE","emitRouteNavigateStart","options","ROUTE_NAVIGATE_START","emitRouteNavigateComplete","ROUTE_NAVIGATE_COMPLETE","emitErrorOccurred","ERROR_OCCURRED","emitInstanceCreated","INSTANCE_CREATED","emitInstanceDestroyed","INSTANCE_DESTROYED","emitPerformanceUpdate","metrics","PERFORMANCE_UPDATE"],"mappings":"AAAA;;;CAGC;;;;;;;;;;;;;AAGD,SAASA,kBAAkB,QAAQ,UAAU;AAG7C;;CAEC,GACD,OAAO,MAAMC;IAOX;;GAEC,GACDC,aAAaC,UAAmB,EAAQ;QACtC,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAACL,mBAAmBM,SAAS,EAAE;YAAEH;QAAW;IACpE;IAEA;;GAEC,GACDI,eAAeJ,UAAkB,EAAEK,QAAgB,EAAQ;QACzD,IAAI,CAACJ,QAAQ,CAACC,QAAQ,CAACL,mBAAmBS,WAAW,EAAE;YACrDN;YACAK;QACF;IACF;IAEA;;GAEC,GACDE,iBAAiBP,UAAmB,EAAQ;QAC1C,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAACL,mBAAmBW,cAAc,EAAE;YAAER;QAAW;IACzE;IAEA;;GAEC,GACDS,oBACET,UAAkB,EAClBU,OAA8B,EAC9BL,QAAgB,EACV;QACN,IAAI,CAACJ,QAAQ,CAACC,QAAQ,CAACL,mBAAmBc,iBAAiB,EAAE;YAC3DX;YACAU;YACAL;QACF;IACF;IAEA;;GAEC,GACDO,iBAAiBZ,UAAkB,EAAEa,KAAY,EAAQ;QACvD,IAAI,CAACZ,QAAQ,CAACC,QAAQ,CAACL,mBAAmBiB,cAAc,EAAE;YACxDd;YACAa;QACF;IACF;IAEA;;GAEC,GACDE,mBAAmBf,UAAmB,EAAQ;QAC5C,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAACL,mBAAmBmB,gBAAgB,EAAE;YAAEhB;QAAW;IAC3E;IAEA;;GAEC,GACDiB,sBAAsBjB,UAAkB,EAAEK,QAAgB,EAAQ;QAChE,IAAI,CAACJ,QAAQ,CAACC,QAAQ,CAACL,mBAAmBqB,mBAAmB,EAAE;YAC7DlB;YACAK;QACF;IACF;IAEA;;GAEC,GACDc,gBACEC,IAAY,EACZC,EAAU,EACVC,MAAgC,EAC1B;QACN,IAAI,CAACrB,QAAQ,CAACC,QAAQ,CAACL,mBAAmB0B,YAAY,EAAE;YACtDH;YACAC;YACAC;QACF;IACF;IAEA;;GAEC,GACDE,uBAAuBH,EAAU,EAAEI,OAAiB,EAAQ;QAC1D,IAAI,CAACxB,QAAQ,CAACC,QAAQ,CAACL,mBAAmB6B,oBAAoB,EAAE;YAC9DL;YACAI;QACF;IACF;IAEA;;GAEC,GACDE,0BAA0BN,EAAU,EAAEhB,QAAgB,EAAQ;QAC5D,IAAI,CAACJ,QAAQ,CAACC,QAAQ,CAACL,mBAAmB+B,uBAAuB,EAAE;YACjEP;YACAhB;QACF;IACF;IAEA;;GAEC,GACDwB,kBAAkBhB,KAAY,EAAEH,OAAiB,EAAQ;QACvD,IAAI,CAACT,QAAQ,CAACC,QAAQ,CAACL,mBAAmBiC,cAAc,EAAE;YACxDjB;YACAH;QACF;IACF;IAEA;;GAEC,GACDqB,oBAAoB/B,UAAkB,EAAQ;QAC5C,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAACL,mBAAmBmC,gBAAgB,EAAE;YAAEhC;QAAW;IAC3E;IAEA;;GAEC,GACDiC,sBAAsBjC,UAAkB,EAAQ;QAC9C,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAACL,mBAAmBqC,kBAAkB,EAAE;YAC5DlC;QACF;IACF;IAEA;;GAEC,GACDmC,sBAAsBC,OAA+B,EAAQ;QAC3D,IAAI,CAACnC,QAAQ,CAACC,QAAQ,CAACL,mBAAmBwC,kBAAkB,EAAE;YAAED;QAAQ;IAC1E;IAxIA,YAAYnC,QAAqB,CAAE;QAFnC,uBAAQA,YAAR,KAAA;QAGE,IAAI,CAACA,QAAQ,GAAGA;IAClB;AAuIF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Hooks 支持
|
|
3
|
+
* 提供便捷的 React 组件事件订阅能力
|
|
4
|
+
*/ "use strict";
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
function _export(target, all) {
|
|
9
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
_export(exports, {
|
|
15
|
+
get useAppEvent () {
|
|
16
|
+
return useAppEvent;
|
|
17
|
+
},
|
|
18
|
+
get useAppEventEmitter () {
|
|
19
|
+
return useAppEventEmitter;
|
|
20
|
+
},
|
|
21
|
+
get useAppEventOnce () {
|
|
22
|
+
return useAppEventOnce;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const _react = require("react");
|
|
26
|
+
function useAppEvent(eventBus, event, listener, options) {
|
|
27
|
+
// 使用 ref 保存最新的 listener,避免重复订阅
|
|
28
|
+
const listenerRef = (0, _react.useRef)(listener);
|
|
29
|
+
listenerRef.current = listener;
|
|
30
|
+
// 使用 ref 保存 options
|
|
31
|
+
const optionsRef = (0, _react.useRef)(options);
|
|
32
|
+
optionsRef.current = options;
|
|
33
|
+
(0, _react.useEffect)(()=>{
|
|
34
|
+
// 创建包装的监听器,使用最新的 listener
|
|
35
|
+
const wrappedListener = (data, metadata)=>{
|
|
36
|
+
return listenerRef.current(data, metadata);
|
|
37
|
+
};
|
|
38
|
+
// 订阅事件
|
|
39
|
+
const unsubscribe = eventBus.on(event, wrappedListener, optionsRef.current);
|
|
40
|
+
// 清理函数:取消订阅
|
|
41
|
+
return unsubscribe;
|
|
42
|
+
}, [
|
|
43
|
+
eventBus,
|
|
44
|
+
event
|
|
45
|
+
]); // 只在 eventBus 或 event 变化时重新订阅
|
|
46
|
+
}
|
|
47
|
+
function useAppEventOnce(eventBus, event, listener, options) {
|
|
48
|
+
const listenerRef = (0, _react.useRef)(listener);
|
|
49
|
+
listenerRef.current = listener;
|
|
50
|
+
const optionsRef = (0, _react.useRef)(options);
|
|
51
|
+
optionsRef.current = options;
|
|
52
|
+
(0, _react.useEffect)(()=>{
|
|
53
|
+
const wrappedListener = (data, metadata)=>{
|
|
54
|
+
return listenerRef.current(data, metadata);
|
|
55
|
+
};
|
|
56
|
+
const unsubscribe = eventBus.once(event, wrappedListener, optionsRef.current);
|
|
57
|
+
return unsubscribe;
|
|
58
|
+
}, [
|
|
59
|
+
eventBus,
|
|
60
|
+
event
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
function useAppEventEmitter(eventBus) {
|
|
64
|
+
return (0, _react.useCallback)((event, data, metadata)=>{
|
|
65
|
+
return eventBus.emit(event, data, metadata);
|
|
66
|
+
}, [
|
|
67
|
+
eventBus
|
|
68
|
+
]);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/event/hooks.ts"],"sourcesContent":["/**\n * React Hooks 支持\n * 提供便捷的 React 组件事件订阅能力\n */\n\nimport { useEffect, useRef, useCallback } from 'react';\nimport type { EventListener, EventListenerOptions } from './types';\nimport type { AppEventBus } from './AppEventBus';\n\n/**\n * 使用事件总线的 Hook\n * \n * @param eventBus - 事件总线实例\n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n * \n * @example\n * ```tsx\n * import { useAppEventBus } from '@vlian/framework';\n * \n * function MyComponent() {\n * useAppEvent('user:login', (data, metadata) => {\n * console.log('用户登录:', data);\n * });\n * \n * return <div>My Component</div>;\n * }\n * ```\n */\nexport function useAppEvent<T = unknown>(\n eventBus: AppEventBus,\n event: string,\n listener: EventListener<T>,\n options?: EventListenerOptions\n): void {\n // 使用 ref 保存最新的 listener,避免重复订阅\n const listenerRef = useRef<EventListener<T>>(listener);\n listenerRef.current = listener;\n\n // 使用 ref 保存 options\n const optionsRef = useRef(options);\n optionsRef.current = options;\n\n useEffect(() => {\n // 创建包装的监听器,使用最新的 listener\n const wrappedListener: EventListener<T> = (data, metadata) => {\n return listenerRef.current(data, metadata);\n };\n\n // 订阅事件\n const unsubscribe = eventBus.on(event, wrappedListener, optionsRef.current);\n\n // 清理函数:取消订阅\n return unsubscribe;\n }, [eventBus, event]); // 只在 eventBus 或 event 变化时重新订阅\n}\n\n/**\n * 一次性事件订阅 Hook\n * \n * @param eventBus - 事件总线实例\n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n */\nexport function useAppEventOnce<T = unknown>(\n eventBus: AppEventBus,\n event: string,\n listener: EventListener<T>,\n options?: Omit<EventListenerOptions, 'once'>\n): void {\n const listenerRef = useRef<EventListener<T>>(listener);\n listenerRef.current = listener;\n\n const optionsRef = useRef(options);\n optionsRef.current = options;\n\n useEffect(() => {\n const wrappedListener: EventListener<T> = (data, metadata) => {\n return listenerRef.current(data, metadata);\n };\n\n const unsubscribe = eventBus.once(event, wrappedListener, optionsRef.current);\n\n return unsubscribe;\n }, [eventBus, event]);\n}\n\n/**\n * 创建事件发射器 Hook\n * \n * @param eventBus - 事件总线实例\n * @returns 事件发射函数\n * \n * @example\n * ```tsx\n * function MyComponent() {\n * const emit = useAppEventEmitter(eventBus);\n * \n * const handleClick = () => {\n * emit('button:click', { buttonId: 'submit' });\n * };\n * \n * return <button onClick={handleClick}>Click</button>;\n * }\n * ```\n */\nexport function useAppEventEmitter(eventBus: AppEventBus) {\n return useCallback(\n <T = unknown>(\n event: string,\n data?: T,\n metadata?: Partial<import('./types').EventMetadata>\n ) => {\n return eventBus.emit(event, data, metadata);\n },\n [eventBus]\n );\n}\n"],"names":["useAppEvent","useAppEventEmitter","useAppEventOnce","eventBus","event","listener","options","listenerRef","useRef","current","optionsRef","useEffect","wrappedListener","data","metadata","unsubscribe","on","once","useCallback","emit"],"mappings":"AAAA;;;CAGC;;;;;;;;;;;QA2BeA;eAAAA;;QA8EAC;eAAAA;;QA1CAC;eAAAA;;;uBA7D+B;AAyBxC,SAASF,YACdG,QAAqB,EACrBC,KAAa,EACbC,QAA0B,EAC1BC,OAA8B;IAE9B,+BAA+B;IAC/B,MAAMC,cAAcC,IAAAA,aAAM,EAAmBH;IAC7CE,YAAYE,OAAO,GAAGJ;IAEtB,oBAAoB;IACpB,MAAMK,aAAaF,IAAAA,aAAM,EAACF;IAC1BI,WAAWD,OAAO,GAAGH;IAErBK,IAAAA,gBAAS,EAAC;QACR,0BAA0B;QAC1B,MAAMC,kBAAoC,CAACC,MAAMC;YAC/C,OAAOP,YAAYE,OAAO,CAACI,MAAMC;QACnC;QAEA,OAAO;QACP,MAAMC,cAAcZ,SAASa,EAAE,CAACZ,OAAOQ,iBAAiBF,WAAWD,OAAO;QAE1E,YAAY;QACZ,OAAOM;IACT,GAAG;QAACZ;QAAUC;KAAM,GAAG,8BAA8B;AACvD;AAUO,SAASF,gBACdC,QAAqB,EACrBC,KAAa,EACbC,QAA0B,EAC1BC,OAA4C;IAE5C,MAAMC,cAAcC,IAAAA,aAAM,EAAmBH;IAC7CE,YAAYE,OAAO,GAAGJ;IAEtB,MAAMK,aAAaF,IAAAA,aAAM,EAACF;IAC1BI,WAAWD,OAAO,GAAGH;IAErBK,IAAAA,gBAAS,EAAC;QACR,MAAMC,kBAAoC,CAACC,MAAMC;YAC/C,OAAOP,YAAYE,OAAO,CAACI,MAAMC;QACnC;QAEA,MAAMC,cAAcZ,SAASc,IAAI,CAACb,OAAOQ,iBAAiBF,WAAWD,OAAO;QAE5E,OAAOM;IACT,GAAG;QAACZ;QAAUC;KAAM;AACtB;AAqBO,SAASH,mBAAmBE,QAAqB;IACtD,OAAOe,IAAAA,kBAAW,EAChB,CACEd,OACAS,MACAC;QAEA,OAAOX,SAASgB,IAAI,CAACf,OAAOS,MAAMC;IACpC,GACA;QAACX;KAAS;AAEd"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Hooks 支持
|
|
3
|
+
* 提供便捷的 React 组件事件订阅能力
|
|
4
|
+
*/
|
|
5
|
+
import type { EventListener, EventListenerOptions } from './types';
|
|
6
|
+
import type { AppEventBus } from './AppEventBus';
|
|
7
|
+
/**
|
|
8
|
+
* 使用事件总线的 Hook
|
|
9
|
+
*
|
|
10
|
+
* @param eventBus - 事件总线实例
|
|
11
|
+
* @param event - 事件名称
|
|
12
|
+
* @param listener - 事件监听器
|
|
13
|
+
* @param options - 监听器选项
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* import { useAppEventBus } from '@vlian/framework';
|
|
18
|
+
*
|
|
19
|
+
* function MyComponent() {
|
|
20
|
+
* useAppEvent('user:login', (data, metadata) => {
|
|
21
|
+
* console.log('用户登录:', data);
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* return <div>My Component</div>;
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function useAppEvent<T = unknown>(eventBus: AppEventBus, event: string, listener: EventListener<T>, options?: EventListenerOptions): void;
|
|
29
|
+
/**
|
|
30
|
+
* 一次性事件订阅 Hook
|
|
31
|
+
*
|
|
32
|
+
* @param eventBus - 事件总线实例
|
|
33
|
+
* @param event - 事件名称
|
|
34
|
+
* @param listener - 事件监听器
|
|
35
|
+
* @param options - 监听器选项
|
|
36
|
+
*/
|
|
37
|
+
export declare function useAppEventOnce<T = unknown>(eventBus: AppEventBus, event: string, listener: EventListener<T>, options?: Omit<EventListenerOptions, 'once'>): void;
|
|
38
|
+
/**
|
|
39
|
+
* 创建事件发射器 Hook
|
|
40
|
+
*
|
|
41
|
+
* @param eventBus - 事件总线实例
|
|
42
|
+
* @returns 事件发射函数
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```tsx
|
|
46
|
+
* function MyComponent() {
|
|
47
|
+
* const emit = useAppEventEmitter(eventBus);
|
|
48
|
+
*
|
|
49
|
+
* const handleClick = () => {
|
|
50
|
+
* emit('button:click', { buttonId: 'submit' });
|
|
51
|
+
* };
|
|
52
|
+
*
|
|
53
|
+
* return <button onClick={handleClick}>Click</button>;
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function useAppEventEmitter(eventBus: AppEventBus): <T = unknown>(event: string, data?: T, metadata?: Partial<import("./types").EventMetadata>) => Promise<void>;
|
|
58
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/core/event/hooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EACrC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,IAAI,CAqBN;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,OAAO,EACzC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAC3C,IAAI,CAgBN;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,IAEnD,CAAC,mBACO,MAAM,SACN,CAAC,aACG,OAAO,CAAC,OAAO,SAAS,EAAE,aAAa,CAAC,mBAMxD"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Hooks 支持
|
|
3
|
+
* 提供便捷的 React 组件事件订阅能力
|
|
4
|
+
*/ import { useEffect, useRef, useCallback } from "react";
|
|
5
|
+
/**
|
|
6
|
+
* 使用事件总线的 Hook
|
|
7
|
+
*
|
|
8
|
+
* @param eventBus - 事件总线实例
|
|
9
|
+
* @param event - 事件名称
|
|
10
|
+
* @param listener - 事件监听器
|
|
11
|
+
* @param options - 监听器选项
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { useAppEventBus } from '@vlian/framework';
|
|
16
|
+
*
|
|
17
|
+
* function MyComponent() {
|
|
18
|
+
* useAppEvent('user:login', (data, metadata) => {
|
|
19
|
+
* console.log('用户登录:', data);
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* return <div>My Component</div>;
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/ export function useAppEvent(eventBus, event, listener, options) {
|
|
26
|
+
// 使用 ref 保存最新的 listener,避免重复订阅
|
|
27
|
+
const listenerRef = useRef(listener);
|
|
28
|
+
listenerRef.current = listener;
|
|
29
|
+
// 使用 ref 保存 options
|
|
30
|
+
const optionsRef = useRef(options);
|
|
31
|
+
optionsRef.current = options;
|
|
32
|
+
useEffect(()=>{
|
|
33
|
+
// 创建包装的监听器,使用最新的 listener
|
|
34
|
+
const wrappedListener = (data, metadata)=>{
|
|
35
|
+
return listenerRef.current(data, metadata);
|
|
36
|
+
};
|
|
37
|
+
// 订阅事件
|
|
38
|
+
const unsubscribe = eventBus.on(event, wrappedListener, optionsRef.current);
|
|
39
|
+
// 清理函数:取消订阅
|
|
40
|
+
return unsubscribe;
|
|
41
|
+
}, [
|
|
42
|
+
eventBus,
|
|
43
|
+
event
|
|
44
|
+
]); // 只在 eventBus 或 event 变化时重新订阅
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 一次性事件订阅 Hook
|
|
48
|
+
*
|
|
49
|
+
* @param eventBus - 事件总线实例
|
|
50
|
+
* @param event - 事件名称
|
|
51
|
+
* @param listener - 事件监听器
|
|
52
|
+
* @param options - 监听器选项
|
|
53
|
+
*/ export function useAppEventOnce(eventBus, event, listener, options) {
|
|
54
|
+
const listenerRef = useRef(listener);
|
|
55
|
+
listenerRef.current = listener;
|
|
56
|
+
const optionsRef = useRef(options);
|
|
57
|
+
optionsRef.current = options;
|
|
58
|
+
useEffect(()=>{
|
|
59
|
+
const wrappedListener = (data, metadata)=>{
|
|
60
|
+
return listenerRef.current(data, metadata);
|
|
61
|
+
};
|
|
62
|
+
const unsubscribe = eventBus.once(event, wrappedListener, optionsRef.current);
|
|
63
|
+
return unsubscribe;
|
|
64
|
+
}, [
|
|
65
|
+
eventBus,
|
|
66
|
+
event
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 创建事件发射器 Hook
|
|
71
|
+
*
|
|
72
|
+
* @param eventBus - 事件总线实例
|
|
73
|
+
* @returns 事件发射函数
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* function MyComponent() {
|
|
78
|
+
* const emit = useAppEventEmitter(eventBus);
|
|
79
|
+
*
|
|
80
|
+
* const handleClick = () => {
|
|
81
|
+
* emit('button:click', { buttonId: 'submit' });
|
|
82
|
+
* };
|
|
83
|
+
*
|
|
84
|
+
* return <button onClick={handleClick}>Click</button>;
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*/ export function useAppEventEmitter(eventBus) {
|
|
88
|
+
return useCallback((event, data, metadata)=>{
|
|
89
|
+
return eventBus.emit(event, data, metadata);
|
|
90
|
+
}, [
|
|
91
|
+
eventBus
|
|
92
|
+
]);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/event/hooks.ts"],"sourcesContent":["/**\n * React Hooks 支持\n * 提供便捷的 React 组件事件订阅能力\n */\n\nimport { useEffect, useRef, useCallback } from 'react';\nimport type { EventListener, EventListenerOptions } from './types';\nimport type { AppEventBus } from './AppEventBus';\n\n/**\n * 使用事件总线的 Hook\n * \n * @param eventBus - 事件总线实例\n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n * \n * @example\n * ```tsx\n * import { useAppEventBus } from '@vlian/framework';\n * \n * function MyComponent() {\n * useAppEvent('user:login', (data, metadata) => {\n * console.log('用户登录:', data);\n * });\n * \n * return <div>My Component</div>;\n * }\n * ```\n */\nexport function useAppEvent<T = unknown>(\n eventBus: AppEventBus,\n event: string,\n listener: EventListener<T>,\n options?: EventListenerOptions\n): void {\n // 使用 ref 保存最新的 listener,避免重复订阅\n const listenerRef = useRef<EventListener<T>>(listener);\n listenerRef.current = listener;\n\n // 使用 ref 保存 options\n const optionsRef = useRef(options);\n optionsRef.current = options;\n\n useEffect(() => {\n // 创建包装的监听器,使用最新的 listener\n const wrappedListener: EventListener<T> = (data, metadata) => {\n return listenerRef.current(data, metadata);\n };\n\n // 订阅事件\n const unsubscribe = eventBus.on(event, wrappedListener, optionsRef.current);\n\n // 清理函数:取消订阅\n return unsubscribe;\n }, [eventBus, event]); // 只在 eventBus 或 event 变化时重新订阅\n}\n\n/**\n * 一次性事件订阅 Hook\n * \n * @param eventBus - 事件总线实例\n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n */\nexport function useAppEventOnce<T = unknown>(\n eventBus: AppEventBus,\n event: string,\n listener: EventListener<T>,\n options?: Omit<EventListenerOptions, 'once'>\n): void {\n const listenerRef = useRef<EventListener<T>>(listener);\n listenerRef.current = listener;\n\n const optionsRef = useRef(options);\n optionsRef.current = options;\n\n useEffect(() => {\n const wrappedListener: EventListener<T> = (data, metadata) => {\n return listenerRef.current(data, metadata);\n };\n\n const unsubscribe = eventBus.once(event, wrappedListener, optionsRef.current);\n\n return unsubscribe;\n }, [eventBus, event]);\n}\n\n/**\n * 创建事件发射器 Hook\n * \n * @param eventBus - 事件总线实例\n * @returns 事件发射函数\n * \n * @example\n * ```tsx\n * function MyComponent() {\n * const emit = useAppEventEmitter(eventBus);\n * \n * const handleClick = () => {\n * emit('button:click', { buttonId: 'submit' });\n * };\n * \n * return <button onClick={handleClick}>Click</button>;\n * }\n * ```\n */\nexport function useAppEventEmitter(eventBus: AppEventBus) {\n return useCallback(\n <T = unknown>(\n event: string,\n data?: T,\n metadata?: Partial<import('./types').EventMetadata>\n ) => {\n return eventBus.emit(event, data, metadata);\n },\n [eventBus]\n );\n}\n"],"names":["useEffect","useRef","useCallback","useAppEvent","eventBus","event","listener","options","listenerRef","current","optionsRef","wrappedListener","data","metadata","unsubscribe","on","useAppEventOnce","once","useAppEventEmitter","emit"],"mappings":"AAAA;;;CAGC,GAED,SAASA,SAAS,EAAEC,MAAM,EAAEC,WAAW,QAAQ,QAAQ;AAIvD;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,SAASC,YACdC,QAAqB,EACrBC,KAAa,EACbC,QAA0B,EAC1BC,OAA8B;IAE9B,+BAA+B;IAC/B,MAAMC,cAAcP,OAAyBK;IAC7CE,YAAYC,OAAO,GAAGH;IAEtB,oBAAoB;IACpB,MAAMI,aAAaT,OAAOM;IAC1BG,WAAWD,OAAO,GAAGF;IAErBP,UAAU;QACR,0BAA0B;QAC1B,MAAMW,kBAAoC,CAACC,MAAMC;YAC/C,OAAOL,YAAYC,OAAO,CAACG,MAAMC;QACnC;QAEA,OAAO;QACP,MAAMC,cAAcV,SAASW,EAAE,CAACV,OAAOM,iBAAiBD,WAAWD,OAAO;QAE1E,YAAY;QACZ,OAAOK;IACT,GAAG;QAACV;QAAUC;KAAM,GAAG,8BAA8B;AACvD;AAEA;;;;;;;CAOC,GACD,OAAO,SAASW,gBACdZ,QAAqB,EACrBC,KAAa,EACbC,QAA0B,EAC1BC,OAA4C;IAE5C,MAAMC,cAAcP,OAAyBK;IAC7CE,YAAYC,OAAO,GAAGH;IAEtB,MAAMI,aAAaT,OAAOM;IAC1BG,WAAWD,OAAO,GAAGF;IAErBP,UAAU;QACR,MAAMW,kBAAoC,CAACC,MAAMC;YAC/C,OAAOL,YAAYC,OAAO,CAACG,MAAMC;QACnC;QAEA,MAAMC,cAAcV,SAASa,IAAI,CAACZ,OAAOM,iBAAiBD,WAAWD,OAAO;QAE5E,OAAOK;IACT,GAAG;QAACV;QAAUC;KAAM;AACtB;AAEA;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASa,mBAAmBd,QAAqB;IACtD,OAAOF,YACL,CACEG,OACAO,MACAC;QAEA,OAAOT,SAASe,IAAI,CAACd,OAAOO,MAAMC;IACpC,GACA;QAACT;KAAS;AAEd"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 应用级事件系统
|
|
3
|
+
* 提供高性能、类型安全、可观测的事件通信能力
|
|
4
|
+
*/ "use strict";
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
function _export(target, all) {
|
|
9
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
_export(exports, {
|
|
15
|
+
get AppEventBus () {
|
|
16
|
+
return _AppEventBus.AppEventBus;
|
|
17
|
+
},
|
|
18
|
+
get FrameworkEventManager () {
|
|
19
|
+
return _frameworkEvents.FrameworkEventManager;
|
|
20
|
+
},
|
|
21
|
+
get FrameworkEventType () {
|
|
22
|
+
return _types.FrameworkEventType;
|
|
23
|
+
},
|
|
24
|
+
get useAppEvent () {
|
|
25
|
+
return _hooks.useAppEvent;
|
|
26
|
+
},
|
|
27
|
+
get useAppEventEmitter () {
|
|
28
|
+
return _hooks.useAppEventEmitter;
|
|
29
|
+
},
|
|
30
|
+
get useAppEventOnce () {
|
|
31
|
+
return _hooks.useAppEventOnce;
|
|
32
|
+
},
|
|
33
|
+
get useEventBus () {
|
|
34
|
+
return _useEventBus.useEventBus;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const _AppEventBus = require("./AppEventBus");
|
|
38
|
+
const _frameworkEvents = require("./frameworkEvents");
|
|
39
|
+
const _hooks = require("./hooks");
|
|
40
|
+
const _useEventBus = require("./useEventBus");
|
|
41
|
+
const _types = require("./types");
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/event/index.ts"],"sourcesContent":["/**\n * 应用级事件系统\n * 提供高性能、类型安全、可观测的事件通信能力\n */\n\nexport { AppEventBus } from './AppEventBus';\nexport { FrameworkEventManager } from './frameworkEvents';\nexport {\n useAppEvent,\n useAppEventOnce,\n useAppEventEmitter,\n} from './hooks';\n\nexport { useEventBus } from './useEventBus';\n\nexport type {\n EventListener,\n EventMetadata,\n EventWrapper,\n EventMiddleware,\n EventListenerOptions,\n AppEventBusConfig,\n EventStats,\n FrameworkEventData,\n} from './types';\n\nexport { FrameworkEventType } from './types';\n"],"names":["AppEventBus","FrameworkEventManager","FrameworkEventType","useAppEvent","useAppEventEmitter","useAppEventOnce","useEventBus"],"mappings":"AAAA;;;CAGC;;;;;;;;;;;QAEQA;eAAAA,wBAAW;;QACXC;eAAAA,sCAAqB;;QAoBrBC;eAAAA,yBAAkB;;QAlBzBC;eAAAA,kBAAW;;QAEXC;eAAAA,yBAAkB;;QADlBC;eAAAA,sBAAe;;QAIRC;eAAAA,wBAAW;;;6BARQ;iCACU;uBAK/B;6BAEqB;uBAaO"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 应用级事件系统
|
|
3
|
+
* 提供高性能、类型安全、可观测的事件通信能力
|
|
4
|
+
*/
|
|
5
|
+
export { AppEventBus } from './AppEventBus';
|
|
6
|
+
export { FrameworkEventManager } from './frameworkEvents';
|
|
7
|
+
export { useAppEvent, useAppEventOnce, useAppEventEmitter, } from './hooks';
|
|
8
|
+
export { useEventBus } from './useEventBus';
|
|
9
|
+
export type { EventListener, EventMetadata, EventWrapper, EventMiddleware, EventListenerOptions, AppEventBusConfig, EventStats, FrameworkEventData, } from './types';
|
|
10
|
+
export { FrameworkEventType } from './types';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/event/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,eAAe,EACf,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 应用级事件系统
|
|
3
|
+
* 提供高性能、类型安全、可观测的事件通信能力
|
|
4
|
+
*/ export { AppEventBus } from "./AppEventBus";
|
|
5
|
+
export { FrameworkEventManager } from "./frameworkEvents";
|
|
6
|
+
export { useAppEvent, useAppEventOnce, useAppEventEmitter } from "./hooks";
|
|
7
|
+
export { useEventBus } from "./useEventBus";
|
|
8
|
+
export { FrameworkEventType } from "./types";
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/event/index.ts"],"sourcesContent":["/**\n * 应用级事件系统\n * 提供高性能、类型安全、可观测的事件通信能力\n */\n\nexport { AppEventBus } from './AppEventBus';\nexport { FrameworkEventManager } from './frameworkEvents';\nexport {\n useAppEvent,\n useAppEventOnce,\n useAppEventEmitter,\n} from './hooks';\n\nexport { useEventBus } from './useEventBus';\n\nexport type {\n EventListener,\n EventMetadata,\n EventWrapper,\n EventMiddleware,\n EventListenerOptions,\n AppEventBusConfig,\n EventStats,\n FrameworkEventData,\n} from './types';\n\nexport { FrameworkEventType } from './types';\n"],"names":["AppEventBus","FrameworkEventManager","useAppEvent","useAppEventOnce","useAppEventEmitter","useEventBus","FrameworkEventType"],"mappings":"AAAA;;;CAGC,GAED,SAASA,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,qBAAqB,QAAQ,oBAAoB;AAC1D,SACEC,WAAW,EACXC,eAAe,EACfC,kBAAkB,QACb,UAAU;AAEjB,SAASC,WAAW,QAAQ,gBAAgB;AAa5C,SAASC,kBAAkB,QAAQ,UAAU"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 应用级事件系统类型定义
|
|
3
|
+
* 提供类型安全的事件通信能力
|
|
4
|
+
*/ /**
|
|
5
|
+
* 事件监听器类型
|
|
6
|
+
*
|
|
7
|
+
* @template T - 事件数据类型
|
|
8
|
+
*/ "use strict";
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: true
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FrameworkEventType", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function() {
|
|
15
|
+
return FrameworkEventType;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var FrameworkEventType = /*#__PURE__*/ function(FrameworkEventType) {
|
|
19
|
+
/**
|
|
20
|
+
* 应用启动开始
|
|
21
|
+
*/ FrameworkEventType["APP_START"] = "framework:app:start";
|
|
22
|
+
/**
|
|
23
|
+
* 应用启动完成
|
|
24
|
+
*/ FrameworkEventType["APP_STARTED"] = "framework:app:started";
|
|
25
|
+
/**
|
|
26
|
+
* 应用初始化开始
|
|
27
|
+
*/ FrameworkEventType["APP_INIT_START"] = "framework:app:init:start";
|
|
28
|
+
/**
|
|
29
|
+
* 应用初始化完成
|
|
30
|
+
*/ FrameworkEventType["APP_INIT_COMPLETE"] = "framework:app:init:complete";
|
|
31
|
+
/**
|
|
32
|
+
* 应用初始化失败
|
|
33
|
+
*/ FrameworkEventType["APP_INIT_ERROR"] = "framework:app:init:error";
|
|
34
|
+
/**
|
|
35
|
+
* 应用渲染开始
|
|
36
|
+
*/ FrameworkEventType["APP_RENDER_START"] = "framework:app:render:start";
|
|
37
|
+
/**
|
|
38
|
+
* 应用渲染完成
|
|
39
|
+
*/ FrameworkEventType["APP_RENDER_COMPLETE"] = "framework:app:render:complete";
|
|
40
|
+
/**
|
|
41
|
+
* 路由变化
|
|
42
|
+
*/ FrameworkEventType["ROUTE_CHANGE"] = "framework:route:change";
|
|
43
|
+
/**
|
|
44
|
+
* 路由导航开始
|
|
45
|
+
*/ FrameworkEventType["ROUTE_NAVIGATE_START"] = "framework:route:navigate:start";
|
|
46
|
+
/**
|
|
47
|
+
* 路由导航完成
|
|
48
|
+
*/ FrameworkEventType["ROUTE_NAVIGATE_COMPLETE"] = "framework:route:navigate:complete";
|
|
49
|
+
/**
|
|
50
|
+
* 错误发生
|
|
51
|
+
*/ FrameworkEventType["ERROR_OCCURRED"] = "framework:error:occurred";
|
|
52
|
+
/**
|
|
53
|
+
* 实例创建
|
|
54
|
+
*/ FrameworkEventType["INSTANCE_CREATED"] = "framework:instance:created";
|
|
55
|
+
/**
|
|
56
|
+
* 实例销毁
|
|
57
|
+
*/ FrameworkEventType["INSTANCE_DESTROYED"] = "framework:instance:destroyed";
|
|
58
|
+
/**
|
|
59
|
+
* 性能指标更新
|
|
60
|
+
*/ FrameworkEventType["PERFORMANCE_UPDATE"] = "framework:performance:update";
|
|
61
|
+
return FrameworkEventType;
|
|
62
|
+
}({});
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/event/types.ts"],"sourcesContent":["/**\n * 应用级事件系统类型定义\n * 提供类型安全的事件通信能力\n */\n\n/**\n * 事件监听器类型\n * \n * @template T - 事件数据类型\n */\nexport type EventListener<T = unknown> = (data: T, metadata: EventMetadata) => void | Promise<void>;\n\n/**\n * 事件元数据\n */\nexport interface EventMetadata {\n /**\n * 事件来源(模块/组件名称)\n */\n source?: string;\n \n /**\n * 事件时间戳\n */\n timestamp: number;\n \n /**\n * 事件ID(用于追踪)\n */\n eventId: string;\n \n /**\n * 事件优先级(数字越小优先级越高)\n */\n priority?: number;\n \n /**\n * 应用实例ID(多实例场景)\n */\n instanceId?: string;\n \n /**\n * 事件命名空间(用于作用域隔离)\n */\n namespace?: string;\n \n /**\n * 自定义元数据\n */\n [key: string]: unknown;\n}\n\n/**\n * 事件包装器\n * \n * @template T - 事件数据类型\n */\nexport interface EventWrapper<T = unknown> {\n /**\n * 事件数据\n */\n data: T;\n \n /**\n * 事件元数据\n */\n metadata: EventMetadata;\n}\n\n/**\n * 事件中间件函数类型\n * \n * @template T - 事件数据类型\n */\nexport type EventMiddleware<T = unknown> = (\n event: string,\n data: T,\n metadata: EventMetadata,\n next: () => Promise<void>\n) => Promise<void> | void;\n\n/**\n * 事件监听器选项\n */\nexport interface EventListenerOptions {\n /**\n * 监听器优先级(数字越小优先级越高)\n */\n priority?: number;\n \n /**\n * 是否只执行一次\n */\n once?: boolean;\n \n /**\n * 事件命名空间(用于作用域隔离)\n */\n namespace?: string;\n \n /**\n * 是否异步执行\n */\n async?: boolean;\n}\n\n/**\n * 事件总线配置\n */\nexport interface AppEventBusConfig {\n /**\n * 是否启用事件追踪\n */\n enableTracking?: boolean;\n \n /**\n * 最大事件历史记录数\n */\n maxHistorySize?: number;\n \n /**\n * 是否启用事件验证\n */\n enableValidation?: boolean;\n \n /**\n * 事件验证函数\n */\n validator?: (event: string, data: unknown) => boolean;\n \n /**\n * 是否启用性能监控\n */\n enablePerformanceMonitoring?: boolean;\n \n /**\n * 事件命名空间前缀(用于多实例隔离)\n */\n namespacePrefix?: string;\n \n /**\n * 应用实例ID(多实例场景)\n */\n instanceId?: string;\n \n /**\n * 是否启用安全模式(限制事件来源)\n */\n enableSecurityMode?: boolean;\n \n /**\n * 允许的事件来源白名单(安全模式)\n */\n allowedSources?: string[];\n}\n\n/**\n * 事件统计信息\n */\nexport interface EventStats {\n /**\n * 事件名称\n */\n event: string;\n \n /**\n * 触发次数\n */\n count: number;\n \n /**\n * 平均执行时间(毫秒)\n */\n avgExecutionTime: number;\n \n /**\n * 监听器数量\n */\n listenerCount: number;\n \n /**\n * 最后触发时间\n */\n lastTriggered: number;\n}\n\n/**\n * 框架内置事件类型\n */\nexport enum FrameworkEventType {\n /**\n * 应用启动开始\n */\n APP_START = 'framework:app:start',\n \n /**\n * 应用启动完成\n */\n APP_STARTED = 'framework:app:started',\n \n /**\n * 应用初始化开始\n */\n APP_INIT_START = 'framework:app:init:start',\n \n /**\n * 应用初始化完成\n */\n APP_INIT_COMPLETE = 'framework:app:init:complete',\n \n /**\n * 应用初始化失败\n */\n APP_INIT_ERROR = 'framework:app:init:error',\n \n /**\n * 应用渲染开始\n */\n APP_RENDER_START = 'framework:app:render:start',\n \n /**\n * 应用渲染完成\n */\n APP_RENDER_COMPLETE = 'framework:app:render:complete',\n \n /**\n * 路由变化\n */\n ROUTE_CHANGE = 'framework:route:change',\n \n /**\n * 路由导航开始\n */\n ROUTE_NAVIGATE_START = 'framework:route:navigate:start',\n \n /**\n * 路由导航完成\n */\n ROUTE_NAVIGATE_COMPLETE = 'framework:route:navigate:complete',\n \n /**\n * 错误发生\n */\n ERROR_OCCURRED = 'framework:error:occurred',\n \n /**\n * 实例创建\n */\n INSTANCE_CREATED = 'framework:instance:created',\n \n /**\n * 实例销毁\n */\n INSTANCE_DESTROYED = 'framework:instance:destroyed',\n \n /**\n * 性能指标更新\n */\n PERFORMANCE_UPDATE = 'framework:performance:update',\n}\n\n/**\n * 框架事件数据类型定义\n */\nexport interface FrameworkEventData {\n [FrameworkEventType.APP_START]: { instanceId?: string };\n [FrameworkEventType.APP_STARTED]: { instanceId?: string; duration: number };\n [FrameworkEventType.APP_INIT_START]: { instanceId?: string };\n [FrameworkEventType.APP_INIT_COMPLETE]: { instanceId?: string; context: unknown; duration: number };\n [FrameworkEventType.APP_INIT_ERROR]: { instanceId?: string; error: Error };\n [FrameworkEventType.APP_RENDER_START]: { instanceId?: string };\n [FrameworkEventType.APP_RENDER_COMPLETE]: { instanceId?: string; duration: number };\n [FrameworkEventType.ROUTE_CHANGE]: { from: string; to: string; params?: Record<string, unknown> };\n [FrameworkEventType.ROUTE_NAVIGATE_START]: { to: string; options?: unknown };\n [FrameworkEventType.ROUTE_NAVIGATE_COMPLETE]: { to: string; duration: number };\n [FrameworkEventType.ERROR_OCCURRED]: { error: Error; context?: unknown };\n [FrameworkEventType.INSTANCE_CREATED]: { instanceId: string };\n [FrameworkEventType.INSTANCE_DESTROYED]: { instanceId: string };\n [FrameworkEventType.PERFORMANCE_UPDATE]: { metrics: Record<string, number> };\n}\n"],"names":["FrameworkEventType"],"mappings":"AAAA;;;CAGC,GAED;;;;CAIC;;;;+BAoLWA;;;eAAAA;;;AAAL,IAAA,AAAKA,4CAAAA;IACV;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;IAGD;;GAEC;WApESA"}
|