@eggjs/tegg-plugin 4.0.0-beta.8 → 4.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/app/extend/application.d.ts +50 -4
  2. package/dist/app/extend/application.js +79 -10
  3. package/dist/app/extend/application.unittest.d.ts +22 -2
  4. package/dist/app/extend/application.unittest.js +55 -4
  5. package/dist/app/extend/context.d.ts +20 -2
  6. package/dist/app/extend/context.js +35 -5
  7. package/dist/app/middleware/tegg_ctx_lifecycle_middleware.d.ts +2 -5
  8. package/dist/app/middleware/tegg_ctx_lifecycle_middleware.js +4 -9
  9. package/dist/app.d.ts +16 -21
  10. package/dist/app.js +63 -65
  11. package/dist/index.d.ts +3 -6
  12. package/dist/index.js +4 -15
  13. package/dist/lib/AppLoadUnit.d.ts +19 -2
  14. package/dist/lib/AppLoadUnit.js +90 -3
  15. package/dist/lib/AppLoadUnitInstance.d.ts +20 -2
  16. package/dist/lib/AppLoadUnitInstance.js +82 -3
  17. package/dist/lib/CompatibleUtil.d.ts +13 -17
  18. package/dist/lib/CompatibleUtil.js +95 -3
  19. package/dist/lib/ConfigSourceLoadUnitHook.d.ts +4 -9
  20. package/dist/lib/ConfigSourceLoadUnitHook.js +21 -3
  21. package/dist/lib/EggAppLoader.d.ts +15 -19
  22. package/dist/lib/EggAppLoader.js +128 -5
  23. package/dist/lib/EggCompatibleObject.d.ts +18 -3
  24. package/dist/lib/EggCompatibleObject.js +42 -4
  25. package/dist/lib/EggCompatibleProtoImpl.d.ts +21 -2
  26. package/dist/lib/EggCompatibleProtoImpl.js +52 -3
  27. package/dist/lib/EggContextCompatibleHook.d.ts +9 -13
  28. package/dist/lib/EggContextCompatibleHook.js +44 -9
  29. package/dist/lib/EggContextHandler.d.ts +9 -2
  30. package/dist/lib/EggContextHandler.js +26 -3
  31. package/dist/lib/EggContextImpl.d.ts +5 -9
  32. package/dist/lib/EggContextImpl.js +15 -3
  33. package/dist/lib/EggModuleLoader.d.ts +10 -14
  34. package/dist/lib/EggModuleLoader.js +54 -6
  35. package/dist/lib/EggQualifierProtoHook.d.ts +9 -13
  36. package/dist/lib/EggQualifierProtoHook.js +62 -6
  37. package/dist/lib/ModuleConfigLoader.d.ts +7 -11
  38. package/dist/lib/ModuleConfigLoader.js +81 -4
  39. package/dist/lib/ModuleHandler.d.ts +13 -2
  40. package/dist/lib/ModuleHandler.js +53 -8
  41. package/dist/lib/Utils.d.ts +1 -4
  42. package/dist/lib/Utils.js +36 -3
  43. package/dist/lib/ctx_lifecycle_middleware.d.ts +2 -2
  44. package/dist/lib/ctx_lifecycle_middleware.js +33 -4
  45. package/dist/lib/run_in_background.d.ts +3 -7
  46. package/dist/lib/run_in_background.js +58 -7
  47. package/dist/types.d.ts +8 -6
  48. package/dist/types.js +5 -15
  49. package/package.json +12 -12
  50. package/dist/AppLoadUnit-BOWdS4O9.d.ts +0 -23
  51. package/dist/AppLoadUnit-uyHgElRL.js +0 -78
  52. package/dist/AppLoadUnitInstance-4Z_vSQV3.js +0 -69
  53. package/dist/AppLoadUnitInstance-DQ-DxlmR.d.ts +0 -24
  54. package/dist/CompatibleUtil-CNhydb0E.js +0 -96
  55. package/dist/ConfigSourceLoadUnitHook-BV-R31vA.js +0 -22
  56. package/dist/EggAppLoader-DFYg65ry.js +0 -106
  57. package/dist/EggCompatibleObject-XfIZyirS.js +0 -37
  58. package/dist/EggCompatibleObject-lzUCfsIY.d.ts +0 -21
  59. package/dist/EggCompatibleProtoImpl-CPxLvSu4.js +0 -50
  60. package/dist/EggCompatibleProtoImpl-DpacWKFB.d.ts +0 -25
  61. package/dist/EggContextCompatibleHook-eFfN2xm6.js +0 -31
  62. package/dist/EggContextHandler-D8gfTbZs.js +0 -29
  63. package/dist/EggContextHandler-vGi67He5.d.ts +0 -13
  64. package/dist/EggContextImpl-DkCLPTzT.js +0 -18
  65. package/dist/EggModuleLoader-CCfQMmp5.js +0 -50
  66. package/dist/EggQualifierProtoHook-D5jNm-1y.js +0 -48
  67. package/dist/ModuleConfigLoader-CvZLf99E.js +0 -84
  68. package/dist/ModuleHandler-Dyx7JGj-.d.ts +0 -17
  69. package/dist/ModuleHandler-fKcUqWca.js +0 -46
  70. package/dist/Utils-11aRpnkd.js +0 -33
  71. package/dist/application-Ccljinuy.d.ts +0 -57
  72. package/dist/application-DFI1junS.js +0 -70
  73. package/dist/application.unittest-Cmia71Fx.js +0 -43
  74. package/dist/application.unittest-CpoCu6-E.d.ts +0 -26
  75. package/dist/context-BWYE1dif.js +0 -30
  76. package/dist/context-BoIt2G5h.d.ts +0 -24
  77. package/dist/ctx_lifecycle_middleware-CIeSrbVY.js +0 -27
  78. package/dist/ctx_lifecycle_middleware-DV7uN5PG.d.ts +0 -6
  79. package/dist/run_in_background-CEUPBmDB.js +0 -51
  80. package/dist/types-BHg5p4Xk.js +0 -3
  81. package/dist/types-CuoKQV4X.d.ts +0 -7
