@eggjs/tegg-plugin 4.0.0-beta.34 → 4.0.0-beta.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/extend/application.d.ts +28 -24
- package/dist/app/extend/application.js +69 -75
- package/dist/app/extend/application.unittest.d.ts +9 -5
- package/dist/app/extend/application.unittest.js +39 -50
- package/dist/app/extend/context.d.ts +12 -8
- package/dist/app/extend/context.js +27 -32
- package/dist/app/middleware/tegg_ctx_lifecycle_middleware.d.ts +5 -2
- package/dist/app/middleware/tegg_ctx_lifecycle_middleware.js +7 -3
- package/dist/app.d.ts +20 -16
- package/dist/app.js +50 -57
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -3
- package/dist/lib/AppLoadUnit.d.ts +23 -19
- package/dist/lib/AppLoadUnit.js +77 -92
- package/dist/lib/AppLoadUnitInstance.d.ts +23 -19
- package/dist/lib/AppLoadUnitInstance.js +69 -82
- package/dist/lib/CompatibleUtil.d.ts +22 -18
- package/dist/lib/CompatibleUtil.js +99 -104
- package/dist/lib/ConfigSourceLoadUnitHook.d.ts +13 -8
- package/dist/lib/ConfigSourceLoadUnitHook.js +20 -19
- package/dist/lib/EggAppLoader.d.ts +19 -15
- package/dist/lib/EggAppLoader.js +104 -115
- package/dist/lib/EggCompatibleObject.d.ts +19 -15
- package/dist/lib/EggCompatibleObject.js +34 -41
- package/dist/lib/EggCompatibleProtoImpl.d.ts +25 -21
- package/dist/lib/EggCompatibleProtoImpl.js +49 -52
- package/dist/lib/EggContextCompatibleHook.d.ts +13 -9
- package/dist/lib/EggContextCompatibleHook.js +32 -44
- package/dist/lib/EggContextHandler.d.ts +12 -8
- package/dist/lib/EggContextHandler.js +28 -25
- package/dist/lib/EggContextImpl.d.ts +9 -5
- package/dist/lib/EggContextImpl.js +18 -15
- package/dist/lib/EggModuleLoader.d.ts +14 -10
- package/dist/lib/EggModuleLoader.js +48 -52
- package/dist/lib/EggQualifierProtoHook.d.ts +13 -9
- package/dist/lib/EggQualifierProtoHook.js +46 -60
- package/dist/lib/ModuleConfigLoader.d.ts +11 -7
- package/dist/lib/ModuleConfigLoader.js +81 -79
- package/dist/lib/ModuleHandler.d.ts +16 -12
- package/dist/lib/ModuleHandler.js +44 -51
- package/dist/lib/Utils.d.ts +4 -1
- package/dist/lib/Utils.js +30 -33
- package/dist/lib/ctx_lifecycle_middleware.d.ts +6 -2
- package/dist/lib/ctx_lifecycle_middleware.js +24 -30
- package/dist/lib/run_in_background.d.ts +7 -3
- package/dist/lib/run_in_background.js +46 -54
- package/dist/types.d.ts +54 -53
- package/dist/types.js +3 -2
- package/package.json +47 -51
|
@@ -1,43 +1,36 @@
|
|
|
1
|
-
import { EggObjectFactory } from '@eggjs/tegg-runtime';
|
|
2
|
-
import { EggType, EggQualifierAttribute } from '@eggjs/core-decorator';
|
|
3
|
-
import { IdenticalUtil } from '@eggjs/lifecycle';
|
|
4
1
|
import { EggCompatibleProtoImpl } from "./EggCompatibleProtoImpl.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
static async createObject(name, proto) {
|
|
39
|
-
return new EggCompatibleObject(name, proto);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
2
|
+
import { EggQualifierAttribute, EggType } from "@eggjs/core-decorator";
|
|
3
|
+
import { IdenticalUtil } from "@eggjs/lifecycle";
|
|
4
|
+
import { EggObjectFactory } from "@eggjs/tegg-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/lib/EggCompatibleObject.ts
|
|
7
|
+
var EggCompatibleObject = class EggCompatibleObject {
|
|
8
|
+
isReady = true;
|
|
9
|
+
#obj;
|
|
10
|
+
proto;
|
|
11
|
+
name;
|
|
12
|
+
id;
|
|
13
|
+
isContext;
|
|
14
|
+
constructor(name, proto) {
|
|
15
|
+
this.proto = proto;
|
|
16
|
+
this.name = name;
|
|
17
|
+
this.id = IdenticalUtil.createObjectId(this.proto.id);
|
|
18
|
+
this.isContext = this.proto.verifyQualifier({
|
|
19
|
+
value: EggType.CONTEXT,
|
|
20
|
+
attribute: EggQualifierAttribute
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
get obj() {
|
|
24
|
+
if (this.isContext) return this.proto.constructEggObject();
|
|
25
|
+
if (!this.#obj) this.#obj = this.proto.constructEggObject();
|
|
26
|
+
return this.#obj;
|
|
27
|
+
}
|
|
28
|
+
injectProperty() {}
|
|
29
|
+
static async createObject(name, proto) {
|
|
30
|
+
return new EggCompatibleObject(name, proto);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
42
33
|
EggObjectFactory.registerEggObjectCreateMethod(EggCompatibleProtoImpl, EggCompatibleObject.createObject);
|
|
43
|
-
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { EggCompatibleObject };
|
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
import { AccessLevel,
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import { AccessLevel, EggProtoImplClass, EggPrototypeName, MetaDataKey, ObjectInitTypeLike, QualifierInfo, QualifierValue } from "@eggjs/core-decorator";
|
|
2
|
+
import { EggPrototype, EggPrototypeLifecycleContext, InjectObjectProto } from "@eggjs/metadata";
|
|
3
|
+
import { Id } from "@eggjs/tegg-types";
|
|
4
|
+
|
|
5
|
+
//#region src/lib/EggCompatibleProtoImpl.d.ts
|
|
6
|
+
declare const COMPATIBLE_PROTO_IMPLE_TYPE = "EGG_COMPATIBLE";
|
|
7
|
+
declare class EggCompatibleProtoImpl implements EggPrototype {
|
|
8
|
+
[key: symbol]: PropertyDescriptor;
|
|
9
|
+
private readonly clazz;
|
|
10
|
+
private readonly qualifiers;
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly name: EggPrototypeName;
|
|
13
|
+
readonly initType: ObjectInitTypeLike;
|
|
14
|
+
readonly accessLevel: AccessLevel;
|
|
15
|
+
readonly injectObjects: InjectObjectProto[];
|
|
16
|
+
readonly loadUnitId: Id;
|
|
17
|
+
constructor(id: string, name: EggPrototypeName, clazz: EggProtoImplClass, initType: ObjectInitTypeLike, loadUnitId: Id, qualifiers: QualifierInfo[]);
|
|
18
|
+
verifyQualifiers(qualifiers: QualifierInfo[]): boolean;
|
|
19
|
+
verifyQualifier(qualifier: QualifierInfo): boolean;
|
|
20
|
+
getQualifier(attribute: string): QualifierValue | undefined;
|
|
21
|
+
constructEggObject(): object;
|
|
22
|
+
getMetaData<T>(metadataKey: MetaDataKey): T | undefined;
|
|
23
|
+
static create(ctx: EggPrototypeLifecycleContext): EggPrototype;
|
|
22
24
|
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl };
|
|
@@ -1,52 +1,49 @@
|
|
|
1
|
-
import { AccessLevel, MetadataUtil, QualifierUtil
|
|
2
|
-
import { IdenticalUtil } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29tcGF0aWJsZVByb3RvSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvRWdnQ29tcGF0aWJsZVByb3RvSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUlYLFlBQVksRUFHWixhQUFhLEdBRWQsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJakQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsZ0JBQWdCLENBQUM7QUFFNUQsTUFBTSxPQUFPLHNCQUFzQjtJQUVoQixLQUFLLENBQW9CO0lBQ3pCLFVBQVUsQ0FBa0I7SUFFcEMsRUFBRSxDQUFTO0lBQ1gsSUFBSSxDQUFtQjtJQUN2QixRQUFRLENBQXFCO0lBQzdCLFdBQVcsQ0FBYztJQUN6QixhQUFhLENBQXNCO0lBQ25DLFVBQVUsQ0FBSztJQUV4QixZQUNFLEVBQVUsRUFDVixJQUFzQixFQUN0QixLQUF3QixFQUN4QixRQUE0QixFQUM1QixVQUFjLEVBQ2QsVUFBMkI7UUFFM0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQTJCO1FBQzFDLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUF3QjtRQUN0QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEYsT0FBTyxjQUFjLEVBQUUsS0FBSyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFpQjtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUN2RSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQXdCO1FBQ3JDLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQWlDO1FBQzdDLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFzQixDQUN0QyxFQUFFLEVBQ0YsSUFBSSxFQUNKLEtBQUssRUFDTCxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFDMUIsUUFBUSxDQUFDLEVBQUUsRUFDWCxhQUFhLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FDM0csQ0FBQztRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIn0=
|
|
1
|
+
import { AccessLevel, MetadataUtil, QualifierUtil } from "@eggjs/core-decorator";
|
|
2
|
+
import { IdenticalUtil } from "@eggjs/lifecycle";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/EggCompatibleProtoImpl.ts
|
|
5
|
+
const COMPATIBLE_PROTO_IMPLE_TYPE = "EGG_COMPATIBLE";
|
|
6
|
+
var EggCompatibleProtoImpl = class EggCompatibleProtoImpl {
|
|
7
|
+
clazz;
|
|
8
|
+
qualifiers;
|
|
9
|
+
id;
|
|
10
|
+
name;
|
|
11
|
+
initType;
|
|
12
|
+
accessLevel;
|
|
13
|
+
injectObjects;
|
|
14
|
+
loadUnitId;
|
|
15
|
+
constructor(id, name, clazz, initType, loadUnitId, qualifiers) {
|
|
16
|
+
this.id = id;
|
|
17
|
+
this.clazz = clazz;
|
|
18
|
+
this.name = name;
|
|
19
|
+
this.initType = initType;
|
|
20
|
+
this.accessLevel = AccessLevel.PUBLIC;
|
|
21
|
+
this.injectObjects = [];
|
|
22
|
+
this.loadUnitId = loadUnitId;
|
|
23
|
+
this.qualifiers = qualifiers;
|
|
24
|
+
}
|
|
25
|
+
verifyQualifiers(qualifiers) {
|
|
26
|
+
for (const qualifier of qualifiers) if (!this.verifyQualifier(qualifier)) return false;
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
verifyQualifier(qualifier) {
|
|
30
|
+
return this.qualifiers.find((t) => t.attribute === qualifier.attribute)?.value === qualifier.value;
|
|
31
|
+
}
|
|
32
|
+
getQualifier(attribute) {
|
|
33
|
+
return this.qualifiers.find((t) => t.attribute === attribute)?.value;
|
|
34
|
+
}
|
|
35
|
+
constructEggObject() {
|
|
36
|
+
return Reflect.apply(this.clazz, null, []);
|
|
37
|
+
}
|
|
38
|
+
getMetaData(metadataKey) {
|
|
39
|
+
return MetadataUtil.getMetaData(metadataKey, this.clazz);
|
|
40
|
+
}
|
|
41
|
+
static create(ctx) {
|
|
42
|
+
const { clazz, loadUnit } = ctx;
|
|
43
|
+
const name = ctx.prototypeInfo.name;
|
|
44
|
+
return new EggCompatibleProtoImpl(IdenticalUtil.createProtoId(loadUnit.id, name), name, clazz, ctx.prototypeInfo.initType, loadUnit.id, QualifierUtil.mergeQualifiers(QualifierUtil.getProtoQualifiers(clazz), ctx.prototypeInfo.qualifiers ?? []));
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl };
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { ModuleHandler } from "./ModuleHandler.js";
|
|
2
|
+
import { LifecycleHook } from "@eggjs/lifecycle";
|
|
3
|
+
import { EggContext, EggContextLifecycleContext } from "@eggjs/tegg-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/lib/EggContextCompatibleHook.d.ts
|
|
6
|
+
declare class EggContextCompatibleHook implements LifecycleHook<EggContextLifecycleContext, EggContext> {
|
|
7
|
+
private readonly moduleHandler;
|
|
8
|
+
private requestProtoList;
|
|
9
|
+
constructor(moduleHandler: ModuleHandler);
|
|
10
|
+
preCreate(_: unknown, ctx: EggContext): Promise<void>;
|
|
11
|
+
postCreate(_: unknown, ctx: EggContext): Promise<void>;
|
|
10
12
|
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { EggContextCompatibleHook };
|
|
@@ -1,44 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { EggContainerFactory } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
await EggContainerFactory.getOrCreateEggObject(protoObj);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
async postCreate(_, ctx) {
|
|
37
|
-
const rootProto = ctx.get(ROOT_PROTO);
|
|
38
|
-
if (rootProto) {
|
|
39
|
-
// Ensure ContextInitiator be called.
|
|
40
|
-
await EggContainerFactory.getOrCreateEggObject(rootProto);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udGV4dENvbXBhdGlibGVIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9FZ2dDb250ZXh0Q29tcGF0aWJsZUhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQW9ELE1BQU0scUJBQXFCLENBQUM7QUFFNUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2xCLGFBQWEsQ0FBZ0I7SUFDdEMsZ0JBQWdCLEdBQXdCLEVBQUUsQ0FBQztJQUVuRCxZQUFZLGFBQTRCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLEtBQUssTUFBTSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDcEUsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDakUsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBVSxFQUFFLEdBQWU7UUFDekMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDekIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDMUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sK0JBQStCO1lBQy9CLDJDQUEyQztZQUMzQywrREFBK0Q7WUFDL0QsNkJBQTZCO1lBQzdCLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNuRSxNQUFNLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLFFBQXdCLENBQUMsQ0FBQztRQUMzRSxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBVSxFQUFFLEdBQWU7UUFDMUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QscUNBQXFDO1lBQ3JDLE1BQU0sbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsU0FBeUIsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
1
|
+
import "./ModuleHandler.js";
|
|
2
|
+
import { ObjectInitType, PrototypeUtil } from "@eggjs/core-decorator";
|
|
3
|
+
import { EggContainerFactory } from "@eggjs/tegg-runtime";
|
|
4
|
+
import { BackgroundTaskHelper } from "@eggjs/background-task";
|
|
5
|
+
import { ROOT_PROTO } from "@eggjs/module-common";
|
|
6
|
+
|
|
7
|
+
//#region src/lib/EggContextCompatibleHook.ts
|
|
8
|
+
var EggContextCompatibleHook = class {
|
|
9
|
+
moduleHandler;
|
|
10
|
+
requestProtoList = [];
|
|
11
|
+
constructor(moduleHandler) {
|
|
12
|
+
this.moduleHandler = moduleHandler;
|
|
13
|
+
for (const loadUnitInstance of this.moduleHandler.loadUnitInstances) {
|
|
14
|
+
const iterator = loadUnitInstance.loadUnit.iterateEggPrototype();
|
|
15
|
+
for (const proto of iterator) if (proto.initType === ObjectInitType.CONTEXT) this.requestProtoList.push(proto);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
async preCreate(_, ctx) {
|
|
19
|
+
if (!ctx.get(ROOT_PROTO)) for (const proto of this.requestProtoList) ctx.addProtoToCreate(proto.name, proto);
|
|
20
|
+
else {
|
|
21
|
+
const protoObj = PrototypeUtil.getClazzProto(BackgroundTaskHelper);
|
|
22
|
+
await EggContainerFactory.getOrCreateEggObject(protoObj);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async postCreate(_, ctx) {
|
|
26
|
+
const rootProto = ctx.get(ROOT_PROTO);
|
|
27
|
+
if (rootProto) await EggContainerFactory.getOrCreateEggObject(rootProto);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { EggContextCompatibleHook };
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { EggContext } from "@eggjs/tegg-runtime";
|
|
2
|
+
import { Application } from "egg";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/EggContextHandler.d.ts
|
|
5
|
+
declare class EggContextHandler {
|
|
6
|
+
private readonly app;
|
|
7
|
+
constructor(app: Application);
|
|
8
|
+
getContextCallback(): EggContext | undefined;
|
|
9
|
+
run<R>(eggContext: EggContext, fn: () => Promise<R>): Promise<R>;
|
|
10
|
+
register(): void;
|
|
9
11
|
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { EggContextHandler };
|
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
import { ContextHandler } from
|
|
2
|
-
import { EGG_CONTEXT } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
1
|
+
import { ContextHandler } from "@eggjs/tegg-runtime";
|
|
2
|
+
import { EGG_CONTEXT } from "@eggjs/module-common";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/EggContextHandler.ts
|
|
5
|
+
var EggContextHandler = class {
|
|
6
|
+
app;
|
|
7
|
+
constructor(app) {
|
|
8
|
+
this.app = app;
|
|
9
|
+
}
|
|
10
|
+
getContextCallback() {
|
|
11
|
+
return this.app.currentContext?.teggContext;
|
|
12
|
+
}
|
|
13
|
+
async run(eggContext, fn) {
|
|
14
|
+
const ctx = eggContext.get(EGG_CONTEXT);
|
|
15
|
+
return await this.app.ctxStorage.run(ctx, fn);
|
|
16
|
+
}
|
|
17
|
+
register() {
|
|
18
|
+
ContextHandler.getContextCallback = () => {
|
|
19
|
+
return this.getContextCallback();
|
|
20
|
+
};
|
|
21
|
+
ContextHandler.runInContextCallback = async (context, fn) => {
|
|
22
|
+
return await this.run(context, fn);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export { EggContextHandler };
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { AbstractEggContext } from "@eggjs/tegg-runtime";
|
|
2
|
+
import { Context } from "egg";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/EggContextImpl.d.ts
|
|
5
|
+
declare class EggContextImpl extends AbstractEggContext {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
constructor(ctx: Context);
|
|
6
8
|
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { EggContextImpl };
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { EGG_CONTEXT, TEGG_CONTEXT } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
1
|
+
import { IdenticalUtil } from "@eggjs/lifecycle";
|
|
2
|
+
import { AbstractEggContext } from "@eggjs/tegg-runtime";
|
|
3
|
+
import { EGG_CONTEXT, TEGG_CONTEXT } from "@eggjs/module-common";
|
|
4
|
+
|
|
5
|
+
//#region src/lib/EggContextImpl.ts
|
|
6
|
+
var EggContextImpl = class extends AbstractEggContext {
|
|
7
|
+
id;
|
|
8
|
+
constructor(ctx) {
|
|
9
|
+
super();
|
|
10
|
+
this.set(EGG_CONTEXT, ctx);
|
|
11
|
+
ctx[TEGG_CONTEXT] = this;
|
|
12
|
+
const tracer = ctx.tracer;
|
|
13
|
+
this.id = IdenticalUtil.createContextId(tracer?.traceId);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { EggContextImpl };
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { GlobalGraph } from
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { GlobalGraph } from "@eggjs/metadata";
|
|
2
|
+
import { Application } from "egg";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/EggModuleLoader.d.ts
|
|
5
|
+
declare class EggModuleLoader {
|
|
6
|
+
app: Application;
|
|
7
|
+
globalGraph: GlobalGraph;
|
|
8
|
+
constructor(app: Application);
|
|
9
|
+
private loadApp;
|
|
10
|
+
private buildAppGraph;
|
|
11
|
+
private loadModule;
|
|
12
|
+
load(): Promise<void>;
|
|
11
13
|
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { EggModuleLoader };
|
|
@@ -1,53 +1,49 @@
|
|
|
1
|
-
import { EggLoadUnitType, LoadUnitFactory, GlobalGraph, ModuleDescriptorDumper } from '@eggjs/metadata';
|
|
2
|
-
import { LoaderFactory } from '@eggjs/tegg-loader';
|
|
3
1
|
import { EggAppLoader } from "./EggAppLoader.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnTW9kdWxlTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9FZ2dNb2R1bGVMb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixHQUFHLENBQWM7SUFDakIsV0FBVyxDQUFjO0lBRXpCLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYTtRQUN6QixLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFBRSxTQUFTO1lBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRixJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixZQUFZLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRixLQUFLLE1BQU0sZ0JBQWdCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzVDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU87YUFDMUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNiLENBQUMsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDMUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7UUFDM0QsS0FBSyxNQUFNLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQzVDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckUsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUIsQ0FBQztDQUNGIn0=
|
|
2
|
+
import { EggLoadUnitType, GlobalGraph, LoadUnitFactory, ModuleDescriptorDumper } from "@eggjs/metadata";
|
|
3
|
+
import { LoaderFactory } from "@eggjs/tegg-loader";
|
|
4
|
+
|
|
5
|
+
//#region src/lib/EggModuleLoader.ts
|
|
6
|
+
var EggModuleLoader = class {
|
|
7
|
+
app;
|
|
8
|
+
globalGraph;
|
|
9
|
+
constructor(app) {
|
|
10
|
+
this.app = app;
|
|
11
|
+
}
|
|
12
|
+
async loadApp() {
|
|
13
|
+
const loader = new EggAppLoader(this.app);
|
|
14
|
+
const loadUnit = await LoadUnitFactory.createLoadUnit(this.app.baseDir, EggLoadUnitType.APP, loader);
|
|
15
|
+
this.app.moduleHandler.loadUnits.push(loadUnit);
|
|
16
|
+
}
|
|
17
|
+
async buildAppGraph() {
|
|
18
|
+
for (const plugin of Object.values(this.app.plugins)) {
|
|
19
|
+
if (!plugin.enable) continue;
|
|
20
|
+
const modulePlugin = this.app.moduleReferences.find((t) => t.path === plugin.path);
|
|
21
|
+
if (modulePlugin) modulePlugin.optional = false;
|
|
22
|
+
}
|
|
23
|
+
const moduleDescriptors = await LoaderFactory.loadApp(this.app.moduleReferences);
|
|
24
|
+
for (const moduleDescriptor of moduleDescriptors) ModuleDescriptorDumper.dump(moduleDescriptor, { dumpDir: this.app.baseDir }).catch((e) => {
|
|
25
|
+
e.message = "dump module descriptor failed: " + e.message;
|
|
26
|
+
this.app.logger.warn(e);
|
|
27
|
+
});
|
|
28
|
+
return await GlobalGraph.create(moduleDescriptors);
|
|
29
|
+
}
|
|
30
|
+
async loadModule() {
|
|
31
|
+
this.globalGraph.build();
|
|
32
|
+
this.globalGraph.sort();
|
|
33
|
+
const moduleConfigList = this.globalGraph.moduleConfigList;
|
|
34
|
+
for (const moduleConfig of moduleConfigList) {
|
|
35
|
+
const modulePath = moduleConfig.path;
|
|
36
|
+
const loader = LoaderFactory.createLoader(modulePath, EggLoadUnitType.MODULE);
|
|
37
|
+
const loadUnit = await LoadUnitFactory.createLoadUnit(modulePath, EggLoadUnitType.MODULE, loader);
|
|
38
|
+
this.app.moduleHandler.loadUnits.push(loadUnit);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async load() {
|
|
42
|
+
GlobalGraph.instance = this.globalGraph = await this.buildAppGraph();
|
|
43
|
+
await this.loadApp();
|
|
44
|
+
await this.loadModule();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { EggModuleLoader };
|