@eggjs/tegg-plugin 4.0.0-beta.4 → 4.0.0-beta.6

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 (99) hide show
  1. package/README.md +13 -1
  2. package/dist/app/extend/application.d.ts +57 -0
  3. package/dist/app/extend/application.js +72 -0
  4. package/dist/app/extend/application.unittest.d.ts +26 -0
  5. package/dist/app/extend/application.unittest.js +43 -0
  6. package/dist/app/extend/context.d.ts +24 -0
  7. package/dist/app/extend/context.js +30 -0
  8. package/dist/app/middleware/tegg_ctx_lifecycle_middleware.d.ts +6 -0
  9. package/dist/app/middleware/tegg_ctx_lifecycle_middleware.js +9 -0
  10. package/dist/app.d.ts +19 -0
  11. package/dist/app.js +57 -0
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.js +5 -0
  14. package/dist/lib/AppLoadUnit.d.ts +23 -0
  15. package/dist/lib/AppLoadUnit.js +78 -0
  16. package/dist/lib/AppLoadUnitInstance.d.ts +24 -0
  17. package/dist/lib/AppLoadUnitInstance.js +69 -0
  18. package/dist/lib/CompatibleUtil.d.ts +18 -0
  19. package/dist/lib/CompatibleUtil.js +96 -0
  20. package/dist/lib/ConfigSourceLoadUnitHook.d.ts +15 -0
  21. package/dist/lib/ConfigSourceLoadUnitHook.js +22 -0
  22. package/dist/lib/EggAppLoader.d.ts +20 -0
  23. package/dist/lib/EggAppLoader.js +106 -0
  24. package/dist/lib/EggCompatibleObject.d.ts +21 -0
  25. package/dist/lib/EggCompatibleObject.js +37 -0
  26. package/dist/lib/EggCompatibleProtoImpl.d.ts +25 -0
  27. package/dist/lib/EggCompatibleProtoImpl.js +50 -0
  28. package/dist/lib/EggContextCompatibleHook.d.ts +14 -0
  29. package/dist/lib/EggContextCompatibleHook.js +32 -0
  30. package/dist/lib/EggContextHandler.d.ts +13 -0
  31. package/dist/lib/EggContextHandler.js +29 -0
  32. package/dist/lib/EggContextImpl.d.ts +10 -0
  33. package/dist/lib/EggContextImpl.js +18 -0
  34. package/dist/lib/EggModuleLoader.d.ts +15 -0
  35. package/dist/lib/EggModuleLoader.js +50 -0
  36. package/dist/lib/EggQualifierProtoHook.d.ts +14 -0
  37. package/dist/lib/EggQualifierProtoHook.js +48 -0
  38. package/dist/lib/ModuleConfigLoader.d.ts +12 -0
  39. package/dist/lib/ModuleConfigLoader.js +84 -0
  40. package/dist/lib/ModuleHandler.d.ts +17 -0
  41. package/dist/lib/ModuleHandler.js +46 -0
  42. package/dist/lib/Utils.d.ts +4 -0
  43. package/dist/lib/Utils.js +33 -0
  44. package/dist/lib/ctx_lifecycle_middleware.d.ts +6 -0
  45. package/dist/lib/ctx_lifecycle_middleware.js +27 -0
  46. package/dist/lib/run_in_background.d.ts +7 -0
  47. package/dist/lib/run_in_background.js +52 -0
  48. package/dist/types.d.ts +7 -0
  49. package/dist/types.js +6 -0
  50. package/package.json +63 -45
  51. package/app/extend/application.d.ts +0 -24
  52. package/app/extend/application.js +0 -76
  53. package/app/extend/application.unittest.d.ts +0 -8
  54. package/app/extend/application.unittest.js +0 -51
  55. package/app/extend/context.d.ts +0 -15
  56. package/app/extend/context.js +0 -32
  57. package/app/middleware/tegg_ctx_lifecycle_middleware.d.ts +0 -3
  58. package/app/middleware/tegg_ctx_lifecycle_middleware.js +0 -5
  59. package/app.d.ts +0 -17
  60. package/app.js +0 -63
  61. package/index.d.ts +0 -3
  62. package/index.js +0 -4
  63. package/lib/AppLoadUnit.d.ts +0 -19
  64. package/lib/AppLoadUnit.js +0 -85
  65. package/lib/AppLoadUnitInstance.d.ts +0 -20
  66. package/lib/AppLoadUnitInstance.js +0 -82
  67. package/lib/CompatibleUtil.d.ts +0 -14
  68. package/lib/CompatibleUtil.js +0 -94
  69. package/lib/ConfigSourceLoadUnitHook.d.ts +0 -10
  70. package/lib/ConfigSourceLoadUnitHook.js +0 -20
  71. package/lib/EggAppLoader.d.ts +0 -16
  72. package/lib/EggAppLoader.js +0 -127
  73. package/lib/EggCompatibleObject.d.ts +0 -18
  74. package/lib/EggCompatibleObject.js +0 -41
  75. package/lib/EggCompatibleProtoImpl.d.ts +0 -21
  76. package/lib/EggCompatibleProtoImpl.js +0 -51
  77. package/lib/EggContextCompatibleHook.d.ts +0 -10
  78. package/lib/EggContextCompatibleHook.js +0 -42
  79. package/lib/EggContextHandler.d.ts +0 -9
  80. package/lib/EggContextHandler.js +0 -25
  81. package/lib/EggContextImpl.d.ts +0 -6
  82. package/lib/EggContextImpl.js +0 -15
  83. package/lib/EggModuleLoader.d.ts +0 -11
  84. package/lib/EggModuleLoader.js +0 -53
  85. package/lib/EggQualifierProtoHook.d.ts +0 -10
  86. package/lib/EggQualifierProtoHook.js +0 -50
  87. package/lib/ModuleConfigLoader.d.ts +0 -8
  88. package/lib/ModuleConfigLoader.js +0 -80
  89. package/lib/ModuleHandler.d.ts +0 -13
  90. package/lib/ModuleHandler.js +0 -53
  91. package/lib/Utils.d.ts +0 -1
  92. package/lib/Utils.js +0 -36
  93. package/lib/ctx_lifecycle_middleware.d.ts +0 -2
  94. package/lib/ctx_lifecycle_middleware.js +0 -32
  95. package/lib/run_in_background.d.ts +0 -3
  96. package/lib/run_in_background.js +0 -55
  97. package/lib/types.d.ts +0 -43
  98. package/lib/types.js +0 -2
  99. package/typings/index.d.ts +0 -1