@@ -1,4 +1,50 @@
1
- import "../../ModuleHandler-Dyx7JGj-.js";
2
- import "../../EggContextHandler-vGi67He5.js";
3
- import { TEggPluginApplication } from "../../application-Ccljinuy.js";
4
- export { TEggPluginApplication as default };
1
+ import { EggPrototypeCreatorFactory, EggPrototypeFactory, EggPrototypeLifecycleUtil, LoadUnitFactory, LoadUnitLifecycleUtil } from '@eggjs/tegg-metadata';
2
+ import { AbstractEggContext, EggContainerFactory, EggObjectFactory, LoadUnitInstanceFactory, EggContextLifecycleUtil, EggObjectLifecycleUtil, LoadUnitInstanceLifecycleUtil, type EggContext as TEggContext } from '@eggjs/tegg-runtime';
3
+ import { LoaderFactory } from '@eggjs/tegg-loader';
4
+ import { type EggProtoImplClass, IdenticalUtil, type RuntimeConfig, type QualifierInfo } from '@eggjs/tegg';
5
+ import { Application } from 'egg';
6
+ import { ModuleHandler } from '../../lib/ModuleHandler.ts';
7
+ import { EggContextHandler } from '../../lib/EggContextHandler.ts';
8
+ export default class TEggPluginApplication extends Application {
9
+ get eggPrototypeCreatorFactory(): typeof EggPrototypeCreatorFactory;
10
+ get eggPrototypeFactory(): EggPrototypeFactory;
11
+ get loadUnitLifecycleUtil(): import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-metadata").LoadUnitLifecycleContext, import("@eggjs/tegg-metadata").LoadUnit>;
12
+ get loadUnitFactory(): typeof LoadUnitFactory;
13
+ get eggObjectFactory(): typeof EggObjectFactory;
14
+ get loadUnitInstanceFactory(): typeof LoadUnitInstanceFactory;
15
+ get loadUnitInstanceLifecycleUtil(): import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").LoadUnitInstanceLifecycleContext, import("@eggjs/tegg-runtime").LoadUnitInstance>;
16
+ get eggContainerFactory(): typeof EggContainerFactory;
17
+ get loaderFactory(): typeof LoaderFactory;
18
+ get eggPrototypeLifecycleUtil(): import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-metadata").EggPrototypeLifecycleContext, import("@eggjs/tegg-metadata").EggPrototype>;
19
+ get eggContextLifecycleUtil(): import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").EggContextLifecycleContext, TEggContext>;
20
+ get eggObjectLifecycleUtil(): import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").EggObjectLifeCycleContext, import("@eggjs/tegg-runtime").EggObject>;
21
+ get abstractEggContext(): typeof AbstractEggContext;
22
+ get identicalUtil(): typeof IdenticalUtil;
23
+ get runtimeConfig(): RuntimeConfig;
24
+ getEggObject<T>(clazz: EggProtoImplClass<T>, name?: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<T>;
25
+ getEggObjectFromName<T extends object>(name: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<T>;
26
+ }
27
+ declare module 'egg' {
28
+ interface Application {
29
+ eggPrototypeCreatorFactory: typeof EggPrototypeCreatorFactory;
30
+ eggPrototypeFactory: EggPrototypeFactory;
31
+ eggContainerFactory: typeof EggContainerFactory;
32
+ loadUnitFactory: typeof LoadUnitFactory;
33
+ eggObjectFactory: typeof EggObjectFactory;
34
+ loadUnitInstanceFactory: typeof LoadUnitInstanceFactory;
35
+ abstractEggContext: typeof AbstractEggContext;
36
+ identicalUtil: typeof IdenticalUtil;
37
+ loaderFactory: typeof LoaderFactory;
38
+ loadUnitLifecycleUtil: typeof LoadUnitLifecycleUtil;
39
+ loadUnitInstanceLifecycleUtil: typeof LoadUnitInstanceLifecycleUtil;
40
+ eggPrototypeLifecycleUtil: typeof EggPrototypeLifecycleUtil;
41
+ eggContextLifecycleUtil: typeof EggContextLifecycleUtil;
42
+ eggObjectLifecycleUtil: typeof EggObjectLifecycleUtil;
43
+ teggContext: TEggContext;
44
+ moduleHandler: ModuleHandler;
45
+ eggContextHandler: EggContextHandler;
46
+ getEggObject<T>(clazz: new (...args: any[]) => T, name?: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<T>;
47
+ getEggObjectFromName<T extends object>(name: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<T>;
48
+ module: EggModule;
49
+ }
50
+ }
@@ -1,10 +1,79 @@
1
- import "../../EggCompatibleProtoImpl-CPxLvSu4.js";
2
- import "../../ModuleConfigLoader-CvZLf99E.js";
3
- import "../../EggAppLoader-DFYg65ry.js";
4
- import "../../EggModuleLoader-CCfQMmp5.js";
5
- import "../../CompatibleUtil-CNhydb0E.js";
6
- import "../../ModuleHandler-fKcUqWca.js";
7
- import "../../EggContextHandler-D8gfTbZs.js";
8
- import { TEggPluginApplication } from "../../application-DFI1junS.js";
9
-
10
- export { TEggPluginApplication as default };
1
+ import { EggPrototypeCreatorFactory, EggPrototypeFactory, EggPrototypeLifecycleUtil, LoadUnitFactory, LoadUnitLifecycleUtil, } from '@eggjs/tegg-metadata';
2
+ import { AbstractEggContext, EggContainerFactory, EggObjectFactory, LoadUnitInstanceFactory, EggContextLifecycleUtil, EggObjectLifecycleUtil, LoadUnitInstanceLifecycleUtil, } from '@eggjs/tegg-runtime';
3
+ import { LoaderFactory } from '@eggjs/tegg-loader';
4
+ import { IdenticalUtil } from '@eggjs/tegg';
5
+ import { Application } from 'egg';
6
+ import { ModuleHandler } from "../../lib/ModuleHandler.js";
7
+ import { EggContextHandler } from "../../lib/EggContextHandler.js";
8
+ export default class TEggPluginApplication extends Application {
9
+ // @eggjs/tegg-metadata should not depend by other egg plugins.
10
+ // May make multi singleton instances.
11
+ // So tegg-compatible should delegate the metadata factories
12
+ // TODO delegate all the singleton
13
+ get eggPrototypeCreatorFactory() {
14
+ return EggPrototypeCreatorFactory;
15
+ }
16
+ get eggPrototypeFactory() {
17
+ return EggPrototypeFactory.instance;
18
+ }
19
+ get loadUnitLifecycleUtil() {
20
+ return LoadUnitLifecycleUtil;
21
+ }
22
+ get loadUnitFactory() {
23
+ return LoadUnitFactory;
24
+ }
25
+ get eggObjectFactory() {
26
+ return EggObjectFactory;
27
+ }
28
+ get loadUnitInstanceFactory() {
29
+ return LoadUnitInstanceFactory;
30
+ }
31
+ get loadUnitInstanceLifecycleUtil() {
32
+ return LoadUnitInstanceLifecycleUtil;
33
+ }
34
+ get eggContainerFactory() {
35
+ return EggContainerFactory;
36
+ }
37
+ get loaderFactory() {
38
+ return LoaderFactory;
39
+ }
40
+ get eggPrototypeLifecycleUtil() {
41
+ return EggPrototypeLifecycleUtil;
42
+ }
43
+ get eggContextLifecycleUtil() {
44
+ return EggContextLifecycleUtil;
45
+ }
46
+ get eggObjectLifecycleUtil() {
47
+ return EggObjectLifecycleUtil;
48
+ }
49
+ get abstractEggContext() {
50
+ return AbstractEggContext;
51
+ }
52
+ get identicalUtil() {
53
+ return IdenticalUtil;
54
+ }
55
+ get runtimeConfig() {
56
+ const config = this.config;
57
+ return {
58
+ baseDir: config.baseDir,
59
+ env: config.env,
60
+ name: config.name,
61
+ };
62
+ }
63
+ async getEggObject(clazz, name, qualifiers) {
64
+ if (qualifiers) {
65
+ qualifiers = Array.isArray(qualifiers) ? qualifiers : [qualifiers];
66
+ }
67
+ const eggObject = await EggContainerFactory.getOrCreateEggObjectFromClazz(clazz, name, qualifiers);
68
+ return eggObject.obj;
69
+ }
70
+ async getEggObjectFromName(name, qualifiers) {
71
+ if (qualifiers) {
72
+ qualifiers = Array.isArray(qualifiers) ? qualifiers : [qualifiers];
73
+ }
74
+ const eggObject = await EggContainerFactory.getOrCreateEggObjectFromName(name, qualifiers);
75
+ return eggObject.obj;
76
+ }
77
+ }
78
+ ;
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxFQUNmLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qiw2QkFBNkIsR0FFOUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUEwQixhQUFhLEVBQTBDLE1BQU0sYUFBYSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXNCLFNBQVEsV0FBVztJQUM1RCwrREFBK0Q7SUFDL0Qsc0NBQXNDO0lBQ3RDLDREQUE0RDtJQUM1RCxrQ0FBa0M7SUFDbEMsSUFBSSwwQkFBMEI7UUFDNUIsT0FBTywwQkFBMEIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSw2QkFBNkI7UUFDL0IsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUkseUJBQXlCO1FBQzNCLE9BQU8seUJBQXlCLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sdUJBQXVCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO1lBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBSSxLQUEyQixFQUFFLElBQWEsRUFBRSxVQUE0QztRQUM1RyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxVQUFVLENBQUUsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FBQyxLQUEwQixFQUFFLElBQUksRUFBRSxVQUE2QixDQUFDLENBQUM7UUFDM0ksT0FBTyxTQUFTLENBQUMsR0FBUSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQW1CLElBQVksRUFBRSxVQUE0QztRQUNyRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxVQUFVLENBQUUsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsVUFBNkIsQ0FBQyxDQUFDO1FBQzlHLE9BQU8sU0FBUyxDQUFDLEdBQVEsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFBQSxDQUFDIn0=
@@ -1,2 +1,22 @@
1
- import { TEggPluginApplicationUnittest } from "../../application.unittest-CpoCu6-E.js";
2
- export { TEggPluginApplicationUnittest as default };
1
+ import { type Context, Application } from 'egg';
2
+ export default class TEggPluginApplicationUnittest extends Application {
3
+ mockModuleContext(data?: any): Promise<Context>;
4
+ destroyModuleContext(ctx: Context): Promise<void>;
5
+ mockModuleContextScope<R = any>(fn: (ctx: Context) => Promise<R>, data?: any): Promise<R>;
6
+ }
7
+ declare module 'egg' {
8
+ interface Application {
9
+ /**
10
+ * Mock the module context, only for unittest
11
+ */
12
+ mockModuleContext(data?: any): Promise<Context>;
13
+ /**
14
+ * Mock the module context scope, only for unittest
15
+ */
16
+ mockModuleContextScope<R = any>(fn: (ctx: Context) => Promise<R>, data?: any): Promise<R>;
17
+ /**
18
+ * Destroy the module context, only for unittest
19
+ */
20
+ destroyModuleContext(context: Context): Promise<void>;
21
+ }
22
+ }
@@ -1,4 +1,55 @@
1
- import "../../EggContextImpl-DkCLPTzT.js";
2
- import { TEggPluginApplicationUnittest } from "../../application.unittest-Cmia71Fx.js";
3
-
4
- export { TEggPluginApplicationUnittest as default };
1
+ import { Application } from 'egg';
2
+ import {} from '@eggjs/tegg-runtime';
3
+ import { EggContextImpl } from "../../lib/EggContextImpl.js";
4
+ const TEGG_LIFECYCLE_CACHE = new Map();
5
+ let hasMockModuleContext = false;
6
+ export default class TEggPluginApplicationUnittest extends Application {
7
+ async mockModuleContext(data) {
8
+ this.deprecate('app.mockModuleContext is deprecated, use mockModuleContextScope.');
9
+ if (hasMockModuleContext) {
10
+ throw new Error('should not call mockModuleContext twice.');
11
+ }
12
+ // @ts-expect-error mockContext is not typed
13
+ const ctx = this.mockContext(data);
14
+ const teggCtx = new EggContextImpl(ctx);
15
+ const lifecycle = {};
16
+ TEGG_LIFECYCLE_CACHE.set(teggCtx, lifecycle);
17
+ if (teggCtx.init) {
18
+ await teggCtx.init(lifecycle);
19
+ }
20
+ hasMockModuleContext = true;
21
+ return ctx;
22
+ }
23
+ async destroyModuleContext(ctx) {
24
+ hasMockModuleContext = false;
25
+ const teggCtx = ctx.teggContext;
26
+ if (!teggCtx) {
27
+ return;
28
+ }
29
+ const lifecycle = TEGG_LIFECYCLE_CACHE.get(teggCtx);
30
+ if (teggCtx.destroy && lifecycle) {
31
+ await teggCtx.destroy(lifecycle);
32
+ }
33
+ }
34
+ async mockModuleContextScope(fn, data) {
35
+ if (hasMockModuleContext) {
36
+ throw new Error('mockModuleContextScope can not use with mockModuleContext, should use mockModuleContextScope only.');
37
+ }
38
+ // @ts-expect-error mockContextScope only exists in MockApplication
39
+ return this.mockContextScope(async (ctx) => {
40
+ const teggCtx = new EggContextImpl(ctx);
41
+ const lifecycle = {};
42
+ if (teggCtx.init) {
43
+ await teggCtx.init(lifecycle);
44
+ }
45
+ try {
46
+ return await fn(ctx);
47
+ }
48
+ finally {
49
+ await teggCtx.destroy(lifecycle);
50
+ }
51
+ }, data);
52
+ }
53
+ }
54
+ ;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24udW5pdHRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi51bml0dGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVoRCxPQUFPLEVBQW9ELE1BQU0scUJBQXFCLENBQUM7QUFFdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE1BQU0sb0JBQW9CLEdBQWdELElBQUksR0FBRyxFQUFFLENBQUM7QUFFcEYsSUFBSSxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sT0FBTyw2QkFBOEIsU0FBUSxXQUFXO0lBQ3BFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFVO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUNuRixJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCw0Q0FBNEM7UUFDNUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQVksQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBWTtRQUNyQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7WUFDakMsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUFRLEVBQWdDLEVBQUUsSUFBVTtRQUM5RSxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvR0FBb0csQ0FBQyxDQUFDO1FBQ3hILENBQUM7UUFDRCxtRUFBbUU7UUFDbkUsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQVksRUFBRSxFQUFFO1lBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFDRCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixDQUFDO29CQUFTLENBQUM7Z0JBQ1QsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0Y7QUFBQSxDQUFDIn0=
@@ -1,2 +1,20 @@
1
- import { TEggPluginContext } from "../../context-BoIt2G5h.js";
2
- export { TEggPluginContext as default };
1
+ import { Context } from 'egg';
2
+ import type { EggContext as TEggContext } from '@eggjs/tegg-runtime';
3
+ import { TEGG_CONTEXT } from '@eggjs/egg-module-common';
4
+ import { type EggProtoImplClass, type QualifierInfo } from '@eggjs/tegg';
5
+ export default class TEggPluginContext extends Context {
6
+ [TEGG_CONTEXT]: TEggContext | undefined;
7
+ beginModuleScope(func: () => Promise<void>): Promise<void>;
8
+ get teggContext(): TEggContext;
9
+ getEggObject<T>(clazz: EggProtoImplClass<T>, name?: string): Promise<T>;
10
+ getEggObjectFromName<T>(name: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<T>;
11
+ }
12
+ declare module 'egg' {
13
+ interface Context {
14
+ beginModuleScope(func: () => Promise<void>): Promise<void>;
15
+ getEggObject<T>(clazz: new (...args: any[]) => T, name?: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<T>;
16
+ getEggObjectFromName<T>(name: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<T>;
17
+ teggContext: TEggContext;
18
+ module: EggModule;
19
+ }
20
+ }
@@ -1,5 +1,35 @@
1
- import "../../EggContextImpl-DkCLPTzT.js";
2
- import "../../ctx_lifecycle_middleware-CIeSrbVY.js";
3
- import { TEggPluginContext } from "../../context-BWYE1dif.js";
4
-
5
- export { TEggPluginContext as default };
1
+ import { Context } from 'egg';
2
+ import { TEGG_CONTEXT } from '@eggjs/egg-module-common';
3
+ import { PrototypeUtil } from '@eggjs/tegg';
4
+ import {} from '@eggjs/tegg-metadata';
5
+ import { ctxLifecycleMiddleware } from "../../lib/ctx_lifecycle_middleware.js";
6
+ export default class TEggPluginContext extends Context {
7
+ [TEGG_CONTEXT];
8
+ async beginModuleScope(func) {
9
+ await ctxLifecycleMiddleware(this, func);
10
+ }
11
+ get teggContext() {
12
+ if (!this[TEGG_CONTEXT]) {
13
+ throw new Error('tegg context have not ready, should call after teggCtxLifecycleMiddleware');
14
+ }
15
+ return this[TEGG_CONTEXT];
16
+ }
17
+ async getEggObject(clazz, name) {
18
+ const protoObj = PrototypeUtil.getClazzProto(clazz);
19
+ if (!protoObj) {
20
+ throw new Error(`can not get proto for clazz ${clazz.name}`);
21
+ }
22
+ const proto = protoObj;
23
+ const eggObject = await this.app.eggContainerFactory.getOrCreateEggObject(proto, name ?? proto.name);
24
+ return eggObject.obj;
25
+ }
26
+ async getEggObjectFromName(name, qualifiers) {
27
+ if (qualifiers) {
28
+ qualifiers = Array.isArray(qualifiers) ? qualifiers : [qualifiers];
29
+ }
30
+ const eggObject = await this.app.eggContainerFactory.getOrCreateEggObjectFromName(name, qualifiers);
31
+ return eggObject.obj;
32
+ }
33
+ }
34
+ ;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvZXh0ZW5kL2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUEwQixhQUFhLEVBQXNCLE1BQU0sYUFBYSxDQUFDO0FBQ3hGLE9BQU8sRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUvRSxNQUFNLENBQUMsT0FBTyxPQUFPLGlCQUFrQixTQUFRLE9BQU87SUFDcEQsQ0FBQyxZQUFZLENBQUMsQ0FBMEI7SUFFeEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQXlCO1FBQzlDLE1BQU0sc0JBQXNCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBSSxLQUEyQixFQUFFLElBQWE7UUFDOUQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUEwQixDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLFFBQXdCLENBQUM7UUFDdkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sU0FBUyxDQUFDLEdBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUFJLElBQVksRUFBRSxVQUE0QztRQUN0RixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxVQUFVLENBQUUsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLDRCQUE0QixDQUFDLElBQUksRUFBRSxVQUE2QixDQUFDLENBQUM7UUFDdkgsT0FBTyxTQUFTLENBQUMsR0FBUSxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQUFBLENBQUMifQ==
@@ -1,6 +1,3 @@
1
- import { ctxLifecycleMiddleware } from "../../ctx_lifecycle_middleware-DV7uN5PG.js";
2
-
3
- //#region src/app/middleware/tegg_ctx_lifecycle_middleware.d.ts
1
+ import { ctxLifecycleMiddleware } from '../../lib/ctx_lifecycle_middleware.ts';
4
2
  declare const _default: () => typeof ctxLifecycleMiddleware;
5
- //#endregion
6
- export { _default as default };
3
+ export default _default;
@@ -1,10 +1,5 @@
1
- import "../../EggContextImpl-DkCLPTzT.js";
2
- import { ctxLifecycleMiddleware } from "../../ctx_lifecycle_middleware-CIeSrbVY.js";
3
-
4
- //#region src/app/middleware/tegg_ctx_lifecycle_middleware.ts
5
- var tegg_ctx_lifecycle_middleware_default = () => {
6
- return ctxLifecycleMiddleware;
1
+ import { ctxLifecycleMiddleware } from "../../lib/ctx_lifecycle_middleware.js";
2
+ export default () => {
3
+ return ctxLifecycleMiddleware;
7
4
  };
8
-
9
- //#endregion
10
- export { tegg_ctx_lifecycle_middleware_default as default };
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVnZ19jdHhfbGlmZWN5Y2xlX21pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL21pZGRsZXdhcmUvdGVnZ19jdHhfbGlmZWN5Y2xlX21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFL0UsZUFBZSxHQUFHLEVBQUU7SUFDbEIsT0FBTyxzQkFBc0IsQ0FBQztBQUNoQyxDQUFDLENBQUMifQ==
package/dist/app.d.ts CHANGED
@@ -1,22 +1,17 @@
1
- import "./AppLoadUnit-BOWdS4O9.js";
2
- import "./AppLoadUnitInstance-DQ-DxlmR.js";
3
- import "./EggCompatibleProtoImpl-DpacWKFB.js";
4
- import "./EggCompatibleObject-lzUCfsIY.js";
5
- import { Application, ILifecycleBoot } from "egg";
6
-
7
- //#region src/app.d.ts
8
- declare class App implements ILifecycleBoot {
9
- private readonly app;
10
- private compatibleHook?;
11
- private eggContextHandler;
12
- private eggQualifierProtoHook;
13
- private loadUnitMultiInstanceProtoHook;
14
- private configSourceEggPrototypeHook;
15
- constructor(app: Application);
16
- configWillLoad(): void;
17
- configDidLoad(): void;
18
- didLoad(): Promise<void>;
19
- beforeClose(): Promise<void>;
1
+ import './lib/AppLoadUnit.ts';
2
+ import './lib/AppLoadUnitInstance.ts';
3
+ import './lib/EggCompatibleObject.ts';
4
+ import type { Application, ILifecycleBoot } from 'egg';
5
+ export default class App implements ILifecycleBoot {
6
+ private readonly app;
7
+ private compatibleHook?;
8
+ private eggContextHandler;
9
+ private eggQualifierProtoHook;
10
+ private loadUnitMultiInstanceProtoHook;
11
+ private configSourceEggPrototypeHook;
12
+ constructor(app: Application);
13
+ configWillLoad(): void;
14
+ configDidLoad(): void;
15
+ didLoad(): Promise<void>;
16
+ beforeClose(): Promise<void>;
20
17
  }
21
- //#endregion
22
- export { App as default };
package/dist/app.js CHANGED
@@ -1,65 +1,63 @@
1
- import "./AppLoadUnit-uyHgElRL.js";
2
- import "./AppLoadUnitInstance-4Z_vSQV3.js";
3
- import "./EggCompatibleProtoImpl-CPxLvSu4.js";
4
- import "./EggCompatibleObject-XfIZyirS.js";
5
- import "./ModuleConfigLoader-CvZLf99E.js";
6
- import "./EggAppLoader-DFYg65ry.js";
7
- import "./EggModuleLoader-CCfQMmp5.js";
8
- import { CompatibleUtil } from "./CompatibleUtil-CNhydb0E.js";
9
- import { ModuleHandler } from "./ModuleHandler-fKcUqWca.js";
10
- import { EggContextCompatibleHook } from "./EggContextCompatibleHook-eFfN2xm6.js";
11
- import { EggContextHandler } from "./EggContextHandler-D8gfTbZs.js";
12
- import "./EggContextImpl-DkCLPTzT.js";
13
- import "./ctx_lifecycle_middleware-CIeSrbVY.js";
14
- import "./context-BWYE1dif.js";
15
- import "./Utils-11aRpnkd.js";
16
- import { hijackRunInBackground } from "./run_in_background-CEUPBmDB.js";
17
- import { EggQualifierProtoHook } from "./EggQualifierProtoHook-D5jNm-1y.js";
18
- import { ConfigSourceLoadUnitHook } from "./ConfigSourceLoadUnitHook-BV-R31vA.js";
19
- import { LoadUnitMultiInstanceProtoHook } from "@eggjs/tegg-metadata";
20
-
21
- //#region src/app.ts
22
- var App = class {
23
- app;
24
- compatibleHook;
25
- eggContextHandler;
26
- eggQualifierProtoHook;
27
- loadUnitMultiInstanceProtoHook;
28
- configSourceEggPrototypeHook;
29
- constructor(app) {
30
- this.app = app;
31
- }
32
- configWillLoad() {
33
- this.app.config.coreMiddleware.push("teggCtxLifecycleMiddleware");
34
- }
35
- configDidLoad() {
36
- this.eggContextHandler = new EggContextHandler(this.app);
37
- this.app.eggContextHandler = this.eggContextHandler;
38
- this.eggContextHandler.register();
39
- this.app.moduleHandler = new ModuleHandler(this.app);
40
- }
41
- async didLoad() {
42
- hijackRunInBackground(this.app);
43
- this.loadUnitMultiInstanceProtoHook = new LoadUnitMultiInstanceProtoHook();
44
- this.app.loadUnitLifecycleUtil.registerLifecycle(this.loadUnitMultiInstanceProtoHook);
45
- this.eggQualifierProtoHook = new EggQualifierProtoHook(this.app);
46
- this.app.loadUnitLifecycleUtil.registerLifecycle(this.eggQualifierProtoHook);
47
- this.configSourceEggPrototypeHook = new ConfigSourceLoadUnitHook();
48
- this.app.loadUnitLifecycleUtil.registerLifecycle(this.configSourceEggPrototypeHook);
49
- await this.app.moduleHandler.init();
50
- this.compatibleHook = new EggContextCompatibleHook(this.app.moduleHandler);
51
- this.app.eggContextLifecycleUtil.registerLifecycle(this.compatibleHook);
52
- }
53
- async beforeClose() {
54
- CompatibleUtil.clean();
55
- await this.app.moduleHandler.destroy();
56
- if (this.compatibleHook) this.app.eggContextLifecycleUtil.deleteLifecycle(this.compatibleHook);
57
- if (this.eggQualifierProtoHook) this.app.loadUnitLifecycleUtil.deleteLifecycle(this.eggQualifierProtoHook);
58
- if (this.configSourceEggPrototypeHook) this.app.loadUnitLifecycleUtil.deleteLifecycle(this.configSourceEggPrototypeHook);
59
- if (this.loadUnitMultiInstanceProtoHook) this.app.loadUnitLifecycleUtil.deleteLifecycle(this.loadUnitMultiInstanceProtoHook);
60
- LoadUnitMultiInstanceProtoHook.clear();
61
- }
62
- };
63
-
64
- //#endregion
65
- export { App as default };
1
+ import "./lib/AppLoadUnit.js";
2
+ import "./lib/AppLoadUnitInstance.js";
3
+ import "./lib/EggCompatibleObject.js";
4
+ import { LoadUnitMultiInstanceProtoHook } from '@eggjs/tegg-metadata';
5
+ import { EggContextCompatibleHook } from "./lib/EggContextCompatibleHook.js";
6
+ import { CompatibleUtil } from "./lib/CompatibleUtil.js";
7
+ import { ModuleHandler } from "./lib/ModuleHandler.js";
8
+ import { EggContextHandler } from "./lib/EggContextHandler.js";
9
+ import { hijackRunInBackground } from "./lib/run_in_background.js";
10
+ import { EggQualifierProtoHook } from "./lib/EggQualifierProtoHook.js";
11
+ import { ConfigSourceLoadUnitHook } from "./lib/ConfigSourceLoadUnitHook.js";
12
+ export default class App {
13
+ app;
14
+ compatibleHook;
15
+ eggContextHandler;
16
+ eggQualifierProtoHook;
17
+ loadUnitMultiInstanceProtoHook;
18
+ configSourceEggPrototypeHook;
19
+ constructor(app) {
20
+ this.app = app;
21
+ }
22
+ configWillLoad() {
23
+ this.app.config.coreMiddleware.push('teggCtxLifecycleMiddleware');
24
+ }
25
+ configDidLoad() {
26
+ this.eggContextHandler = new EggContextHandler(this.app);
27
+ this.app.eggContextHandler = this.eggContextHandler;
28
+ this.eggContextHandler.register();
29
+ this.app.moduleHandler = new ModuleHandler(this.app);
30
+ }
31
+ async didLoad() {
32
+ hijackRunInBackground(this.app);
33
+ this.loadUnitMultiInstanceProtoHook = new LoadUnitMultiInstanceProtoHook();
34
+ this.app.loadUnitLifecycleUtil.registerLifecycle(this.loadUnitMultiInstanceProtoHook);
35
+ // wait all file loaded, so app/ctx has all properties
36
+ this.eggQualifierProtoHook = new EggQualifierProtoHook(this.app);
37
+ this.app.loadUnitLifecycleUtil.registerLifecycle(this.eggQualifierProtoHook);
38
+ this.configSourceEggPrototypeHook = new ConfigSourceLoadUnitHook();
39
+ this.app.loadUnitLifecycleUtil.registerLifecycle(this.configSourceEggPrototypeHook);
40
+ // start load tegg objects
41
+ await this.app.moduleHandler.init();
42
+ this.compatibleHook = new EggContextCompatibleHook(this.app.moduleHandler);
43
+ this.app.eggContextLifecycleUtil.registerLifecycle(this.compatibleHook);
44
+ }
45
+ async beforeClose() {
46
+ CompatibleUtil.clean();
47
+ await this.app.moduleHandler.destroy();
48
+ if (this.compatibleHook) {
49
+ this.app.eggContextLifecycleUtil.deleteLifecycle(this.compatibleHook);
50
+ }
51
+ if (this.eggQualifierProtoHook) {
52
+ this.app.loadUnitLifecycleUtil.deleteLifecycle(this.eggQualifierProtoHook);
53
+ }
54
+ if (this.configSourceEggPrototypeHook) {
55
+ this.app.loadUnitLifecycleUtil.deleteLifecycle(this.configSourceEggPrototypeHook);
56
+ }
57
+ if (this.loadUnitMultiInstanceProtoHook) {
58
+ this.app.loadUnitLifecycleUtil.deleteLifecycle(this.loadUnitMultiInstanceProtoHook);
59
+ }
60
+ LoadUnitMultiInstanceProtoHook.clear();
61
+ }
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sOEJBQThCLENBQUM7QUFDdEMsT0FBTyw4QkFBOEIsQ0FBQztBQUd0QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sR0FBRztJQUNMLEdBQUcsQ0FBYztJQUMxQixjQUFjLENBQTRCO0lBQzFDLGlCQUFpQixDQUFvQjtJQUNyQyxxQkFBcUIsQ0FBd0I7SUFDN0MsOEJBQThCLENBQWlDO0lBQy9ELDRCQUE0QixDQUEyQjtJQUUvRCxZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pE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
package/dist/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import "./ModuleHandler-Dyx7JGj-.js";
2
- import "./EggContextHandler-vGi67He5.js";
3
- import "./application-Ccljinuy.js";
4
- import "./application.unittest-CpoCu6-E.js";
5
- import "./context-BoIt2G5h.js";
6
- import "./types-CuoKQV4X.js";
1
+ import './types.ts';
2
+ export * from './app/extend/application.ts';
3
+ export * from './app/extend/context.ts';
package/dist/index.js CHANGED
@@ -1,15 +1,4 @@
1
- import "./EggCompatibleProtoImpl-CPxLvSu4.js";
2
- import "./ModuleConfigLoader-CvZLf99E.js";
3
- import "./EggAppLoader-DFYg65ry.js";
4
- import "./EggModuleLoader-CCfQMmp5.js";
5
- import "./CompatibleUtil-CNhydb0E.js";
6
- import "./ModuleHandler-fKcUqWca.js";
7
- import "./EggContextHandler-D8gfTbZs.js";
8
- import "./EggContextImpl-DkCLPTzT.js";
9
- import "./ctx_lifecycle_middleware-CIeSrbVY.js";
10
- import "./context-BWYE1dif.js";
11
- import "./application-DFI1junS.js";
12
- import "./application.unittest-Cmia71Fx.js";
13
- import "./types-BHg5p4Xk.js";
14
-
15
- export { };
1
+ import "./types.js";
2
+ export * from "./app/extend/application.js";
3
+ export * from "./app/extend/context.js";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUM7QUFFcEIsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDIn0=
@@ -1,2 +1,19 @@
1
- import { AppLoadUnit } from "../AppLoadUnit-BOWdS4O9.js";
2
- export { AppLoadUnit };
1
+ import { type EggLoadUnitTypeLike, type EggPrototype, type Loader, type LoadUnit, type LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
2
+ import { type Id, type QualifierInfo } from '@eggjs/tegg';
3
+ export declare class AppLoadUnit implements LoadUnit {
4
+ private readonly loader;
5
+ id: Id;
6
+ readonly name: string;
7
+ readonly type: EggLoadUnitTypeLike;
8
+ readonly unitPath: string;
9
+ private protoMap;
10
+ constructor(name: string, unitPath: string, loader: Loader);
11
+ init(): Promise<void>;
12
+ containPrototype(proto: EggPrototype): boolean;
13
+ getEggPrototype(name: string, qualifiers: QualifierInfo[]): EggPrototype[];
14
+ registerEggPrototype(proto: EggPrototype): void;
15
+ deletePrototype(proto: EggPrototype): void;
16
+ destroy(): Promise<void>;
17
+ iterateEggPrototype(): IterableIterator<EggPrototype>;
18
+ static createModule(ctx: LoadUnitLifecycleContext): AppLoadUnit;
19
+ }