@eggjs/tegg-plugin 4.0.0-beta.7 → 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 (49) hide show
  1. package/dist/app/extend/application.d.ts +47 -54
  2. package/dist/app/extend/application.js +79 -72
  3. package/dist/app/extend/application.unittest.d.ts +19 -23
  4. package/dist/app/extend/application.unittest.js +53 -41
  5. package/dist/app/extend/context.d.ts +17 -21
  6. package/dist/app/extend/context.js +34 -29
  7. package/dist/app/middleware/tegg_ctx_lifecycle_middleware.d.ts +2 -5
  8. package/dist/app/middleware/tegg_ctx_lifecycle_middleware.js +3 -7
  9. package/dist/app.d.ts +16 -18
  10. package/dist/app.js +54 -48
  11. package/dist/index.d.ts +3 -1
  12. package/dist/index.js +3 -4
  13. package/dist/lib/AppLoadUnit.d.ts +18 -22
  14. package/dist/lib/AppLoadUnit.js +89 -77
  15. package/dist/lib/AppLoadUnitInstance.d.ts +19 -23
  16. package/dist/lib/AppLoadUnitInstance.js +81 -68
  17. package/dist/lib/CompatibleUtil.d.ts +13 -17
  18. package/dist/lib/CompatibleUtil.js +95 -96
  19. package/dist/lib/ConfigSourceLoadUnitHook.d.ts +4 -9
  20. package/dist/lib/ConfigSourceLoadUnitHook.js +20 -21
  21. package/dist/lib/EggAppLoader.d.ts +15 -19
  22. package/dist/lib/EggAppLoader.js +127 -105
  23. package/dist/lib/EggCompatibleObject.d.ts +16 -19
  24. package/dist/lib/EggCompatibleObject.js +40 -35
  25. package/dist/lib/EggCompatibleProtoImpl.d.ts +20 -24
  26. package/dist/lib/EggCompatibleProtoImpl.js +52 -50
  27. package/dist/lib/EggContextCompatibleHook.d.ts +9 -13
  28. package/dist/lib/EggContextCompatibleHook.js +44 -32
  29. package/dist/lib/EggContextHandler.d.ts +8 -12
  30. package/dist/lib/EggContextHandler.js +26 -29
  31. package/dist/lib/EggContextImpl.d.ts +5 -9
  32. package/dist/lib/EggContextImpl.js +15 -18
  33. package/dist/lib/EggModuleLoader.d.ts +10 -14
  34. package/dist/lib/EggModuleLoader.js +53 -49
  35. package/dist/lib/EggQualifierProtoHook.d.ts +9 -13
  36. package/dist/lib/EggQualifierProtoHook.js +62 -48
  37. package/dist/lib/ModuleConfigLoader.d.ts +7 -11
  38. package/dist/lib/ModuleConfigLoader.js +80 -83
  39. package/dist/lib/ModuleHandler.d.ts +12 -16
  40. package/dist/lib/ModuleHandler.js +51 -44
  41. package/dist/lib/Utils.d.ts +1 -4
  42. package/dist/lib/Utils.js +33 -30
  43. package/dist/lib/ctx_lifecycle_middleware.d.ts +2 -6
  44. package/dist/lib/ctx_lifecycle_middleware.js +31 -25
  45. package/dist/lib/run_in_background.d.ts +3 -7
  46. package/dist/lib/run_in_background.js +54 -48
  47. package/dist/types.d.ts +7 -6
  48. package/dist/types.js +3 -4
  49. package/package.json +12 -12
@@ -1,14 +1,10 @@
1
- import { LoadUnit, LoadUnitLifecycleContext } from "@eggjs/tegg-metadata";
2
- import { LifecycleHook } from "@eggjs/tegg";
3
- import { Application } from "egg";
4
-
5
- //#region src/lib/EggQualifierProtoHook.d.ts
6
- declare class EggQualifierProtoHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
7
- private readonly app;
8
- constructor(app: Application);
9
- preCreate(ctx: LoadUnitLifecycleContext): Promise<void>;
10
- private isAppObject;
11
- private isCtxObject;
1
+ import { type LoadUnitLifecycleContext, type LoadUnit } from '@eggjs/tegg-metadata';
2
+ import { type LifecycleHook } from '@eggjs/tegg';
3
+ import { Application } from 'egg';
4
+ export declare class EggQualifierProtoHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
5
+ private readonly app;
6
+ constructor(app: Application);
7
+ preCreate(ctx: LoadUnitLifecycleContext): Promise<void>;
8
+ private isAppObject;
9
+ private isCtxObject;
12
10
  }
