@eggjs/tegg-plugin 4.0.0-beta.1 → 4.0.0-beta.10

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 (77) hide show
  1. package/README.md +13 -1
  2. package/dist/app/extend/application.d.ts +50 -0
  3. package/dist/app/extend/application.js +79 -0
  4. package/dist/app/extend/application.unittest.d.ts +22 -0
  5. package/{app → dist/app}/extend/application.unittest.js +13 -9
  6. package/dist/app/extend/context.d.ts +20 -0
  7. package/dist/app/extend/context.js +35 -0
  8. package/{app → dist/app}/middleware/tegg_ctx_lifecycle_middleware.d.ts +1 -1
  9. package/dist/app/middleware/tegg_ctx_lifecycle_middleware.js +5 -0
  10. package/{app.d.ts → dist/app.d.ts} +4 -4
  11. package/dist/app.js +63 -0
  12. package/dist/index.d.ts +3 -0
  13. package/dist/index.js +4 -0
  14. package/{lib → dist/lib}/AppLoadUnit.d.ts +2 -2
  15. package/dist/lib/AppLoadUnit.js +90 -0
  16. package/{lib → dist/lib}/AppLoadUnitInstance.d.ts +3 -3
  17. package/dist/lib/AppLoadUnitInstance.js +82 -0
  18. package/{lib → dist/lib}/CompatibleUtil.d.ts +2 -2
  19. package/dist/lib/CompatibleUtil.js +95 -0
  20. package/{lib → dist/lib}/ConfigSourceLoadUnitHook.d.ts +2 -2
  21. package/{lib → dist/lib}/ConfigSourceLoadUnitHook.js +2 -1
  22. package/{lib → dist/lib}/EggAppLoader.d.ts +2 -2
  23. package/dist/lib/EggAppLoader.js +128 -0
  24. package/{lib → dist/lib}/EggCompatibleObject.d.ts +4 -4
  25. package/{lib → dist/lib}/EggCompatibleObject.js +3 -2
  26. package/{lib → dist/lib}/EggCompatibleProtoImpl.d.ts +2 -2
  27. package/dist/lib/EggCompatibleProtoImpl.js +52 -0
  28. package/{lib → dist/lib}/EggContextCompatibleHook.d.ts +3 -3
  29. package/dist/lib/EggContextCompatibleHook.js +44 -0
  30. package/{lib → dist/lib}/EggContextHandler.d.ts +3 -3
  31. package/dist/lib/EggContextHandler.js +26 -0
  32. package/{lib → dist/lib}/EggContextImpl.d.ts +1 -1
  33. package/dist/lib/EggContextImpl.js +15 -0
  34. package/dist/lib/EggModuleLoader.js +54 -0
  35. package/{lib → dist/lib}/EggQualifierProtoHook.d.ts +2 -2
  36. package/dist/lib/EggQualifierProtoHook.js +62 -0
  37. package/{lib → dist/lib}/ModuleConfigLoader.d.ts +1 -1
  38. package/dist/lib/ModuleConfigLoader.js +81 -0
  39. package/{lib → dist/lib}/ModuleHandler.d.ts +2 -2
  40. package/dist/lib/ModuleHandler.js +53 -0
  41. package/dist/lib/Utils.js +36 -0
  42. package/dist/lib/ctx_lifecycle_middleware.d.ts +2 -0
  43. package/{lib → dist/lib}/ctx_lifecycle_middleware.js +7 -6
  44. package/dist/lib/run_in_background.js +58 -0
  45. package/dist/types.d.ts +8 -0
  46. package/dist/types.js +5 -0
  47. package/package.json +63 -45
  48. package/app/extend/application.d.ts +0 -24
  49. package/app/extend/application.js +0 -76
  50. package/app/extend/application.unittest.d.ts +0 -8
  51. package/app/extend/context.d.ts +0 -15
  52. package/app/extend/context.js +0 -32
  53. package/app/middleware/tegg_ctx_lifecycle_middleware.js +0 -5
  54. package/app.js +0 -63
  55. package/index.d.ts +0 -3
  56. package/index.js +0 -4
  57. package/lib/AppLoadUnit.js +0 -85
  58. package/lib/AppLoadUnitInstance.js +0 -82
  59. package/lib/CompatibleUtil.js +0 -94
  60. package/lib/EggAppLoader.js +0 -127
  61. package/lib/EggCompatibleProtoImpl.js +0 -51
  62. package/lib/EggContextCompatibleHook.js +0 -42
  63. package/lib/EggContextHandler.js +0 -25
  64. package/lib/EggContextImpl.js +0 -15
  65. package/lib/EggModuleLoader.js +0 -53
  66. package/lib/EggQualifierProtoHook.js +0 -50
  67. package/lib/ModuleConfigLoader.js +0 -80
  68. package/lib/ModuleHandler.js +0 -53
  69. package/lib/Utils.js +0 -36
  70. package/lib/ctx_lifecycle_middleware.d.ts +0 -2
  71. package/lib/run_in_background.js +0 -55
  72. package/lib/types.d.ts +0 -43
  73. package/lib/types.js +0 -2
  74. package/typings/index.d.ts +0 -1
  75. /package/{lib → dist/lib}/EggModuleLoader.d.ts +0 -0
  76. /package/{lib → dist/lib}/Utils.d.ts +0 -0
  77. /package/{lib → dist/lib}/run_in_background.d.ts +0 -0