@@ -0,0 +1,84 @@
1
+ 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 };
@@ -0,0 +1,17 @@
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>;
15
+ }
16
+ //#endregion
17
+ export { ModuleHandler };
@@ -0,0 +1,46 @@
1
+ import { COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl } from "./EggCompatibleProtoImpl.js";
2
+ import { EggModuleLoader } from "./EggModuleLoader.js";
3
+ 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 };
@@ -0,0 +1,4 @@
1
+ //#region src/lib/Utils.d.ts
2
+ declare function getCalleeFromStack(withLine: boolean, stackIndex?: number): any;
3
+ //#endregion
4
+ export { getCalleeFromStack };
@@ -0,0 +1,33 @@
1
+ //#region src/lib/Utils.ts
2
+ function prepareObjectStackTrace(_, stack) {
3
+ return stack;
4
+ }
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()}`;
30
+ }
31
+
32
+ //#endregion
33
+ export { getCalleeFromStack };
@@ -0,0 +1,6 @@
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 };
@@ -0,0 +1,27 @@
1
+ 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
+ }
24
+ }
25
+
26
+ //#endregion
27
+ export { ctxLifecycleMiddleware };
@@ -0,0 +1,7 @@
1
+ import { Application } from "egg";
2
+
3
+ //#region src/lib/run_in_background.d.ts
4
+ declare const LONG_STACK_DELIMITER = "\n --------------------\n";
5
+ declare function hijackRunInBackground(app: Application): void;
6
+ //#endregion
7
+ export { LONG_STACK_DELIMITER, hijackRunInBackground };
@@ -0,0 +1,52 @@
1
+ import "../app/extend/context.js";
2
+ import { getCalleeFromStack } from "./Utils.js";
3
+ import "@eggjs/tegg-metadata";
4
+ import { BackgroundTaskHelper, PrototypeUtil } from "@eggjs/tegg";
5
+ import { TEGG_CONTEXT } from "@eggjs/egg-module-common";
6
+ import { Application } from "egg";
7
+
8
+ //#region src/lib/run_in_background.ts
9
+ const LONG_STACK_DELIMITER = "\n --------------------\n";
10
+ function addLongStackTrace(err, causeError) {
11
+ const callSiteStack = causeError.stack;
12
+ if (!callSiteStack || typeof callSiteStack !== "string") return;
13
+ const index = callSiteStack.indexOf("\n");
14
+ if (index !== -1) err.stack += LONG_STACK_DELIMITER + callSiteStack.substring(index + 1);
15
+ }
16
+ function hijackRunInBackground(app) {
17
+ const eggRunInBackground = app.context.runInBackground;
18
+ app.context.runInBackground = function runInBackground(scope) {
19
+ if (!this[TEGG_CONTEXT]) return Reflect.apply(eggRunInBackground, this, [scope]);
20
+ const caseError = /* @__PURE__ */ new Error("cause");
21
+ let resolveBackgroundTask;
22
+ const backgroundTaskPromise = new Promise((resolve) => {
23
+ resolveBackgroundTask = resolve;
24
+ });
25
+ const newScope = async () => {
26
+ try {
27
+ await scope(this);
28
+ } catch (e) {
29
+ addLongStackTrace(e, caseError);
30
+ throw e;
31
+ } finally {
32
+ resolveBackgroundTask();
33
+ }
34
+ };
35
+ const taskName = scope._name || scope.name || getCalleeFromStack(true, 2);
36
+ scope._name = taskName;
37
+ Object.defineProperty(newScope, "name", {
38
+ value: taskName,
39
+ enumerable: false,
40
+ configurable: true,
41
+ writable: false
42
+ });
43
+ Reflect.apply(eggRunInBackground, this, [newScope]);
44
+ const proto = PrototypeUtil.getClazzProto(BackgroundTaskHelper);
45
+ app.eggContainerFactory.getEggObject(proto).obj.run(async () => {
46
+ await backgroundTaskPromise;
47
+ });
48
+ };
49
+ }
50
+
51
+ //#endregion
52
+ export { LONG_STACK_DELIMITER, hijackRunInBackground };
@@ -0,0 +1,7 @@
1
+ import "@eggjs/tegg-config/types";
2
+
3
+ //#region src/types.d.ts
4
+
5
+ declare module 'egg' {
6
+ interface EggModule {}
7
+ }
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ import "./app/extend/context.js";
2
+ import "./app/extend/application.js";
3
+ import "./app/extend/application.unittest.js";
4
+ import "@eggjs/tegg-config/types";
5
+
6
+ export { };
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "teggConfig"
7
7
  ]
8
8
  },
9
- "version": "4.0.0-beta.4",
9
+ "version": "4.0.0-beta.6",
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.4",
60
- "@eggjs/tegg": "^4.0.0-beta.4",
61
- "@eggjs/tegg-background-task": "^4.0.0-beta.4",
62
- "@eggjs/tegg-common-util": "^4.0.0-beta.4",
63
- "@eggjs/tegg-dynamic-inject-runtime": "^4.0.0-beta.4",
64
- "@eggjs/tegg-loader": "^4.0.0-beta.4",
65
- "@eggjs/tegg-metadata": "^4.0.0-beta.4",
66
- "@eggjs/tegg-runtime": "^4.0.0-beta.4",
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.6",
65
+ "@eggjs/tegg-background-task": "4.0.0-beta.6",
66
+ "@eggjs/tegg-common-util": "4.0.0-beta.6",
67
+ "@eggjs/tegg": "4.0.0-beta.6",
68
+ "@eggjs/tegg-dynamic-inject-runtime": "4.0.0-beta.6",
69
+ "@eggjs/tegg-runtime": "4.0.0-beta.6",
70
+ "@eggjs/tegg-loader": "4.0.0-beta.6",
71
+ "@eggjs/tegg-metadata": "4.0.0-beta.6"
72
+ },
73
+ "peerDependencies": {
74
+ "egg": "beta",
75
+ "@eggjs/tegg-config": "4.0.0-beta.6"
69
76
  },
70
77
  "devDependencies": {
71
- "@eggjs/bin": "7",
72
- "@eggjs/mock": "6",
73
- "@eggjs/tegg-config": "^4.0.0-beta.4",
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.6"
81
90
  },
82
91
  "publishConfig": {
83
92
  "access": "public"
84
93
  },
85
- "gitHead": "9ba90bed3ab9f641ceaa6a7db560095817b7e52c"
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"
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;
@@ -1,76 +0,0 @@
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
- export default {
6
- // @eggjs/tegg-metadata should not depend by other egg plugins.
7
- // May make multi singleton instances.
8
- // So tegg-compatible should delegate the metadata factories
9
- // TODO delegate all the singleton
10
- get eggPrototypeCreatorFactory() {
11
- return EggPrototypeCreatorFactory;
12
- },
13
- get eggPrototypeFactory() {
14
- return EggPrototypeFactory.instance;
15
- },
16
- get loadUnitLifecycleUtil() {
17
- return LoadUnitLifecycleUtil;
18
- },
19
- get loadUnitFactory() {
20
- return LoadUnitFactory;
21
- },
22
- get eggObjectFactory() {
23
- return EggObjectFactory;
24
- },
25
- get loadUnitInstanceFactory() {
26
- return LoadUnitInstanceFactory;
27
- },
28
- get loadUnitInstanceLifecycleUtil() {
29
- return LoadUnitInstanceLifecycleUtil;
30
- },
31
- get eggContainerFactory() {
32
- return EggContainerFactory;
33
- },
34
- get loaderFactory() {
35
- return LoaderFactory;
36
- },
37
- get eggPrototypeLifecycleUtil() {
38
- return EggPrototypeLifecycleUtil;
39
- },
40
- get eggContextLifecycleUtil() {
41
- return EggContextLifecycleUtil;
42
- },
43
- get eggObjectLifecycleUtil() {
44
- return EggObjectLifecycleUtil;
45
- },
46
- get abstractEggContext() {
47
- return AbstractEggContext;
48
- },
49
- get identicalUtil() {
50
- return IdenticalUtil;
51
- },
52
- get runtimeConfig() {
53
- const app = this;
54
- const config = app.config;
55
- return {
56
- baseDir: config.baseDir,
57
- env: config.env,
58
- name: config.name,
59
- };
60
- },
61
- async getEggObject(clazz, name, qualifiers) {
62
- if (qualifiers) {
63
- qualifiers = Array.isArray(qualifiers) ? qualifiers : [qualifiers];
64
- }
65
- const eggObject = await EggContainerFactory.getOrCreateEggObjectFromClazz(clazz, name, qualifiers);
66
- return eggObject.obj;
67
- },
68
- async getEggObjectFromName(name, qualifiers) {
69
- if (qualifiers) {
70
- qualifiers = Array.isArray(qualifiers) ? qualifiers : [qualifiers];
71
- }
72
- const eggObject = await EggContainerFactory.getOrCreateEggObjectFromName(name, qualifiers);
73
- return eggObject.obj;
74
- },
75
- };
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxFQUNmLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qiw2QkFBNkIsR0FDOUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFxQixhQUFhLEVBQWdDLE1BQU0sYUFBYSxDQUFDO0FBRzdGLGVBQWU7SUFDYiwrREFBK0Q7SUFDL0Qsc0NBQXNDO0lBQ3RDLDREQUE0RDtJQUM1RCxrQ0FBa0M7SUFDbEMsSUFBSSwwQkFBMEI7UUFDNUIsT0FBTywwQkFBMEIsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSw2QkFBNkI7UUFDL0IsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUkseUJBQXlCO1FBQzNCLE9BQU8seUJBQXlCLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sdUJBQXVCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixNQUFNLEdBQUcsR0FBRyxJQUE4QixDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDMUIsT0FBTztZQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7WUFDZixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQXdCLEVBQUUsSUFBYSxFQUFFLFVBQTRDO1FBQ3RHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFFLFVBQVUsQ0FBRSxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLG1CQUFtQixDQUFDLDZCQUE2QixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbkcsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBWSxFQUFFLFVBQTRDO1FBQ25GLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFFLFVBQVUsQ0FBRSxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLG1CQUFtQixDQUFDLDRCQUE0QixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzRixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7SUFDdkIsQ0FBQztDQUNGLENBQUMifQ==
@@ -1,8 +0,0 @@
1
- import type { MockApplication } from '@eggjs/mock';
2
- import type { Context } from '@eggjs/core';
3
- declare const _default: {
4
- mockModuleContext(this: MockApplication, data?: any): Promise<Context>;
5
- destroyModuleContext(ctx: Context): Promise<void>;
6
- mockModuleContextScope<R = any>(this: MockApplication, fn: (ctx: Context) => Promise<R>, data?: any): Promise<R>;
7
- };
8
- export default _default;
@@ -1,51 +0,0 @@
1
- import { EggContextImpl } from '../../lib/EggContextImpl.js';
2
- const TEGG_LIFECYCLE_CACHE = new Map();
3
- let hasMockModuleContext = false;
4
- export default {
5
- async mockModuleContext(data) {
6
- this.deprecate('app.mockModuleContext is deprecated, use mockModuleContextScope.');
7
- if (hasMockModuleContext) {
8
- throw new Error('should not call mockModuleContext twice.');
9
- }
10
- const ctx = this.mockContext(data);
11
- const teggCtx = new EggContextImpl(ctx);
12
- const lifecycle = {};
13
- TEGG_LIFECYCLE_CACHE.set(teggCtx, lifecycle);
14
- if (teggCtx.init) {
15
- await teggCtx.init(lifecycle);
16
- }
17
- hasMockModuleContext = true;
18
- return ctx;
19
- },
20
- async destroyModuleContext(ctx) {
21
- hasMockModuleContext = false;
22
- const teggCtx = ctx.teggContext;
23
- if (!teggCtx) {
24
- return;
25
- }
26
- const lifecycle = TEGG_LIFECYCLE_CACHE.get(teggCtx);
27
- if (teggCtx.destroy && lifecycle) {
28
- await teggCtx.destroy(lifecycle);
29
- }
30
- },
31
- async mockModuleContextScope(fn, data) {
32
- if (hasMockModuleContext) {
33
- throw new Error('mockModuleContextScope can not use with mockModuleContext, should use mockModuleContextScope only.');
34
- }
35
- return this.mockContextScope(async (_ctx) => {
36
- const ctx = _ctx;
37
- const teggCtx = new EggContextImpl(ctx);
38
- const lifecycle = {};
39
- if (teggCtx.init) {
40
- await teggCtx.init(lifecycle);
41
- }
42
- try {
43
- return await fn(ctx);
44
- }
45
- finally {
46
- await teggCtx.destroy(lifecycle);
47
- }
48
- }, data);
49
- },
50
- };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24udW5pdHRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHBsaWNhdGlvbi51bml0dGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHN0QsTUFBTSxvQkFBb0IsR0FBZ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUVwRixJQUFJLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUVqQyxlQUFlO0lBQ2IsS0FBSyxDQUFDLGlCQUFpQixDQUF3QixJQUFVO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUNuRixJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBdUIsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBWTtRQUNyQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7WUFDakMsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUErQixFQUFnQyxFQUFFLElBQVU7UUFDckcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0dBQW9HLENBQUMsQ0FBQztRQUN4SCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFDLElBQUksRUFBQyxFQUFFO1lBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQTBCLENBQUM7WUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNqQixNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksQ0FBQztnQkFDSCxPQUFPLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7b0JBQVMsQ0FBQztnQkFDVCxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDRixDQUFDIn0=
@@ -1,15 +0,0 @@
1
- import type { Context } from '@eggjs/core';
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 interface TEggPluginContext extends Context {
6
- [TEGG_CONTEXT]: TEggContext;
7
- }
8
- declare const _default: {
9
- [TEGG_CONTEXT]: TEggContext | undefined;
10
- beginModuleScope(this: TEggPluginContext, func: () => Promise<void>): Promise<void>;
11
- readonly teggContext: TEggContext;
12
- getEggObject(this: Context, clazz: EggProtoImplClass, name?: string): Promise<Record<string | symbol, any>>;
13
- getEggObjectFromName(this: Context, name: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<Record<string | symbol, any>>;
14
- };
15
- export default _default;