13
- //#endregion
14
- export { EggQualifierProtoHook };
@@ -1,48 +1,62 @@
1
- import { APP_CLAZZ_BLACK_LIST, CONTEXT_CLAZZ_BLACK_LIST, DEFAULT_APP_CLAZZ, DEFAULT_CONTEXT_CLAZZ } from "./EggAppLoader.js";
2
- import { debuglog } from "node:util";
3
- import "@eggjs/tegg-metadata";
4
- import { EggQualifierAttribute, EggType, PrototypeUtil, QualifierUtil } from "@eggjs/tegg";
5
- import { ObjectUtils } from "@eggjs/tegg-common-util";
6
- import { Application } from "egg";
7
-
8
- //#region src/lib/EggQualifierProtoHook.ts
9
- const debug = debuglog("tegg/plugin/tegg/lib/EggQualifierProtoHook");
10
- var EggQualifierProtoHook = class {
11
- app;
12
- constructor(app) {
13
- this.app = app;
14
- }
15
- async preCreate(ctx) {
16
- const clazzList = await ctx.loader.load();
17
- const appProperties = ObjectUtils.getProperties(this.app);
18
- const ctxProperties = ObjectUtils.getProperties(this.app.context);
19
- if (debug.enabled) debug("preCreate, get clazzList:%o, appProperties:%o, ctxProperties:%o, from unitPath:%o", clazzList.map((t) => t.name), appProperties.length, ctxProperties.length, ctx.unitPath);
20
- for (const clazz of clazzList) {
21
- const inbjectObjects = PrototypeUtil.getInjectObjects(clazz) || [];
22
- if (debug.enabled && inbjectObjects.length > 0) debug("preCreate, get injectObjects:%o, from clazz:%o, from unitPath:%o", inbjectObjects.map((t) => t.refName), clazz.name, ctx.unitPath);
23
- for (const injectObject of inbjectObjects) {
24
- if (QualifierUtil.getProperQualifiers(clazz, injectObject.refName).find((t) => t.attribute === EggQualifierAttribute)) continue;
25
- if (this.isCtxObject(injectObject.objName, ctxProperties)) QualifierUtil.addProperQualifier(clazz, injectObject.refName, EggQualifierAttribute, EggType.CONTEXT);
26
- else if (this.isAppObject(injectObject.objName, appProperties)) {
27
- QualifierUtil.addProperQualifier(clazz, injectObject.refName, EggQualifierAttribute, EggType.APP);
28
- debug("preCreate, add proper qualifier:%o to clazz:%o, from unitPath:%o", injectObject.refName, clazz.name, ctx.unitPath);
29
- }
30
- }
31
- }
32
- }
33
- isAppObject(name, appProperties) {
34
- name = String(name);
35
- if (APP_CLAZZ_BLACK_LIST.includes(name)) return false;
36
- if (DEFAULT_APP_CLAZZ.includes(name)) return true;
37
- return appProperties.includes(name);
38
- }
39
- isCtxObject(name, ctxProperties) {
40
- name = String(name);
41
- if (CONTEXT_CLAZZ_BLACK_LIST.includes(name)) return false;
42
- if (DEFAULT_CONTEXT_CLAZZ.includes(name)) return true;
43
- return ctxProperties.includes(name);
44
- }
45
- };
46
-
47
- //#endregion
48
- export { EggQualifierProtoHook };
1
+ import { debuglog } from 'node:util';
2
+ import {} from '@eggjs/tegg-metadata';
3
+ import { PrototypeUtil, QualifierUtil, EggQualifierAttribute, EggType, } from '@eggjs/tegg';
4
+ import { Application } from 'egg';
5
+ import { APP_CLAZZ_BLACK_LIST, CONTEXT_CLAZZ_BLACK_LIST, DEFAULT_APP_CLAZZ, DEFAULT_CONTEXT_CLAZZ, } from './EggAppLoader.js';
6
+ import { ObjectUtils } from '@eggjs/tegg-common-util';
7
+ const debug = debuglog('tegg/plugin/tegg/lib/EggQualifierProtoHook');
8
+ export class EggQualifierProtoHook {
9
+ app;
10
+ constructor(app) {
11
+ this.app = app;
12
+ }
13
+ async preCreate(ctx) {
14
+ const clazzList = await ctx.loader.load();
15
+ const appProperties = ObjectUtils.getProperties(this.app);
16
+ const ctxProperties = ObjectUtils.getProperties(this.app.context);
17
+ if (debug.enabled) {
18
+ debug('preCreate, get clazzList:%o, appProperties:%o, ctxProperties:%o, from unitPath:%o', clazzList.map(t => t.name), appProperties.length, ctxProperties.length, ctx.unitPath);
19
+ }
20
+ for (const clazz of clazzList) {
21
+ const inbjectObjects = PrototypeUtil.getInjectObjects(clazz) || [];
22
+ if (debug.enabled && inbjectObjects.length > 0) {
23
+ debug('preCreate, get injectObjects:%o, from clazz:%o, from unitPath:%o', inbjectObjects.map(t => t.refName), clazz.name, ctx.unitPath);
24
+ }
25
+ for (const injectObject of inbjectObjects) {
26
+ const propertyQualifiers = QualifierUtil.getProperQualifiers(clazz, injectObject.refName);
27
+ const hasEggQualifier = propertyQualifiers.find(t => t.attribute === EggQualifierAttribute);
28
+ if (hasEggQualifier) {
29
+ continue;
30
+ }
31
+ if (this.isCtxObject(injectObject.objName, ctxProperties)) {
32
+ QualifierUtil.addProperQualifier(clazz, injectObject.refName, EggQualifierAttribute, EggType.CONTEXT);
33
+ }
34
+ else if (this.isAppObject(injectObject.objName, appProperties)) {
35
+ QualifierUtil.addProperQualifier(clazz, injectObject.refName, EggQualifierAttribute, EggType.APP);
36
+ debug('preCreate, add proper qualifier:%o to clazz:%o, from unitPath:%o', injectObject.refName, clazz.name, ctx.unitPath);
37
+ }
38
+ }
39
+ }
40
+ }
41
+ isAppObject(name, appProperties) {
42
+ name = String(name);
43
+ if (APP_CLAZZ_BLACK_LIST.includes(name)) {
44
+ return false;
45
+ }
46
+ if (DEFAULT_APP_CLAZZ.includes(name)) {
47
+ return true;
48
+ }
49
+ return appProperties.includes(name);
50
+ }
51
+ isCtxObject(name, ctxProperties) {
52
+ name = String(name);
53
+ if (CONTEXT_CLAZZ_BLACK_LIST.includes(name)) {
54
+ return false;
55
+ }
56
+ if (DEFAULT_CONTEXT_CLAZZ.includes(name)) {
57
+ return true;
58
+ }
59
+ return ctxProperties.includes(name);
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUXVhbGlmaWVyUHJvdG9Ib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9FZ2dRdWFsaWZpZXJQcm90b0hvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQWdELE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUVMLGFBQWEsRUFDYixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLE9BQU8sR0FDUixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFFckUsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLEdBQUcsQ0FBYztJQUVsQyxZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQTZCO1FBQzNDLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsS0FBSyxDQUFDLG1GQUFtRixFQUN2RixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUNELEtBQUssTUFBTSxLQUFLLElBQUksU0FBUyxFQUFFLENBQUM7WUFDOUIsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuRSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsS0FBSyxDQUFDLGtFQUFrRSxFQUN0RSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7WUFDRCxLQUFLLE1BQU0sWUFBWSxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMxRixNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLHFCQUFxQixDQUFDLENBQUM7Z0JBQzVGLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3BCLFNBQVM7Z0JBQ1gsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDO29CQUMxRCxhQUFhLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN4RyxDQUFDO3FCQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7b0JBQ2pFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2xHLEtBQUssQ0FBQyxrRUFBa0UsRUFDdEUsWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFpQixFQUFFLGFBQXVCO1FBQzVELElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sV0FBVyxDQUFDLElBQWlCLEVBQUUsYUFBdUI7UUFDNUQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUkscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRiJ9
@@ -1,12 +1,8 @@
1
- import { EggProtoImplClass } from "@eggjs/tegg";
2
- import { Application } from "egg";
3
-
4
- //#region src/lib/ModuleConfigLoader.d.ts
5
- declare class ModuleConfigLoader {
6
- readonly app: Application;
7
- constructor(app: Application);
8
- private loadModuleConfigs;
9
- loadModuleConfigList(): EggProtoImplClass[];
1
+ import { type EggProtoImplClass } from '@eggjs/tegg';
2
+ import { Application } from 'egg';
3
+ export declare class ModuleConfigLoader {
4
+ readonly app: Application;
5
+ constructor(app: Application);
6
+ private loadModuleConfigs;
7
+ loadModuleConfigList(): EggProtoImplClass[];
10
8
  }
11
- //#endregion
12
- export { ModuleConfigLoader };
@@ -1,84 +1,81 @@
1
+ import { AccessLevel, EggQualifierAttribute, EggType, InitTypeQualifierAttribute, LoadUnitNameQualifierAttribute, ModuleConfigs, ObjectInitType, PrototypeUtil, QualifierUtil, ConfigSourceQualifierAttribute, } from '@eggjs/tegg';
2
+ import { ModuleConfigUtil } from '@eggjs/tegg/helper';
3
+ import { Application } from 'egg';
4
+ import { extend } from 'extend2';
1
5
  import { COMPATIBLE_PROTO_IMPLE_TYPE } from "./EggCompatibleProtoImpl.js";
2
- import { AccessLevel, ConfigSourceQualifierAttribute, EggQualifierAttribute, EggType, InitTypeQualifierAttribute, LoadUnitNameQualifierAttribute, ModuleConfigs, ObjectInitType, PrototypeUtil, QualifierUtil } from "@eggjs/tegg";
3
- import { Application } from "egg";
4
- import { ModuleConfigUtil } from "@eggjs/tegg/helper";
5
- import { extend } from "extend2";
6
-
7
- //#region src/lib/ModuleConfigLoader.ts
8
- var ModuleConfigLoader = class {
9
- app;
10
- constructor(app) {
11
- this.app = app;
12
- }
13
- loadModuleConfigs(moduleConfigMap) {
14
- const moduleConfigs = new ModuleConfigs(moduleConfigMap);
15
- const func = function() {
16
- return moduleConfigs;
17
- };
18
- const name = "moduleConfigs";
19
- Object.defineProperty(func, "name", {
20
- value: name,
21
- writable: false,
22
- enumerable: false,
23
- configurable: true
24
- });
25
- PrototypeUtil.setIsEggPrototype(func);
26
- PrototypeUtil.setFilePath(func, "mock_file_path");
27
- PrototypeUtil.setProperty(func, {
28
- name,
29
- initType: ObjectInitType.SINGLETON,
30
- accessLevel: AccessLevel.PUBLIC,
31
- protoImplType: COMPATIBLE_PROTO_IMPLE_TYPE
32
- });
33
- QualifierUtil.addProtoQualifier(func, LoadUnitNameQualifierAttribute, "app");
34
- QualifierUtil.addProtoQualifier(func, InitTypeQualifierAttribute, ObjectInitType.SINGLETON);
35
- QualifierUtil.addProtoQualifier(func, EggQualifierAttribute, EggType.APP);
36
- return func;
37
- }
38
- loadModuleConfigList() {
39
- const result = [];
40
- const moduleConfigMap = {};
41
- for (const reference of this.app.moduleReferences) {
42
- const moduleName = ModuleConfigUtil.readModuleNameSync(reference.path);
43
- const defaultConfig = ModuleConfigUtil.loadModuleConfigSync(reference.path, void 0, this.app.config.env);
44
- const config = extend(true, {}, defaultConfig, this.app.moduleConfigs[moduleName]?.config);
45
- moduleConfigMap[moduleName] = {
46
- name: moduleName,
47
- reference: {
48
- name: moduleName,
49
- path: reference.path
50
- },
51
- config
52
- };
53
- const func = function() {
54
- return config;
55
- };
56
- const name = "moduleConfig";
57
- Object.defineProperty(func, "name", {
58
- value: name,
59
- writable: false,
60
- enumerable: false,
61
- configurable: true
62
- });
63
- PrototypeUtil.setIsEggPrototype(func);
64
- PrototypeUtil.setFilePath(func, "mock_file_path");
65
- PrototypeUtil.setProperty(func, {
66
- name,
67
- initType: ObjectInitType.SINGLETON,
68
- accessLevel: AccessLevel.PUBLIC,
69
- protoImplType: COMPATIBLE_PROTO_IMPLE_TYPE
70
- });
71
- QualifierUtil.addProtoQualifier(func, LoadUnitNameQualifierAttribute, "app");
72
- QualifierUtil.addProtoQualifier(func, InitTypeQualifierAttribute, ObjectInitType.SINGLETON);
73
- QualifierUtil.addProtoQualifier(func, EggQualifierAttribute, EggType.APP);
74
- QualifierUtil.addProtoQualifier(func, ConfigSourceQualifierAttribute, moduleName);
75
- result.push(func);
76
- }
77
- const moduleConfigs = this.loadModuleConfigs(moduleConfigMap);
78
- result.push(moduleConfigs);
79
- return result;
80
- }
81
- };
82
-
83
- //#endregion
84
- export { ModuleConfigLoader };
6
+ export class ModuleConfigLoader {
7
+ app;
8
+ constructor(app) {
9
+ this.app = app;
10
+ }
11
+ loadModuleConfigs(moduleConfigMap) {
12
+ const moduleConfigs = new ModuleConfigs(moduleConfigMap);
13
+ const func = function () {
14
+ return moduleConfigs;
15
+ };
16
+ const name = 'moduleConfigs';
17
+ Object.defineProperty(func, 'name', {
18
+ value: name,
19
+ writable: false,
20
+ enumerable: false,
21
+ configurable: true,
22
+ });
23
+ PrototypeUtil.setIsEggPrototype(func);
24
+ PrototypeUtil.setFilePath(func, 'mock_file_path');
25
+ PrototypeUtil.setProperty(func, {
26
+ name,
27
+ initType: ObjectInitType.SINGLETON,
28
+ accessLevel: AccessLevel.PUBLIC,
29
+ protoImplType: COMPATIBLE_PROTO_IMPLE_TYPE,
30
+ });
31
+ QualifierUtil.addProtoQualifier(func, LoadUnitNameQualifierAttribute, 'app');
32
+ QualifierUtil.addProtoQualifier(func, InitTypeQualifierAttribute, ObjectInitType.SINGLETON);
33
+ QualifierUtil.addProtoQualifier(func, EggQualifierAttribute, EggType.APP);
34
+ return func;
35
+ }
36
+ loadModuleConfigList() {
37
+ const result = [];
38
+ const moduleConfigMap = {};
39
+ for (const reference of this.app.moduleReferences) {
40
+ const moduleName = ModuleConfigUtil.readModuleNameSync(reference.path);
41
+ const defaultConfig = ModuleConfigUtil.loadModuleConfigSync(reference.path, undefined, this.app.config.env);
42
+ // @eggjs/tegg-config moduleConfigs[module].config overwrite
43
+ const config = extend(true, {}, defaultConfig, this.app.moduleConfigs[moduleName]?.config);
44
+ moduleConfigMap[moduleName] = {
45
+ name: moduleName,
46
+ reference: {
47
+ name: moduleName,
48
+ path: reference.path,
49
+ },
50
+ config,
51
+ };
52
+ const func = function () {
53
+ return config;
54
+ };
55
+ const name = 'moduleConfig';
56
+ Object.defineProperty(func, 'name', {
57
+ value: name,
58
+ writable: false,
59
+ enumerable: false,
60
+ configurable: true,
61
+ });
62
+ PrototypeUtil.setIsEggPrototype(func);
63
+ PrototypeUtil.setFilePath(func, 'mock_file_path');
64
+ PrototypeUtil.setProperty(func, {
65
+ name,
66
+ initType: ObjectInitType.SINGLETON,
67
+ accessLevel: AccessLevel.PUBLIC,
68
+ protoImplType: COMPATIBLE_PROTO_IMPLE_TYPE,
69
+ });
70
+ QualifierUtil.addProtoQualifier(func, LoadUnitNameQualifierAttribute, 'app');
71
+ QualifierUtil.addProtoQualifier(func, InitTypeQualifierAttribute, ObjectInitType.SINGLETON);
72
+ QualifierUtil.addProtoQualifier(func, EggQualifierAttribute, EggType.APP);
73
+ QualifierUtil.addProtoQualifier(func, ConfigSourceQualifierAttribute, moduleName);
74
+ result.push(func);
75
+ }
76
+ const moduleConfigs = this.loadModuleConfigs(moduleConfigMap);
77
+ result.push(moduleConfigs);
78
+ return result;
79
+ }
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlQ29uZmlnTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9Nb2R1bGVDb25maWdMb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxxQkFBcUIsRUFDckIsT0FBTyxFQUNQLDBCQUEwQixFQUMxQiw4QkFBOEIsRUFBRSxhQUFhLEVBQzdDLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNZLDhCQUE4QixHQUN4RCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFakMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixHQUFHLENBQWM7SUFDMUIsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRU8saUJBQWlCLENBQUMsZUFBbUQ7UUFDM0UsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFJLEdBQXNCO1lBQzlCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQVEsQ0FBQztRQUNULE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUM3QixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDbEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztR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
@@ -1,17 +1,13 @@
1
- import { LoadUnit } from "@eggjs/tegg-metadata";
2
- import { LoadUnitInstance } from "@eggjs/tegg-runtime";
3
- import { Base } from "sdk-base";
4
- import { Application } from "egg";
5
-
6
- //#region src/lib/ModuleHandler.d.ts
7
- declare class ModuleHandler extends Base {
8
- loadUnits: LoadUnit[];
9
- loadUnitInstances: LoadUnitInstance[];
10
- private readonly loadUnitLoader;
11
- private readonly app;
12
- constructor(app: Application);
13
- init(): Promise<void>;
14
- destroy(): Promise<void>;
1
+ import { Base } from 'sdk-base';
2
+ import { Application } from 'egg';
3
+ import { type LoadUnit } from '@eggjs/tegg-metadata';
4
+ import { type LoadUnitInstance } from '@eggjs/tegg-runtime';
5
+ export declare class ModuleHandler extends Base {
6
+ loadUnits: LoadUnit[];
7
+ loadUnitInstances: LoadUnitInstance[];
8
+ private readonly loadUnitLoader;
9
+ private readonly app;
10
+ constructor(app: Application);
11
+ init(): Promise<void>;
12
+ destroy(): Promise<void>;
15
13
  }
16
- //#endregion
17
- export { ModuleHandler };
@@ -1,46 +1,53 @@
1
- import { COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl } from "./EggCompatibleProtoImpl.js";
1
+ import { Base } from 'sdk-base';
2
+ import { Application, Context } from 'egg';
3
+ import { EggLoadUnitType, LoadUnitFactory, } from '@eggjs/tegg-metadata';
4
+ import { LoadUnitInstanceFactory } from '@eggjs/tegg-runtime';
2
5
  import { EggModuleLoader } from "./EggModuleLoader.js";
3
6
  import { CompatibleUtil } from "./CompatibleUtil.js";
4
- import { EggLoadUnitType, LoadUnitFactory } from "@eggjs/tegg-metadata";
5
- import { LoadUnitInstanceFactory } from "@eggjs/tegg-runtime";
6
- import { Base } from "sdk-base";
7
- import { Application, Context } from "egg";
8
-
9
- //#region src/lib/ModuleHandler.ts
10
- var ModuleHandler = class extends Base {
11
- loadUnits = [];
12
- loadUnitInstances = [];
13
- loadUnitLoader;
14
- app;
15
- constructor(app) {
16
- super();
17
- this.app = app;
18
- this.loadUnitLoader = new EggModuleLoader(this.app);
19
- }
20
- async init() {
21
- try {
22
- this.app.eggPrototypeCreatorFactory.registerPrototypeCreator(COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl.create);
23
- await this.loadUnitLoader.load();
24
- const instances = [];
25
- this.app.module = {};
26
- for (const loadUnit of this.loadUnits) {
27
- const instance = await LoadUnitInstanceFactory.createLoadUnitInstance(loadUnit);
28
- if (instance.loadUnit.type !== EggLoadUnitType.APP) CompatibleUtil.appCompatible(this.app, instance);
29
- instances.push(instance);
30
- }
31
- CompatibleUtil.contextModuleCompatible(this.app.context, instances);
32
- this.loadUnitInstances = instances;
33
- this.ready(true);
34
- } catch (e) {
35
- this.ready(e);
36
- throw e;
37
- }
38
- }
39
- async destroy() {
40
- if (this.loadUnitInstances) for (const instance of this.loadUnitInstances) await LoadUnitInstanceFactory.destroyLoadUnitInstance(instance);
41
- if (this.loadUnits) for (const loadUnit of this.loadUnits) await LoadUnitFactory.destroyLoadUnit(loadUnit);
42
- }
43
- };
44
-
45
- //#endregion
46
- export { ModuleHandler };
7
+ import { COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl } from "./EggCompatibleProtoImpl.js";
8
+ export class ModuleHandler extends Base {
9
+ loadUnits = [];
10
+ loadUnitInstances = [];
11
+ loadUnitLoader;
12
+ app;
13
+ constructor(app) {
14
+ super();
15
+ this.app = app;
16
+ this.loadUnitLoader = new EggModuleLoader(this.app);
17
+ }
18
+ async init() {
19
+ try {
20
+ this.app.eggPrototypeCreatorFactory.registerPrototypeCreator(COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl.create);
21
+ await this.loadUnitLoader.load();
22
+ const instances = [];
23
+ this.app.module = {};
24
+ for (const loadUnit of this.loadUnits) {
25
+ const instance = await LoadUnitInstanceFactory.createLoadUnitInstance(loadUnit);
26
+ if (instance.loadUnit.type !== EggLoadUnitType.APP) {
27
+ CompatibleUtil.appCompatible(this.app, instance);
28
+ }
29
+ instances.push(instance);
30
+ }
31
+ CompatibleUtil.contextModuleCompatible(this.app.context, instances);
32
+ this.loadUnitInstances = instances;
33
+ this.ready(true);
34
+ }
35
+ catch (e) {
36
+ this.ready(e);
37
+ throw e;
38
+ }
39
+ }
40
+ async destroy() {
41
+ if (this.loadUnitInstances) {
42
+ for (const instance of this.loadUnitInstances) {
43
+ await LoadUnitInstanceFactory.destroyLoadUnitInstance(instance);
44
+ }
45
+ }
46
+ if (this.loadUnits) {
47
+ for (const loadUnit of this.loadUnits) {
48
+ await LoadUnitFactory.destroyLoadUnit(loadUnit);
49
+ }
50
+ }
51
+ }
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvTW9kdWxlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBRWYsZUFBZSxHQUNoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBeUIsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxHLE1BQU0sT0FBTyxhQUFjLFNBQVEsSUFBSTtJQUNyQyxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBQzNCLGlCQUFpQixHQUF1QixFQUFFLENBQUM7SUFFMUIsY0FBYyxDQUFrQjtJQUNoQyxHQUFHLENBQWM7SUFFbEMsWUFBWSxHQUFnQjtRQUMxQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FDMUQsMkJBQTJCLEVBQUUsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFOUQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUF1QixFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBUyxDQUFDO1lBRTVCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLFFBQVEsR0FBRyxNQUFNLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoRixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDbkQsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxDQUFDO2dCQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0IsQ0FBQztZQUNELGNBQWMsQ0FBQyx1QkFBdUIsQ0FBRSxJQUFJLENBQUMsR0FBVyxDQUFDLE9BQWtCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25CLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFVLENBQUMsQ0FBQztZQUN2QixNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzlDLE1BQU0sdUJBQXVCLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEUsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -1,4 +1 @@
1
- //#region src/lib/Utils.d.ts
2
- declare function getCalleeFromStack(withLine: boolean, stackIndex?: number): any;
3
- //#endregion
4
- export { getCalleeFromStack };
1
+ export declare function getCalleeFromStack(withLine: boolean, stackIndex?: number): any;
package/dist/lib/Utils.js CHANGED
@@ -1,33 +1,36 @@
1
- //#region src/lib/Utils.ts
2
1
  function prepareObjectStackTrace(_, stack) {
3
- return stack;
2
+ return stack;
4
3
  }
5
- function getCalleeFromStack(withLine, stackIndex) {
6
- stackIndex = stackIndex === void 0 ? 2 : stackIndex;
7
- const limit = Error.stackTraceLimit;
8
- const prep = Error.prepareStackTrace;
9
- Error.prepareStackTrace = prepareObjectStackTrace;
10
- Error.stackTraceLimit = 5;
11
- const obj = {};
12
- Error.captureStackTrace(obj);
13
- let callSite = obj.stack[stackIndex];
14
- let fileName;
15
- /* istanbul ignore else */
16
- if (callSite) {
17
- fileName = callSite.getFileName();
18
- /* istanbul ignore if */
19
- if (fileName && fileName.endsWith("egg-mock/lib/app.js")) {
20
- callSite = obj.stack[stackIndex + 1];
21
- fileName = callSite.getFileName();
22
- }
23
- }
24
- Error.prepareStackTrace = prep;
25
- Error.stackTraceLimit = limit;
26
- /* istanbul ignore if */
27
- if (!callSite || !fileName) return "<anonymous>";
28
- if (!withLine) return fileName;
29
- return `${fileName}:${callSite.getLineNumber()}:${callSite.getColumnNumber()}`;
4
+ export function getCalleeFromStack(withLine, stackIndex) {
5
+ stackIndex = stackIndex === undefined ? 2 : stackIndex;
6
+ const limit = Error.stackTraceLimit;
7
+ const prep = Error.prepareStackTrace;
8
+ Error.prepareStackTrace = prepareObjectStackTrace;
9
+ Error.stackTraceLimit = 5;
10
+ // capture the stack
11
+ const obj = {};
12
+ Error.captureStackTrace(obj);
13
+ let callSite = obj.stack[stackIndex];
14
+ let fileName;
15
+ /* istanbul ignore else */
16
+ if (callSite) {
17
+ // egg-mock will create a proxy
18
+ // https://github.com/eggjs/egg-mock/blob/master/lib/app.js#L174
19
+ fileName = callSite.getFileName();
20
+ /* istanbul ignore if */
21
+ if (fileName && fileName.endsWith('egg-mock/lib/app.js')) {
22
+ // TODO: add test
23
+ callSite = obj.stack[stackIndex + 1];
24
+ fileName = callSite.getFileName();
25
+ }
26
+ }
27
+ Error.prepareStackTrace = prep;
28
+ Error.stackTraceLimit = limit;
29
+ /* istanbul ignore if */
30
+ if (!callSite || !fileName)
31
+ return '<anonymous>';
32
+ if (!withLine)
33
+ return fileName;
34
+ return `${fileName}:${callSite.getLineNumber()}:${callSite.getColumnNumber()}`;
30
35
  }
31
-
32
- //#endregion
33
- export { getCalleeFromStack };
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsdUJBQXVCLENBQUMsQ0FBUSxFQUFFLEtBQXdCO0lBQ2pFLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxRQUFpQixFQUFFLFVBQW1CO0lBQ3ZFLFVBQVUsR0FBRyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQUVyQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7SUFDbEQsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFFMUIsb0JBQW9CO0lBQ3BCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNwQixLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxJQUFJLFFBQVEsQ0FBQztJQUNiLDBCQUEwQjtJQUMxQixJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsK0JBQStCO1FBQy9CLGdFQUFnRTtRQUNoRSxRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLHdCQUF3QjtRQUN4QixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUN6RCxpQkFBaUI7WUFDakIsUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRTlCLHdCQUF3QjtJQUN4QixJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sYUFBYSxDQUFDO0lBQ2pELElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDL0IsT0FBTyxHQUFHLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksUUFBUSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7QUFDakYsQ0FBQyJ9
@@ -1,6 +1,2 @@
1
- import { Context, Next } from "egg";
2
-
3
- //#region src/lib/ctx_lifecycle_middleware.d.ts
4
- declare function ctxLifecycleMiddleware(ctx: Context, next: Next): Promise<void>;
5
- //#endregion
6
- export { ctxLifecycleMiddleware };
1
+ import type { Context, Next } from 'egg';
2
+ export declare function ctxLifecycleMiddleware(ctx: Context, next: Next): Promise<void>;
@@ -1,27 +1,33 @@
1
+ import { ROOT_PROTO, TEGG_CONTEXT } from '@eggjs/egg-module-common';
2
+ import {} from '@eggjs/tegg-runtime';
1
3
  import { EggContextImpl } from "./EggContextImpl.js";
2
- import "@eggjs/tegg-runtime";
3
- import { ROOT_PROTO, TEGG_CONTEXT } from "@eggjs/egg-module-common";
4
-
5
- //#region src/lib/ctx_lifecycle_middleware.ts
6
- async function ctxLifecycleMiddleware(ctx, next) {
7
- if (ctx[TEGG_CONTEXT]) {
8
- await next();
9
- return;
10
- }
11
- const lifecycleCtx = {};
12
- const teggCtx = new EggContextImpl(ctx);
13
- const rootProto = ctx[ROOT_PROTO];
14
- if (rootProto) teggCtx.set(ROOT_PROTO, rootProto);
15
- if (teggCtx.init) await teggCtx.init(lifecycleCtx);
16
- try {
17
- await next();
18
- } finally {
19
- if (teggCtx.destroy) teggCtx.destroy(lifecycleCtx).catch((e) => {
20
- e.message = `[tegg/ctxLifecycleMiddleware] destroy tegg ctx failed: ${e.message}`;
21
- ctx.logger.error(e);
22
- });
23
- }
4
+ export async function ctxLifecycleMiddleware(ctx, next) {
5
+ // should not recreate teggContext
6
+ if (ctx[TEGG_CONTEXT]) {
7
+ await next();
8
+ return;
9
+ }
10
+ const lifecycleCtx = {};
11
+ const teggCtx = new EggContextImpl(ctx);
12
+ // rootProto is set by tegg-controller-plugin global middleware(teggRootProto)
13
+ // is used in EggControllerHook
14
+ const rootProto = ctx[ROOT_PROTO];
15
+ if (rootProto) {
16
+ teggCtx.set(ROOT_PROTO, rootProto);
17
+ }
18
+ if (teggCtx.init) {
19
+ await teggCtx.init(lifecycleCtx);
20
+ }
21
+ try {
22
+ await next();
23
+ }
24
+ finally {
25
+ if (teggCtx.destroy) {
26
+ teggCtx.destroy(lifecycleCtx).catch(e => {
27
+ e.message = `[tegg/ctxLifecycleMiddleware] destroy tegg ctx failed: ${e.message}`;
28
+ ctx.logger.error(e);
29
+ });
30
+ }
31
+ }
24
32
  }
25
-
26
- //#endregion
27
- export { ctxLifecycleMiddleware };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3R4X2xpZmVjeWNsZV9taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jdHhfbGlmZWN5Y2xlX21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRSxPQUFPLEVBQW1DLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCLENBQUMsR0FBWSxFQUFFLElBQVU7SUFDbkUsa0NBQWtDO0lBQ2xDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNiLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQStCLEVBQUUsQ0FBQztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4Qyw4RUFBOEU7SUFDOUUsK0JBQStCO0lBQy9CLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7WUFBUyxDQUFDO1FBQ1QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLEdBQUcsMERBQTBELENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==