@@ -0,0 +1,62 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUXVhbGlmaWVyUHJvdG9Ib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9FZ2dRdWFsaWZpZXJQcm90b0hvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQWdELE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUVMLGFBQWEsRUFDYixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLE9BQU8sR0FDUixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFFckUsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLEdBQUcsQ0FBYztJQUVsQyxZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQTZCO1FBQzNDLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsS0FBSyxDQUFDLG1GQUFtRixF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
@@ -1,4 +1,4 @@
1
- import { EggProtoImplClass } from '@eggjs/tegg';
1
+ import { type EggProtoImplClass } from '@eggjs/tegg';
2
2
  import { Application } from 'egg';
3
3
  export declare class ModuleConfigLoader {
4
4
  readonly app: Application;
@@ -0,0 +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';
5
+ import { COMPATIBLE_PROTO_IMPLE_TYPE } from "./EggCompatibleProtoImpl.js";
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlQ29uZmlnTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9Nb2R1bGVDb25maWdMb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxxQkFBcUIsRUFDckIsT0FBTyxFQUNQLDBCQUEwQixFQUMxQiw4QkFBOEIsRUFBRSxhQUFhLEVBQzdDLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNZLDhCQUE4QixHQUN4RCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFakMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixHQUFHLENBQWM7SUFDMUIsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRU8saUJBQWlCLENBQUMsZUFBbUQ7UUFDM0UsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFJLEdBQXNCO1lBQzlCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQVEsQ0FBQztRQUNULE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUM3QixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDbEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQzlCLElBQUk7WUFDSixRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDbEMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNO1lBQy9CLGFBQWEsRUFBRSwyQkFBMkI7U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RSxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RixhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsTUFBTSxNQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUN2QyxNQUFNLGVBQWUsR0FBdUMsRUFBRSxDQUFDO1FBQy9ELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2xELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RSxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1Ryw0REFBNEQ7WUFDNUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNGLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztnQkFDNUIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2lCQUNyQjtnQkFDRCxNQUFNO2FBQ1AsQ0FBQztZQUVGLE1BQU0sSUFBSSxHQUFzQjtnQkFDOUIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBUSxDQUFDO1lBQ1QsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtnQkFDbEMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLFlBQVksRUFBRSxJQUFJO2FBQ25CLENBQUMsQ0FBQztZQUNILGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2xELGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO2dCQUM5QixJQUFJO2dCQUNKLFFBQVEsRUFBRSxjQUFjLENBQUMsU0FBUztnQkFDbEMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNO2dCQUMvQixhQUFhLEVBQUUsMkJBQTJCO2FBQzNDLENBQUMsQ0FBQztZQUNILGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0UsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSwwQkFBMEIsRUFBRSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUYsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUUsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSw4QkFBOEIsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNsRixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YifQ==
@@ -1,7 +1,7 @@
1
1
  import { Base } from 'sdk-base';
2
2
  import { Application } from 'egg';
3
- import { LoadUnit } from '@eggjs/tegg-metadata';
4
- import { LoadUnitInstance } from '@eggjs/tegg-runtime';
3
+ import { type LoadUnit } from '@eggjs/tegg-metadata';
4
+ import { type LoadUnitInstance } from '@eggjs/tegg-runtime';
5
5
  export declare class ModuleHandler extends Base {
6
6
  loadUnits: LoadUnit[];
7
7
  loadUnitInstances: LoadUnitInstance[];
@@ -0,0 +1,53 @@
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';
5
+ import { EggModuleLoader } from "./EggModuleLoader.js";
6
+ import { CompatibleUtil } from "./CompatibleUtil.js";
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=
@@ -0,0 +1,36 @@
1
+ function prepareObjectStackTrace(_, stack) {
2
+ return stack;
3
+ }
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()}`;
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsdUJBQXVCLENBQUMsQ0FBUSxFQUFFLEtBQXdCO0lBQ2pFLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxRQUFpQixFQUFFLFVBQW1CO0lBQ3ZFLFVBQVUsR0FBRyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQUVyQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7SUFDbEQsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFFMUIsb0JBQW9CO0lBQ3BCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNwQixLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxJQUFJLFFBQVEsQ0FBQztJQUNiLDBCQUEwQjtJQUMxQixJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsK0JBQStCO1FBQy9CLGdFQUFnRTtRQUNoRSxRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLHdCQUF3QjtRQUN4QixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUN6RCxpQkFBaUI7WUFDakIsUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRTlCLHdCQUF3QjtJQUN4QixJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sYUFBYSxDQUFDO0lBQ2pELElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDL0IsT0FBTyxHQUFHLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksUUFBUSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7QUFDakYsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ import type { Context, Next } from 'egg';
2
+ export declare function ctxLifecycleMiddleware(ctx: Context, next: Next): Promise<void>;
@@ -1,12 +1,13 @@
1
1
  import { ROOT_PROTO, TEGG_CONTEXT } from '@eggjs/egg-module-common';
2
- import { EggContextImpl } from './EggContextImpl.js';
2
+ import {} from '@eggjs/tegg-runtime';
3
+ import { EggContextImpl } from "./EggContextImpl.js";
3
4
  export async function ctxLifecycleMiddleware(ctx, next) {
4
5
  // should not recreate teggContext
5
6
  if (ctx[TEGG_CONTEXT]) {
6
7
  await next();
7
8
  return;
8
9
  }
9
- const lifecycle = {};
10
+ const lifecycleCtx = {};
10
11
  const teggCtx = new EggContextImpl(ctx);
11
12
  // rootProto is set by tegg-controller-plugin global middleware(teggRootProto)
12
13
  // is used in EggControllerHook
@@ -15,18 +16,18 @@ export async function ctxLifecycleMiddleware(ctx, next) {
15
16
  teggCtx.set(ROOT_PROTO, rootProto);
16
17
  }
17
18
  if (teggCtx.init) {
18
- await teggCtx.init(lifecycle);
19
+ await teggCtx.init(lifecycleCtx);
19
20
  }
20
21
  try {
21
22
  await next();
22
23
  }
23
24
  finally {
24
25
  if (teggCtx.destroy) {
25
- teggCtx.destroy(lifecycle).catch(e => {
26
- e.message = '[tegg/ctxLifecycleMiddleware] destroy tegg ctx failed:' + e.message;
26
+ teggCtx.destroy(lifecycleCtx).catch(e => {
27
+ e.message = `[tegg/ctxLifecycleMiddleware] destroy tegg ctx failed: ${e.message}`;
27
28
  ctx.logger.error(e);
28
29
  });
29
30
  }
30
31
  }
31
32
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3R4X2xpZmVjeWNsZV9taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3R4X2xpZmVjeWNsZV9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3JELE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCLENBQUMsR0FBWSxFQUFFLElBQXlCO0lBQ2xGLGtDQUFrQztJQUNsQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDYixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUVyQixNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4Qyw4RUFBOEU7SUFDOUUsK0JBQStCO0lBQy9CLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7WUFBUyxDQUFDO1FBQ1QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ25DLENBQUMsQ0FBQyxPQUFPLEdBQUcsd0RBQXdELEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDakYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3R4X2xpZmVjeWNsZV9taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jdHhfbGlmZWN5Y2xlX21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRSxPQUFPLEVBQW1DLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCLENBQUMsR0FBWSxFQUFFLElBQVU7SUFDbkUsa0NBQWtDO0lBQ2xDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNiLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQStCLEVBQUUsQ0FBQztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4Qyw4RUFBOEU7SUFDOUUsK0JBQStCO0lBQy9CLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7WUFBUyxDQUFDO1FBQ1QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLEdBQUcsMERBQTBELENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
@@ -0,0 +1,58 @@
1
+ import { Application } from 'egg';
2
+ import { BackgroundTaskHelper, PrototypeUtil } from '@eggjs/tegg';
3
+ import {} from '@eggjs/tegg-metadata';
4
+ import { TEGG_CONTEXT } from '@eggjs/egg-module-common';
5
+ import TEggPluginContext from "../app/extend/context.js";
6
+ import { getCalleeFromStack } from "./Utils.js";
7
+ export const LONG_STACK_DELIMITER = '\n --------------------\n';
8
+ function addLongStackTrace(err, causeError) {
9
+ const callSiteStack = causeError.stack;
10
+ if (!callSiteStack || typeof callSiteStack !== 'string') {
11
+ return;
12
+ }
13
+ const index = callSiteStack.indexOf('\n');
14
+ if (index !== -1) {
15
+ err.stack += LONG_STACK_DELIMITER + callSiteStack.substring(index + 1);
16
+ }
17
+ }
18
+ export function hijackRunInBackground(app) {
19
+ const eggRunInBackground = app.context.runInBackground;
20
+ app.context.runInBackground = function runInBackground(scope) {
21
+ if (!this[TEGG_CONTEXT]) {
22
+ return Reflect.apply(eggRunInBackground, this, [scope]);
23
+ }
24
+ const caseError = new Error('cause');
25
+ let resolveBackgroundTask;
26
+ const backgroundTaskPromise = new Promise(resolve => {
27
+ resolveBackgroundTask = resolve;
28
+ });
29
+ const newScope = async () => {
30
+ try {
31
+ await scope(this);
32
+ }
33
+ catch (e) {
34
+ addLongStackTrace(e, caseError);
35
+ throw e;
36
+ }
37
+ finally {
38
+ resolveBackgroundTask();
39
+ }
40
+ };
41
+ const taskName = scope._name || scope.name || getCalleeFromStack(true, 2);
42
+ scope._name = taskName;
43
+ Object.defineProperty(newScope, 'name', {
44
+ value: taskName,
45
+ enumerable: false,
46
+ configurable: true,
47
+ writable: false,
48
+ });
49
+ Reflect.apply(eggRunInBackground, this, [newScope]);
50
+ const proto = PrototypeUtil.getClazzProto(BackgroundTaskHelper);
51
+ const eggObject = app.eggContainerFactory.getEggObject(proto);
52
+ const backgroundTaskHelper = eggObject.obj;
53
+ backgroundTaskHelper.run(async () => {
54
+ await backgroundTaskPromise;
55
+ });
56
+ };
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuX2luX2JhY2tncm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3J1bl9pbl9iYWNrZ3JvdW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLE1BQU0sS0FBSyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEUsT0FBTyxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RCxPQUFPLGlCQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRywyQkFBMkIsQ0FBQztBQUVoRSxTQUFTLGlCQUFpQixDQUFDLEdBQVUsRUFBRSxVQUFpQjtJQUN0RCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxhQUFhLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEQsT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakIsR0FBRyxDQUFDLEtBQUssSUFBSSxvQkFBb0IsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFnQjtJQUNwRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3ZELEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLFNBQVMsZUFBZSxDQUEwQixLQUFxQztRQUNuSCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUFFLEtBQUssQ0FBRSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUkscUJBQWlDLENBQUM7UUFDdEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sQ0FBTyxPQUFPLENBQUMsRUFBRTtZQUN4RCxxQkFBcUIsR0FBRyxPQUFPLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsaUJBQWlCLENBQUMsQ0FBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7b0JBQVMsQ0FBQztnQkFDVCxxQkFBcUIsRUFBRSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBSSxLQUFhLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLEtBQWEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRTtZQUN0QyxLQUFLLEVBQUUsUUFBUTtZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUUsUUFBUSxDQUFFLENBQUMsQ0FBQztRQUV0RCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEUsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxLQUFxQixDQUFDLENBQUM7UUFDOUUsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsR0FBMkIsQ0FBQztRQUNuRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbEMsTUFBTSxxQkFBcUIsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -0,0 +1,8 @@
1
+ import '@eggjs/tegg-config/types';
2
+ import './app/extend/application.ts';
3
+ import './app/extend/application.unittest.ts';
4
+ import './app/extend/context.ts';
5
+ declare module 'egg' {
6
+ interface EggModule {
7
+ }
8
+ }
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ import '@eggjs/tegg-config/types';
2
+ import "./app/extend/application.js";
3
+ import "./app/extend/application.unittest.js";
4
+ import "./app/extend/context.js";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTywwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyx5QkFBeUIsQ0FBQyJ9
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "teggConfig"
7
7
  ]
8
8
  },
9
- "version": "4.0.0-beta.1",
9
+ "version": "4.0.0-beta.10",
10
10
  "description": "module plugin for egg",
11
11
  "keywords": [
12
12
  "egg",
@@ -16,33 +16,37 @@
16
16
  "tegg"
17
17
  ],
18
18
  "files": [
19
- "index.js",
20
- "index.d.ts",
21
- "app.js",
22
- "app.d.ts",
23
- "lib/**/*.js",
24
- "lib/**/*.d.ts",
25
- "app/**/*.js",
26
- "app/**/*.d.ts",
27
- "typings/*.d.ts"
19
+ "dist"
28
20
  ],
29
21
  "type": "module",
30
22
  "exports": {
31
- ".": {
32
- "types": "./index.d.ts",
33
- "default": "./index.js"
34
- },
23
+ ".": "./dist/index.js",
24
+ "./app": "./dist/app.js",
25
+ "./app/extend/application": "./dist/app/extend/application.js",
26
+ "./app/extend/application.unittest": "./dist/app/extend/application.unittest.js",
27
+ "./app/extend/context": "./dist/app/extend/context.js",
28
+ "./app/middleware/tegg_ctx_lifecycle_middleware": "./dist/app/middleware/tegg_ctx_lifecycle_middleware.js",
29
+ "./lib/AppLoadUnit": "./dist/lib/AppLoadUnit.js",
30
+ "./lib/AppLoadUnitInstance": "./dist/lib/AppLoadUnitInstance.js",
31
+ "./lib/CompatibleUtil": "./dist/lib/CompatibleUtil.js",
32
+ "./lib/ConfigSourceLoadUnitHook": "./dist/lib/ConfigSourceLoadUnitHook.js",
33
+ "./lib/ctx_lifecycle_middleware": "./dist/lib/ctx_lifecycle_middleware.js",
34
+ "./lib/EggAppLoader": "./dist/lib/EggAppLoader.js",
35
+ "./lib/EggCompatibleObject": "./dist/lib/EggCompatibleObject.js",
36
+ "./lib/EggCompatibleProtoImpl": "./dist/lib/EggCompatibleProtoImpl.js",
37
+ "./lib/EggContextCompatibleHook": "./dist/lib/EggContextCompatibleHook.js",
38
+ "./lib/EggContextHandler": "./dist/lib/EggContextHandler.js",
39
+ "./lib/EggContextImpl": "./dist/lib/EggContextImpl.js",
40
+ "./lib/EggModuleLoader": "./dist/lib/EggModuleLoader.js",
41
+ "./lib/EggQualifierProtoHook": "./dist/lib/EggQualifierProtoHook.js",
42
+ "./lib/ModuleConfigLoader": "./dist/lib/ModuleConfigLoader.js",
43
+ "./lib/ModuleHandler": "./dist/lib/ModuleHandler.js",
44
+ "./lib/run_in_background": "./dist/lib/run_in_background.js",
45
+ "./lib/Utils": "./dist/lib/Utils.js",
46
+ "./types": "./dist/types.js",
35
47
  "./package.json": "./package.json"
36
48
  },
37
- "scripts": {
38
- "test": "egg-bin test",
39
- "cov": "egg-bin cov",
40
- "clean": "tsc -b --clean",
41
- "tsc": "npm run clean && tsc -p ./tsconfig.pub.json",
42
- "tsc:pub": "npm run tsc",
43
- "prepublishOnly": "npm run tsc"
44
- },
45
- "homepage": "https://github.com/eggjs/tegg",
49
+ "homepage": "https://github.com/eggjs/tegg/tree/next/plugin/tegg",
46
50
  "bugs": {
47
51
  "url": "https://github.com/eggjs/tegg/issues"
48
52
  },
@@ -52,35 +56,49 @@
52
56
  "directory": "plugin/tegg"
53
57
  },
54
58
  "engines": {
55
- "node": ">=20.0.0"
59
+ "node": ">=22.18.0"
56
60
  },
57
61
  "dependencies": {
58
- "@eggjs/core": "^6.4.0",
59
- "@eggjs/egg-module-common": "^4.0.0-beta.1",
60
- "@eggjs/tegg": "^4.0.0-beta.1",
61
- "@eggjs/tegg-background-task": "^4.0.0-beta.1",
62
- "@eggjs/tegg-common-util": "^4.0.0-beta.1",
63
- "@eggjs/tegg-dynamic-inject-runtime": "^4.0.0-beta.1",
64
- "@eggjs/tegg-loader": "^4.0.0-beta.1",
65
- "@eggjs/tegg-metadata": "^4.0.0-beta.1",
66
- "@eggjs/tegg-runtime": "^4.0.0-beta.1",
67
62
  "extend2": "^4.0.0",
68
- "sdk-base": "^5.0.1"
63
+ "sdk-base": "^5.0.1",
64
+ "@eggjs/egg-module-common": "4.0.0-beta.10",
65
+ "@eggjs/tegg": "4.0.0-beta.10",
66
+ "@eggjs/tegg-common-util": "4.0.0-beta.10",
67
+ "@eggjs/tegg-background-task": "4.0.0-beta.10",
68
+ "@eggjs/tegg-dynamic-inject-runtime": "4.0.0-beta.10",
69
+ "@eggjs/tegg-loader": "4.0.0-beta.10",
70
+ "@eggjs/tegg-metadata": "4.0.0-beta.10",
71
+ "@eggjs/tegg-runtime": "4.0.0-beta.10"
72
+ },
73
+ "peerDependencies": {
74
+ "egg": "beta",
75
+ "@eggjs/tegg-config": "4.0.0-beta.10"
69
76
  },
70
77
  "devDependencies": {
71
- "@eggjs/bin": "7",
72
- "@eggjs/mock": "6",
73
- "@eggjs/tegg-config": "^4.0.0-beta.1",
74
- "@eggjs/tracer": "3",
75
- "@types/mocha": "10",
76
- "@types/node": "22",
77
- "egg": "4",
78
+ "@eggjs/bin": "beta",
79
+ "@eggjs/mock": "beta",
80
+ "@eggjs/tracer": "beta",
81
+ "@types/mocha": "^10.0.10",
82
+ "@types/node": "^22.10.5",
83
+ "egg": "beta",
78
84
  "egg-logger": "^3.0.1",
79
- "ts-node": "10",
80
- "typescript": "5"
85
+ "mocha": "^11.0.1",
86
+ "typescript": "^5.9.3",
87
+ "tsdown": "^0.15.6",
88
+ "unplugin-unused": "^0.5.3",
89
+ "@eggjs/tegg-config": "4.0.0-beta.10"
81
90
  },
82
91
  "publishConfig": {
83
92
  "access": "public"
84
93
  },
85
- "gitHead": "79a22905272d6de7fe06152231dff65d213d9166"
86
- }
94
+ "main": "./dist/index.js",
95
+ "module": "./dist/index.js",
96
+ "types": "./dist/index.d.ts",
97
+ "scripts": {
98
+ "typecheck": "tsc --noEmit",
99
+ "test:mocha": "egg-bin test",
100
+ "cov:mocha": "egg-bin cov",
101
+ "clean": "rimraf dist",
102
+ "build": "tsdown && rimraf dist && tsc -b --clean && tsc -p tsconfig.build.json"
103
+ }
104
+ }
@@ -1,24 +0,0 @@
1
- import { EggPrototypeCreatorFactory, EggPrototypeFactory, LoadUnitFactory } from '@eggjs/tegg-metadata';
2
- import { AbstractEggContext, EggContainerFactory, EggObjectFactory, LoadUnitInstanceFactory } from '@eggjs/tegg-runtime';
3
- import { LoaderFactory } from '@eggjs/tegg-loader';
4
- import { EggProtoImplClass, IdenticalUtil, RuntimeConfig, QualifierInfo } from '@eggjs/tegg';
5
- declare const _default: {
6
- readonly eggPrototypeCreatorFactory: typeof EggPrototypeCreatorFactory;
7
- readonly eggPrototypeFactory: EggPrototypeFactory;
8
- readonly loadUnitLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-metadata").LoadUnitLifecycleContext, import("@eggjs/tegg-metadata").LoadUnit>;
9
- readonly loadUnitFactory: typeof LoadUnitFactory;
10
- readonly eggObjectFactory: typeof EggObjectFactory;
11
- readonly loadUnitInstanceFactory: typeof LoadUnitInstanceFactory;
12
- readonly loadUnitInstanceLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").LoadUnitInstanceLifecycleContext, import("@eggjs/tegg-runtime").LoadUnitInstance>;
13
- readonly eggContainerFactory: typeof EggContainerFactory;
14
- readonly loaderFactory: typeof LoaderFactory;
15
- readonly eggPrototypeLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-metadata").EggPrototypeLifecycleContext, import("@eggjs/tegg-metadata").EggPrototype>;
16
- readonly eggContextLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").EggContextLifecycleContext, import("@eggjs/tegg-runtime").EggContext>;
17
- readonly eggObjectLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").EggObjectLifeCycleContext, import("@eggjs/tegg-runtime").EggObject>;
18
- readonly abstractEggContext: typeof AbstractEggContext;
19
- readonly identicalUtil: typeof IdenticalUtil;
20
- readonly runtimeConfig: RuntimeConfig;
21
- getEggObject(clazz: EggProtoImplClass, name?: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<Record<string | symbol, any>>;
22
- getEggObjectFromName(name: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<Record<string | symbol, any>>;
23
- };
24
- export default _default;