@dangao/bun-server 2.1.0 → 2.2.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.
- package/dist/core/application.d.ts.map +1 -1
- package/dist/di/container.d.ts +16 -0
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/lifecycle.d.ts +48 -0
- package/dist/di/lifecycle.d.ts.map +1 -1
- package/dist/di/module-registry.d.ts +10 -6
- package/dist/di/module-registry.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +185 -67
- package/docs/lifecycle.md +74 -4
- package/docs/zh/lifecycle.md +47 -8
- package/package.json +1 -1
- package/src/core/application.ts +36 -23
- package/src/di/container.ts +55 -1
- package/src/di/lifecycle.ts +114 -0
- package/src/di/module-registry.ts +58 -10
- package/src/index.ts +4 -0
- package/tests/di/lifecycle.test.ts +102 -1
- package/tests/di/scoped-lifecycle.test.ts +61 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAC;AAMzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAW3C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,uBAAuB,CAAkB;gBAE9B,OAAO,GAAE,kBAAuB;IA6BnD;;;OAGG;IACI,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDpE;;OAEG;YACW,oBAAoB;IAqBlC;;;OAGG;YACW,sBAAsB;IAyBpC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlC;;;;;OAKG;IACU,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9D;;OAEG;YACW,eAAe;IAkB7B;;;;OAIG;YACW,aAAa;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAC;AAMzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAW3C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,uBAAuB,CAAkB;gBAE9B,OAAO,GAAE,kBAAuB;IA6BnD;;;OAGG;IACI,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDpE;;OAEG;YACW,oBAAoB;IAqBlC;;;OAGG;YACW,sBAAsB;IAyBpC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlC;;;;;OAKG;IACU,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9D;;OAEG;YACW,eAAe;IAkB7B;;;;OAIG;YACW,aAAa;IAsD3B;;;OAGG;IACI,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAKtE;;;OAGG;IACI,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAqBrD;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IAc1C;;;OAGG;IACI,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAIzE;;;OAGG;IACI,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAK/D;;;OAGG;IACI,SAAS,IAAI,SAAS,GAAG,SAAS;IAIzC;;;OAGG;YACW,gBAAgB;IA0C9B;;;OAGG;YACW,kBAAkB;IAgDhC;;;OAGG;IACI,YAAY;IAInB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAS7B"}
|
package/dist/di/container.d.ts
CHANGED
|
@@ -90,6 +90,22 @@ export declare class Container {
|
|
|
90
90
|
* 注意:scopedInstances 使用 WeakMap,会自动清理,无需手动清除
|
|
91
91
|
*/
|
|
92
92
|
clear(): void;
|
|
93
|
+
/**
|
|
94
|
+
* 获取指定请求上下文下的 scoped 实例
|
|
95
|
+
* @param context - 请求上下文对象
|
|
96
|
+
* @returns 去重后的 scoped 实例列表
|
|
97
|
+
*/
|
|
98
|
+
getScopedInstances(context: object): unknown[];
|
|
99
|
+
/**
|
|
100
|
+
* 清理指定请求上下文的 scoped 实例缓存
|
|
101
|
+
* @param context - 请求上下文对象
|
|
102
|
+
*/
|
|
103
|
+
clearScopedInstances(context: object): void;
|
|
104
|
+
/**
|
|
105
|
+
* 触发指定请求上下文下 scoped 实例的销毁钩子并清理缓存
|
|
106
|
+
* @param context - 请求上下文对象
|
|
107
|
+
*/
|
|
108
|
+
disposeScopedInstances(context: object): Promise<void>;
|
|
93
109
|
/**
|
|
94
110
|
* 检查是否已注册
|
|
95
111
|
* @param token - 提供者标识符
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,qBAAqB,EAG1B,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAOjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,qBAAqB,EAG1B,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAOjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhD;;;GAGG;AACH,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY;gBAEjB,OAAO,GAAE,gBAAqB;IAGjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IAExE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;IAElE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwD;IAExF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGxB;IAEJ;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAE9D;;;;OAIG;IACI,QAAQ,CAAC,CAAC,EACf,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,EACvC,MAAM,CAAC,EAAE,cAAc,GACtB,IAAI;IA6BP;;;;OAIG;IACI,gBAAgB,CAAC,CAAC,EACvB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,EACvC,QAAQ,EAAE,CAAC,GACV,IAAI;IAQP;;;OAGG;IACI,qBAAqB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAMpE;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;OAIG;IACI,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC;IAyF7D;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAsGvB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAqBnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IASnB;;;OAGG;IACI,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE;IAgBrD;;;OAGG;IACI,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlD;;;OAGG;IACU,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnE;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAK3E,OAAO,CAAC,iBAAiB;IAuDzB,OAAO,CAAC,eAAe;CA6BxB"}
|
package/dist/di/lifecycle.d.ts
CHANGED
|
@@ -26,10 +26,50 @@ export interface OnApplicationBootstrap {
|
|
|
26
26
|
export interface OnApplicationShutdown {
|
|
27
27
|
onApplicationShutdown(signal?: string): Promise<void> | void;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* 组件创建前钩子(静态类方法)
|
|
31
|
+
* 在实例化前调用,适用于 Controller / Injectable 类
|
|
32
|
+
*/
|
|
33
|
+
export type ComponentClassBeforeCreate = {
|
|
34
|
+
onBeforeCreate(): void;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* 组件创建后钩子(实例)
|
|
38
|
+
* 在实例化并完成后处理后调用
|
|
39
|
+
*/
|
|
40
|
+
export interface OnAfterCreate {
|
|
41
|
+
onAfterCreate(): void;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 组件销毁前钩子(实例)
|
|
45
|
+
* 在 onModuleDestroy 之前调用(反向顺序)
|
|
46
|
+
*/
|
|
47
|
+
export interface OnBeforeDestroy {
|
|
48
|
+
onBeforeDestroy(): Promise<void> | void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 组件销毁后钩子(实例)
|
|
52
|
+
* 在 onModuleDestroy 之后调用(反向顺序)
|
|
53
|
+
*/
|
|
54
|
+
export interface OnAfterDestroy {
|
|
55
|
+
onAfterDestroy(): Promise<void> | void;
|
|
56
|
+
}
|
|
29
57
|
export declare function hasOnModuleInit(instance: unknown): instance is OnModuleInit;
|
|
30
58
|
export declare function hasOnModuleDestroy(instance: unknown): instance is OnModuleDestroy;
|
|
31
59
|
export declare function hasOnApplicationBootstrap(instance: unknown): instance is OnApplicationBootstrap;
|
|
32
60
|
export declare function hasOnApplicationShutdown(instance: unknown): instance is OnApplicationShutdown;
|
|
61
|
+
export declare function hasComponentBeforeCreate(target: unknown): target is ComponentClassBeforeCreate;
|
|
62
|
+
export declare function hasOnAfterCreate(instance: unknown): instance is OnAfterCreate;
|
|
63
|
+
export declare function hasOnBeforeDestroy(instance: unknown): instance is OnBeforeDestroy;
|
|
64
|
+
export declare function hasOnAfterDestroy(instance: unknown): instance is OnAfterDestroy;
|
|
65
|
+
/**
|
|
66
|
+
* 调用组件类静态 onBeforeCreate
|
|
67
|
+
*/
|
|
68
|
+
export declare function callComponentBeforeCreate(target: unknown): void;
|
|
69
|
+
/**
|
|
70
|
+
* 调用组件实例 onAfterCreate
|
|
71
|
+
*/
|
|
72
|
+
export declare function callOnAfterCreate(instance: unknown): void;
|
|
33
73
|
/**
|
|
34
74
|
* 按顺序调用 onModuleInit
|
|
35
75
|
*/
|
|
@@ -46,4 +86,12 @@ export declare function callOnModuleDestroy(instances: unknown[]): Promise<void>
|
|
|
46
86
|
* 按反向顺序调用 onApplicationShutdown
|
|
47
87
|
*/
|
|
48
88
|
export declare function callOnApplicationShutdown(instances: unknown[], signal?: string): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* 按反向顺序调用 onBeforeDestroy
|
|
91
|
+
*/
|
|
92
|
+
export declare function callOnBeforeDestroy(instances: unknown[]): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* 按反向顺序调用 onAfterDestroy
|
|
95
|
+
*/
|
|
96
|
+
export declare function callOnAfterDestroy(instances: unknown[]): Promise<void>;
|
|
49
97
|
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/di/lifecycle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAQ3E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,eAAe,CAQjF;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,sBAAsB,CAQ/F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,qBAAqB,CAQ7F;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1E;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG"}
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/di/lifecycle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,cAAc,IAAI,IAAI,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,IAAI,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxC;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAQ3E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,eAAe,CAQjF;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,sBAAsB,CAQ/F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,qBAAqB,CAQ7F;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,0BAA0B,CAQ9F;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa,CAQ7E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,eAAe,CAQjF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAQ/E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAI/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAIzD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1E;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO5E"}
|
|
@@ -55,25 +55,29 @@ export declare class ModuleRegistry {
|
|
|
55
55
|
*/
|
|
56
56
|
getModuleMiddlewares(moduleClass: ModuleClass): Middleware[];
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* 解析所有模块中的组件实例(providers + controllers),用于生命周期钩子调用
|
|
59
59
|
*/
|
|
60
|
-
|
|
60
|
+
resolveAllComponentInstances(): unknown[];
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* 调用所有组件(providers + controllers)的 onModuleInit 钩子
|
|
63
63
|
*/
|
|
64
64
|
callModuleInitHooks(): Promise<void>;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* 调用所有组件(providers + controllers)的 onApplicationBootstrap 钩子
|
|
67
67
|
*/
|
|
68
68
|
callBootstrapHooks(): Promise<void>;
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* 调用所有组件(providers + controllers)的 onModuleDestroy 钩子
|
|
71
71
|
*/
|
|
72
72
|
callModuleDestroyHooks(): Promise<void>;
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* 调用所有组件(providers + controllers)的 onApplicationShutdown 钩子
|
|
75
75
|
*/
|
|
76
76
|
callShutdownHooks(signal?: string): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* 调用当前请求上下文下 scoped 组件的销毁钩子并清理缓存
|
|
79
|
+
*/
|
|
80
|
+
disposeScopedInstances(context: object): Promise<void>;
|
|
77
81
|
private registerExport;
|
|
78
82
|
}
|
|
79
83
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/di/module-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAA2C,MAAM,UAAU,CAAC;AAGxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/di/module-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAA2C,MAAM,UAAU,CAAC;AAGxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD,UAAU,SAAS;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC/C,SAAS,EAAE,SAAS,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;WAE1C,WAAW,IAAI,cAAc;IAOpC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,GAAG,SAAS;IAOzE,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS;IAIpE;;OAEG;IACI,sBAAsB,IAAI,SAAS,EAAE;IAQrC,KAAK,IAAI,IAAI;IAOpB;;OAEG;IACI,gBAAgB,IAAI,WAAW,EAAE;IAIxC,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,oBAAoB;IAkC5B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACI,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,oBAAoB,EAAE;IAQ5E;;OAEG;IACI,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,UAAU,EAAE;IAQnE;;OAEG;IACI,4BAA4B,IAAI,OAAO,EAAE;IAkDhD;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjD;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhD;;OAEG;IACU,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpD;;OAEG;IACU,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D;;OAEG;IACU,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnE,OAAO,CAAC,cAAc;CAgBvB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export { Lifecycle, type ProviderConfig, type DependencyMetadata } from './di/ty
|
|
|
17
17
|
export { Module, type ModuleMetadata, type ModuleProvider, type ModuleClass, } from './di/module';
|
|
18
18
|
export { ModuleRegistry } from './di/module-registry';
|
|
19
19
|
export { AsyncProviderRegistry, type AsyncModuleOptions } from './di/async-module';
|
|
20
|
-
export type { OnModuleInit, OnModuleDestroy, OnApplicationBootstrap, OnApplicationShutdown, } from './di/lifecycle';
|
|
20
|
+
export type { OnModuleInit, OnModuleDestroy, OnApplicationBootstrap, OnApplicationShutdown, ComponentClassBeforeCreate, OnAfterCreate, OnBeforeDestroy, OnAfterDestroy, } from './di/lifecycle';
|
|
21
21
|
export { InterceptorRegistry, InterceptorChain, scanInterceptorMetadata, BaseInterceptor, Cache, CacheInterceptor, Permission, PermissionInterceptor, Log, LogInterceptor, INTERCEPTOR_REGISTRY_TOKEN, CACHE_METADATA_KEY, PERMISSION_METADATA_KEY, LOG_METADATA_KEY, type Interceptor, type InterceptorMetadata, type CacheOptions, type PermissionOptions, type PermissionService, type LogOptions, } from './interceptor';
|
|
22
22
|
export { UseMiddleware, RateLimit, MiddlewarePipeline } from './middleware';
|
|
23
23
|
export type { Middleware, NextFunction } from './middleware';
|
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,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EACL,MAAM,EACN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EACL,MAAM,EACN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,GAAG,EACH,cAAc,EACd,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,UAAU,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,qBAAqB,EAErB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EAEtB,kBAAkB,EAElB,eAAe,EACf,KAAK,eAAe,EAEpB,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAE1B,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,KAAK,gBAAgB,EAErB,SAAS,EACT,KAAK,EACL,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,SAAS,EACT,cAAc,EACd,OAAO,EACP,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAEhB,UAAU,EACV,SAAS,EACT,KAAK,sBAAsB,EAE3B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,QAAQ,EACR,WAAW,EACX,KAAK,sBAAsB,EAE3B,aAAa,EACb,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,OAAO,EACP,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,yBAAyB,EACzB,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,EAC9B,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,qBAAqB,GAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,SAAS,EACT,EAAE,EACF,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,QAAQ,EACR,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,gBAAgB,IAAI,wBAAwB,EACjD,KAAK,kBAAkB,EAEvB,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,IAAI,uBAAuB,EAC9C,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,eAAe,EACf,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,kBAAkB,EAClB,UAAU,EACV,GAAG,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,gBAAgB,IAAI,OAAO,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,OAAO,IAAI,WAAW,EACtB,WAAW,EACX,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,iCAAiC,EACjC,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC;AAIlB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1769,6 +1769,88 @@ var init_types = __esm(() => {
|
|
|
1769
1769
|
})(Lifecycle ||= {});
|
|
1770
1770
|
});
|
|
1771
1771
|
|
|
1772
|
+
// src/di/lifecycle.ts
|
|
1773
|
+
function hasOnModuleInit(instance) {
|
|
1774
|
+
return instance !== null && instance !== undefined && typeof instance === "object" && "onModuleInit" in instance && typeof instance.onModuleInit === "function";
|
|
1775
|
+
}
|
|
1776
|
+
function hasOnModuleDestroy(instance) {
|
|
1777
|
+
return instance !== null && instance !== undefined && typeof instance === "object" && "onModuleDestroy" in instance && typeof instance.onModuleDestroy === "function";
|
|
1778
|
+
}
|
|
1779
|
+
function hasOnApplicationBootstrap(instance) {
|
|
1780
|
+
return instance !== null && instance !== undefined && typeof instance === "object" && "onApplicationBootstrap" in instance && typeof instance.onApplicationBootstrap === "function";
|
|
1781
|
+
}
|
|
1782
|
+
function hasOnApplicationShutdown(instance) {
|
|
1783
|
+
return instance !== null && instance !== undefined && typeof instance === "object" && "onApplicationShutdown" in instance && typeof instance.onApplicationShutdown === "function";
|
|
1784
|
+
}
|
|
1785
|
+
function hasComponentBeforeCreate(target) {
|
|
1786
|
+
return target !== null && target !== undefined && typeof target === "function" && "onBeforeCreate" in target && typeof target.onBeforeCreate === "function";
|
|
1787
|
+
}
|
|
1788
|
+
function hasOnAfterCreate(instance) {
|
|
1789
|
+
return instance !== null && instance !== undefined && typeof instance === "object" && "onAfterCreate" in instance && typeof instance.onAfterCreate === "function";
|
|
1790
|
+
}
|
|
1791
|
+
function hasOnBeforeDestroy(instance) {
|
|
1792
|
+
return instance !== null && instance !== undefined && typeof instance === "object" && "onBeforeDestroy" in instance && typeof instance.onBeforeDestroy === "function";
|
|
1793
|
+
}
|
|
1794
|
+
function hasOnAfterDestroy(instance) {
|
|
1795
|
+
return instance !== null && instance !== undefined && typeof instance === "object" && "onAfterDestroy" in instance && typeof instance.onAfterDestroy === "function";
|
|
1796
|
+
}
|
|
1797
|
+
function callComponentBeforeCreate(target) {
|
|
1798
|
+
if (hasComponentBeforeCreate(target)) {
|
|
1799
|
+
target.onBeforeCreate();
|
|
1800
|
+
}
|
|
1801
|
+
}
|
|
1802
|
+
function callOnAfterCreate(instance) {
|
|
1803
|
+
if (hasOnAfterCreate(instance)) {
|
|
1804
|
+
instance.onAfterCreate();
|
|
1805
|
+
}
|
|
1806
|
+
}
|
|
1807
|
+
async function callOnModuleInit(instances) {
|
|
1808
|
+
for (const instance of instances) {
|
|
1809
|
+
if (hasOnModuleInit(instance)) {
|
|
1810
|
+
await instance.onModuleInit();
|
|
1811
|
+
}
|
|
1812
|
+
}
|
|
1813
|
+
}
|
|
1814
|
+
async function callOnApplicationBootstrap(instances) {
|
|
1815
|
+
for (const instance of instances) {
|
|
1816
|
+
if (hasOnApplicationBootstrap(instance)) {
|
|
1817
|
+
await instance.onApplicationBootstrap();
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
}
|
|
1821
|
+
async function callOnModuleDestroy(instances) {
|
|
1822
|
+
for (let i = instances.length - 1;i >= 0; i--) {
|
|
1823
|
+
const instance = instances[i];
|
|
1824
|
+
if (hasOnModuleDestroy(instance)) {
|
|
1825
|
+
await instance.onModuleDestroy();
|
|
1826
|
+
}
|
|
1827
|
+
}
|
|
1828
|
+
}
|
|
1829
|
+
async function callOnApplicationShutdown(instances, signal) {
|
|
1830
|
+
for (let i = instances.length - 1;i >= 0; i--) {
|
|
1831
|
+
const instance = instances[i];
|
|
1832
|
+
if (hasOnApplicationShutdown(instance)) {
|
|
1833
|
+
await instance.onApplicationShutdown(signal);
|
|
1834
|
+
}
|
|
1835
|
+
}
|
|
1836
|
+
}
|
|
1837
|
+
async function callOnBeforeDestroy(instances) {
|
|
1838
|
+
for (let i = instances.length - 1;i >= 0; i--) {
|
|
1839
|
+
const instance = instances[i];
|
|
1840
|
+
if (hasOnBeforeDestroy(instance)) {
|
|
1841
|
+
await instance.onBeforeDestroy();
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1845
|
+
async function callOnAfterDestroy(instances) {
|
|
1846
|
+
for (let i = instances.length - 1;i >= 0; i--) {
|
|
1847
|
+
const instance = instances[i];
|
|
1848
|
+
if (hasOnAfterDestroy(instance)) {
|
|
1849
|
+
await instance.onAfterDestroy();
|
|
1850
|
+
}
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
|
|
1772
1854
|
// src/di/container.ts
|
|
1773
1855
|
import"reflect-metadata";
|
|
1774
1856
|
import { LoggerManager as LoggerManager5 } from "@dangao/logsmith";
|
|
@@ -1951,6 +2033,7 @@ class Container {
|
|
|
1951
2033
|
throw new Error(`Invalid token type: ${tokenType}. Token: ${String(token)}`);
|
|
1952
2034
|
}
|
|
1953
2035
|
instantiate(constructor) {
|
|
2036
|
+
callComponentBeforeCreate(constructor);
|
|
1954
2037
|
const plan = this.getDependencyPlan(constructor);
|
|
1955
2038
|
let instance;
|
|
1956
2039
|
if (plan.paramLength === 0) {
|
|
@@ -1962,7 +2045,9 @@ class Container {
|
|
|
1962
2045
|
}
|
|
1963
2046
|
instance = new constructor(...dependencies);
|
|
1964
2047
|
}
|
|
1965
|
-
|
|
2048
|
+
const processed = this.applyPostProcessors(instance, constructor);
|
|
2049
|
+
callOnAfterCreate(processed);
|
|
2050
|
+
return processed;
|
|
1966
2051
|
}
|
|
1967
2052
|
getTokenKey(token) {
|
|
1968
2053
|
if (typeof token === "function") {
|
|
@@ -1977,6 +2062,34 @@ class Container {
|
|
|
1977
2062
|
this.dependencyPlans.clear();
|
|
1978
2063
|
this.postProcessors.length = 0;
|
|
1979
2064
|
}
|
|
2065
|
+
getScopedInstances(context) {
|
|
2066
|
+
const scopedMap = this.scopedInstances.get(context);
|
|
2067
|
+
if (!scopedMap || scopedMap.size === 0) {
|
|
2068
|
+
return [];
|
|
2069
|
+
}
|
|
2070
|
+
const seen = new Set;
|
|
2071
|
+
const instances = [];
|
|
2072
|
+
for (const instance of scopedMap.values()) {
|
|
2073
|
+
if (!seen.has(instance)) {
|
|
2074
|
+
seen.add(instance);
|
|
2075
|
+
instances.push(instance);
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2078
|
+
return instances;
|
|
2079
|
+
}
|
|
2080
|
+
clearScopedInstances(context) {
|
|
2081
|
+
this.scopedInstances.delete(context);
|
|
2082
|
+
}
|
|
2083
|
+
async disposeScopedInstances(context) {
|
|
2084
|
+
const instances = this.getScopedInstances(context);
|
|
2085
|
+
if (instances.length === 0) {
|
|
2086
|
+
return;
|
|
2087
|
+
}
|
|
2088
|
+
await callOnBeforeDestroy(instances);
|
|
2089
|
+
await callOnModuleDestroy(instances);
|
|
2090
|
+
await callOnAfterDestroy(instances);
|
|
2091
|
+
this.clearScopedInstances(context);
|
|
2092
|
+
}
|
|
1980
2093
|
isRegistered(token) {
|
|
1981
2094
|
const tokenKey = this.getTokenKey(token);
|
|
1982
2095
|
return this.providers.has(tokenKey);
|
|
@@ -4570,51 +4683,6 @@ init_types();
|
|
|
4570
4683
|
init_module();
|
|
4571
4684
|
init_decorators();
|
|
4572
4685
|
|
|
4573
|
-
// src/di/lifecycle.ts
|
|
4574
|
-
function hasOnModuleInit(instance) {
|
|
4575
|
-
return instance !== null && instance !== undefined && typeof instance === "object" && "onModuleInit" in instance && typeof instance.onModuleInit === "function";
|
|
4576
|
-
}
|
|
4577
|
-
function hasOnModuleDestroy(instance) {
|
|
4578
|
-
return instance !== null && instance !== undefined && typeof instance === "object" && "onModuleDestroy" in instance && typeof instance.onModuleDestroy === "function";
|
|
4579
|
-
}
|
|
4580
|
-
function hasOnApplicationBootstrap(instance) {
|
|
4581
|
-
return instance !== null && instance !== undefined && typeof instance === "object" && "onApplicationBootstrap" in instance && typeof instance.onApplicationBootstrap === "function";
|
|
4582
|
-
}
|
|
4583
|
-
function hasOnApplicationShutdown(instance) {
|
|
4584
|
-
return instance !== null && instance !== undefined && typeof instance === "object" && "onApplicationShutdown" in instance && typeof instance.onApplicationShutdown === "function";
|
|
4585
|
-
}
|
|
4586
|
-
async function callOnModuleInit(instances) {
|
|
4587
|
-
for (const instance of instances) {
|
|
4588
|
-
if (hasOnModuleInit(instance)) {
|
|
4589
|
-
await instance.onModuleInit();
|
|
4590
|
-
}
|
|
4591
|
-
}
|
|
4592
|
-
}
|
|
4593
|
-
async function callOnApplicationBootstrap(instances) {
|
|
4594
|
-
for (const instance of instances) {
|
|
4595
|
-
if (hasOnApplicationBootstrap(instance)) {
|
|
4596
|
-
await instance.onApplicationBootstrap();
|
|
4597
|
-
}
|
|
4598
|
-
}
|
|
4599
|
-
}
|
|
4600
|
-
async function callOnModuleDestroy(instances) {
|
|
4601
|
-
for (let i = instances.length - 1;i >= 0; i--) {
|
|
4602
|
-
const instance = instances[i];
|
|
4603
|
-
if (hasOnModuleDestroy(instance)) {
|
|
4604
|
-
await instance.onModuleDestroy();
|
|
4605
|
-
}
|
|
4606
|
-
}
|
|
4607
|
-
}
|
|
4608
|
-
async function callOnApplicationShutdown(instances, signal) {
|
|
4609
|
-
for (let i = instances.length - 1;i >= 0; i--) {
|
|
4610
|
-
const instance = instances[i];
|
|
4611
|
-
if (hasOnApplicationShutdown(instance)) {
|
|
4612
|
-
await instance.onApplicationShutdown(signal);
|
|
4613
|
-
}
|
|
4614
|
-
}
|
|
4615
|
-
}
|
|
4616
|
-
|
|
4617
|
-
// src/di/module-registry.ts
|
|
4618
4686
|
class ModuleRegistry {
|
|
4619
4687
|
static instance;
|
|
4620
4688
|
moduleRefs = new Map;
|
|
@@ -4771,7 +4839,7 @@ class ModuleRegistry {
|
|
|
4771
4839
|
}
|
|
4772
4840
|
return moduleRef.middlewares;
|
|
4773
4841
|
}
|
|
4774
|
-
|
|
4842
|
+
resolveAllComponentInstances() {
|
|
4775
4843
|
const instances = [];
|
|
4776
4844
|
const seen = new Set;
|
|
4777
4845
|
for (const [, ref] of this.moduleRefs) {
|
|
@@ -4804,25 +4872,62 @@ class ModuleRegistry {
|
|
|
4804
4872
|
}
|
|
4805
4873
|
} catch (_error) {}
|
|
4806
4874
|
}
|
|
4875
|
+
for (const controller of ref.metadata.controllers) {
|
|
4876
|
+
try {
|
|
4877
|
+
const instance = ref.container.resolve(controller);
|
|
4878
|
+
if (!seen.has(instance)) {
|
|
4879
|
+
seen.add(instance);
|
|
4880
|
+
instances.push(instance);
|
|
4881
|
+
}
|
|
4882
|
+
} catch (_error) {}
|
|
4883
|
+
}
|
|
4807
4884
|
}
|
|
4808
4885
|
return instances;
|
|
4809
4886
|
}
|
|
4810
4887
|
async callModuleInitHooks() {
|
|
4811
|
-
const instances = this.
|
|
4888
|
+
const instances = this.resolveAllComponentInstances();
|
|
4812
4889
|
await callOnModuleInit(instances);
|
|
4813
4890
|
}
|
|
4814
4891
|
async callBootstrapHooks() {
|
|
4815
|
-
const instances = this.
|
|
4892
|
+
const instances = this.resolveAllComponentInstances();
|
|
4816
4893
|
await callOnApplicationBootstrap(instances);
|
|
4817
4894
|
}
|
|
4818
4895
|
async callModuleDestroyHooks() {
|
|
4819
|
-
const instances = this.
|
|
4896
|
+
const instances = this.resolveAllComponentInstances();
|
|
4897
|
+
await callOnBeforeDestroy(instances);
|
|
4820
4898
|
await callOnModuleDestroy(instances);
|
|
4899
|
+
await callOnAfterDestroy(instances);
|
|
4821
4900
|
}
|
|
4822
4901
|
async callShutdownHooks(signal) {
|
|
4823
|
-
const instances = this.
|
|
4902
|
+
const instances = this.resolveAllComponentInstances();
|
|
4824
4903
|
await callOnApplicationShutdown(instances, signal);
|
|
4825
4904
|
}
|
|
4905
|
+
async disposeScopedInstances(context) {
|
|
4906
|
+
const containers = [];
|
|
4907
|
+
if (this.rootContainer) {
|
|
4908
|
+
containers.push(this.rootContainer);
|
|
4909
|
+
}
|
|
4910
|
+
containers.push(...this.getAllModuleContainers());
|
|
4911
|
+
const instances = [];
|
|
4912
|
+
const seen = new Set;
|
|
4913
|
+
for (const container of containers) {
|
|
4914
|
+
const scopedInstances = container.getScopedInstances(context);
|
|
4915
|
+
for (const instance of scopedInstances) {
|
|
4916
|
+
if (!seen.has(instance)) {
|
|
4917
|
+
seen.add(instance);
|
|
4918
|
+
instances.push(instance);
|
|
4919
|
+
}
|
|
4920
|
+
}
|
|
4921
|
+
}
|
|
4922
|
+
if (instances.length > 0) {
|
|
4923
|
+
await callOnBeforeDestroy(instances);
|
|
4924
|
+
await callOnModuleDestroy(instances);
|
|
4925
|
+
await callOnAfterDestroy(instances);
|
|
4926
|
+
}
|
|
4927
|
+
for (const container of containers) {
|
|
4928
|
+
container.clearScopedInstances(context);
|
|
4929
|
+
}
|
|
4930
|
+
}
|
|
4826
4931
|
registerExport(parentContainer, moduleRef, token) {
|
|
4827
4932
|
if (!moduleRef.container.isRegistered(token)) {
|
|
4828
4933
|
throw new Error(`Module ${moduleRef.moduleClass.name} cannot export ${typeof token === "function" ? token.name : String(token)} because it is not registered`);
|
|
@@ -6649,30 +6754,43 @@ class Application {
|
|
|
6649
6754
|
}
|
|
6650
6755
|
async handleRequest(context) {
|
|
6651
6756
|
const logger = LoggerManager11.getLogger();
|
|
6757
|
+
const moduleRegistry = ModuleRegistry.getInstance();
|
|
6652
6758
|
logger.debug("[Request] Incoming", {
|
|
6653
6759
|
method: context.method,
|
|
6654
6760
|
path: context.path,
|
|
6655
6761
|
url: context.url?.href
|
|
6656
6762
|
});
|
|
6657
6763
|
return await contextStore.run(context, async () => {
|
|
6658
|
-
|
|
6659
|
-
|
|
6660
|
-
|
|
6661
|
-
const registry = RouteRegistry.getInstance();
|
|
6662
|
-
const router = registry.getRouter();
|
|
6663
|
-
await router.preHandle(context);
|
|
6664
|
-
return await this.middlewarePipeline.run(context, async () => {
|
|
6665
|
-
const response = await router.handle(context);
|
|
6666
|
-
if (response) {
|
|
6667
|
-
return response;
|
|
6764
|
+
try {
|
|
6765
|
+
if (["POST", "PUT", "PATCH"].includes(context.method)) {
|
|
6766
|
+
await context.getBody();
|
|
6668
6767
|
}
|
|
6669
|
-
|
|
6670
|
-
|
|
6671
|
-
|
|
6768
|
+
const registry = RouteRegistry.getInstance();
|
|
6769
|
+
const router = registry.getRouter();
|
|
6770
|
+
await router.preHandle(context);
|
|
6771
|
+
return await this.middlewarePipeline.run(context, async () => {
|
|
6772
|
+
const response = await router.handle(context);
|
|
6773
|
+
if (response) {
|
|
6774
|
+
return response;
|
|
6775
|
+
}
|
|
6776
|
+
logger.debug("[Router] No route matched", {
|
|
6777
|
+
method: context.method,
|
|
6778
|
+
path: context.path
|
|
6779
|
+
});
|
|
6780
|
+
context.setStatus(404);
|
|
6781
|
+
return context.createErrorResponse({ error: "Not Found" });
|
|
6672
6782
|
});
|
|
6673
|
-
|
|
6674
|
-
|
|
6675
|
-
|
|
6783
|
+
} finally {
|
|
6784
|
+
try {
|
|
6785
|
+
await moduleRegistry.disposeScopedInstances(context);
|
|
6786
|
+
} catch (error) {
|
|
6787
|
+
logger.warn("[Application] Failed to dispose scoped instances", {
|
|
6788
|
+
path: context.path,
|
|
6789
|
+
method: context.method,
|
|
6790
|
+
errorMessage: error instanceof Error ? error.message : String(error)
|
|
6791
|
+
});
|
|
6792
|
+
}
|
|
6793
|
+
}
|
|
6676
6794
|
});
|
|
6677
6795
|
}
|
|
6678
6796
|
registerController(controllerClass) {
|