@eggjs/orm-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/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.js +10 -0
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.js +7 -0
- package/dist/app.d.ts +17 -13
- package/dist/app.js +37 -45
- package/dist/config/config.default.d.ts +8 -5
- package/dist/config/config.default.js +5 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/lib/DataSourceManager.d.ts +21 -18
- package/dist/lib/DataSourceManager.js +22 -23
- package/dist/lib/LeoricRegister.d.ts +19 -15
- package/dist/lib/LeoricRegister.js +67 -84
- package/dist/lib/ModelProtoHook.d.ts +11 -7
- package/dist/lib/ModelProtoHook.js +17 -18
- package/dist/lib/ModelProtoManager.d.ts +13 -9
- package/dist/lib/ModelProtoManager.js +18 -10
- package/dist/lib/ORMLoadUnitHook.d.ts +8 -4
- package/dist/lib/ORMLoadUnitHook.js +14 -14
- package/dist/lib/SingletonModelObject.d.ts +25 -21
- package/dist/lib/SingletonModelObject.js +49 -53
- package/dist/lib/SingletonModelProto.d.ts +26 -22
- package/dist/lib/SingletonModelProto.js +39 -46
- package/dist/lib/SingletonORM.d.ts +9 -5
- package/dist/lib/SingletonORM.js +21 -35
- package/dist/lib/types.d.ts +7 -3
- package/dist/lib/types.js +1 -2
- package/dist/types.d.ts +22 -20
- package/dist/types.js +3 -2
- package/package.json +45 -49
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { EggLoadUnitType, EggPrototypeCreatorFactory, EggPrototypeFactory, } from '@eggjs/metadata';
|
|
2
1
|
import { Orm } from "./SingletonORM.js";
|
|
2
|
+
import { EggLoadUnitType, EggPrototypeCreatorFactory, EggPrototypeFactory } from "@eggjs/metadata";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/ORMLoadUnitHook.ts
|
|
3
5
|
const REGISTER_CLAZZ = [Orm];
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT1JNTG9hZFVuaXRIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9PUk1Mb2FkVW5pdEhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsbUJBQW1CLEdBR3BCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFN0IsTUFBTSxPQUFPLGVBQWU7SUFDMUIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUE4QixFQUFFLFFBQWtCO1FBQ2pFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUMsS0FBSyxNQUFNLEtBQUssSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSwwQkFBMEIsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RSxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUMzQixtQkFBbUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
6
|
+
var ORMLoadUnitHook = class {
|
|
7
|
+
async postCreate(_ctx, loadUnit) {
|
|
8
|
+
if (loadUnit.type === EggLoadUnitType.APP) for (const clazz of REGISTER_CLAZZ) {
|
|
9
|
+
const protos = await EggPrototypeCreatorFactory.createProto(clazz, loadUnit);
|
|
10
|
+
for (const proto of protos) EggPrototypeFactory.instance.registerPrototype(proto, loadUnit);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { ORMLoadUnitHook };
|
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import SingletonModelProto from "./SingletonModelProto.js";
|
|
2
|
+
import { Bone } from "leoric";
|
|
3
|
+
import { EggPrototype } from "@eggjs/metadata";
|
|
4
|
+
import { EggObjectName, EggPrototypeName } from "@eggjs/core-decorator";
|
|
5
|
+
import { Id } from "@eggjs/lifecycle";
|
|
6
|
+
import { EggObject } from "@eggjs/tegg-runtime";
|
|
7
|
+
|
|
8
|
+
//#region src/lib/SingletonModelObject.d.ts
|
|
9
|
+
declare class SingletonModelObject implements EggObject {
|
|
10
|
+
private status;
|
|
11
|
+
id: Id;
|
|
12
|
+
readonly name: EggPrototypeName;
|
|
13
|
+
private _obj;
|
|
14
|
+
readonly proto: SingletonModelProto;
|
|
15
|
+
constructor(name: EggObjectName, proto: SingletonModelProto);
|
|
16
|
+
init(): Promise<void>;
|
|
17
|
+
injectProperty(): void;
|
|
18
|
+
get isReady(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* get Model Class, to store instance objects
|
|
21
|
+
*/
|
|
22
|
+
get obj(): typeof Bone;
|
|
23
|
+
static createObject(name: EggObjectName, proto: EggPrototype): Promise<SingletonModelObject>;
|
|
22
24
|
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { SingletonModelObject };
|
|
@@ -1,53 +1,49 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { IdenticalUtil } from
|
|
3
|
-
import { EGG_CONTEXT } from
|
|
4
|
-
import
|
|
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
|
-
return modelObject;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxPYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1NpbmdsZXRvbk1vZGVsT2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWtCLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3RGLE9BQU8sRUFBVyxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxtQkFBbUIsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sb0JBQW9CO0lBQ3ZCLE1BQU0sR0FBb0IsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUMxRCxFQUFFLENBQUs7SUFDRSxJQUFJLENBQW1CO0lBQ3hCLElBQUksQ0FBYztJQUNqQixLQUFLLENBQXNCO0lBRXBDLFlBQVksSUFBbUIsRUFBRSxLQUEwQjtRQUN6RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLEtBQUssR0FBRyxNQUFNLGlCQUFrQixTQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUM1RCxxREFBcUQ7WUFDckQsTUFBTSxLQUFLLElBQUk7Z0JBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3BCLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRztnQkFDWixNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM5QixDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksR0FBRztnQkFDTCxPQUFPLGlCQUFpQixDQUFDLEdBQUcsQ0FBQztZQUMvQixDQUFDO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFtQixFQUFFLEtBQW1CO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLEtBQTRCLENBQUMsQ0FBQztRQUNqRixNQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YifQ==
|
|
1
|
+
import "./SingletonModelProto.js";
|
|
2
|
+
import { IdenticalUtil } from "@eggjs/lifecycle";
|
|
3
|
+
import { EGG_CONTEXT } from "@eggjs/module-common";
|
|
4
|
+
import { ContextHandler, EggObjectStatus } from "@eggjs/tegg-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/lib/SingletonModelObject.ts
|
|
7
|
+
var SingletonModelObject = class SingletonModelObject {
|
|
8
|
+
constructor(name, proto) {
|
|
9
|
+
this.status = EggObjectStatus.PENDING;
|
|
10
|
+
this.name = name;
|
|
11
|
+
this.proto = proto;
|
|
12
|
+
this.id = IdenticalUtil.createObjectId(this.proto.id);
|
|
13
|
+
}
|
|
14
|
+
async init() {
|
|
15
|
+
this._obj = class ContextModelClass extends this.proto.model {
|
|
16
|
+
static get name() {
|
|
17
|
+
return super.name;
|
|
18
|
+
}
|
|
19
|
+
static get ctx() {
|
|
20
|
+
const ctx = ContextHandler.getContext();
|
|
21
|
+
if (ctx) return ctx.get(EGG_CONTEXT);
|
|
22
|
+
}
|
|
23
|
+
get ctx() {
|
|
24
|
+
return ContextModelClass.ctx;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
this.status = EggObjectStatus.READY;
|
|
28
|
+
}
|
|
29
|
+
injectProperty() {
|
|
30
|
+
throw new Error("never call ModelObject#injectProperty");
|
|
31
|
+
}
|
|
32
|
+
get isReady() {
|
|
33
|
+
return this.status === EggObjectStatus.READY;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* get Model Class, to store instance objects
|
|
37
|
+
*/
|
|
38
|
+
get obj() {
|
|
39
|
+
return this._obj;
|
|
40
|
+
}
|
|
41
|
+
static async createObject(name, proto) {
|
|
42
|
+
const modelObject = new SingletonModelObject(name, proto);
|
|
43
|
+
await modelObject.init();
|
|
44
|
+
return modelObject;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { SingletonModelObject };
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import { Bone } from "leoric";
|
|
2
|
+
import { EggPrototype, EggPrototypeLifecycleContext, InjectConstructorProto, InjectObjectProto, LoadUnit } from "@eggjs/metadata";
|
|
3
|
+
import { AccessLevel, EggPrototypeName, MetaDataKey, ObjectInitType, QualifierAttribute, QualifierInfo, QualifierValue } from "@eggjs/core-decorator";
|
|
4
|
+
import { Id } from "@eggjs/lifecycle";
|
|
5
|
+
|
|
6
|
+
//#region src/lib/SingletonModelProto.d.ts
|
|
7
|
+
declare class SingletonModelProto implements EggPrototype {
|
|
8
|
+
[key: symbol]: PropertyDescriptor;
|
|
9
|
+
private readonly qualifiers;
|
|
10
|
+
readonly accessLevel: AccessLevel;
|
|
11
|
+
id: Id;
|
|
12
|
+
readonly initType: ObjectInitType;
|
|
13
|
+
readonly injectObjects: (InjectObjectProto | InjectConstructorProto)[];
|
|
14
|
+
readonly loadUnitId: string;
|
|
15
|
+
readonly moduleName: string;
|
|
16
|
+
readonly name: EggPrototypeName;
|
|
17
|
+
readonly model: typeof Bone;
|
|
18
|
+
constructor(loadUnit: LoadUnit, model: typeof Bone);
|
|
19
|
+
constructEggObject(): object;
|
|
20
|
+
getMetaData<T>(metadataKey: MetaDataKey): T | undefined;
|
|
21
|
+
verifyQualifier(qualifier: QualifierInfo): boolean;
|
|
22
|
+
verifyQualifiers(qualifiers: QualifierInfo[]): boolean;
|
|
23
|
+
getQualifier(attribute: QualifierAttribute): QualifierValue | undefined;
|
|
24
|
+
static createProto(ctx: EggPrototypeLifecycleContext): SingletonModelProto;
|
|
23
25
|
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { SingletonModelProto as default };
|
|
@@ -1,46 +1,39 @@
|
|
|
1
|
-
import { AccessLevel, ObjectInitType, 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
|
-
return this.qualifiers.find((t) => t.attribute === attribute)?.value;
|
|
41
|
-
}
|
|
42
|
-
static createProto(ctx) {
|
|
43
|
-
return new SingletonModelProto(ctx.loadUnit, ctx.clazz);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxQcm90by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvU2luZ2xldG9uTW9kZWxQcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQ0wsV0FBVyxFQUVYLGNBQWMsRUFFZCxhQUFhLEVBQ2IsWUFBWSxHQUliLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFXLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzFELE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW1CO0lBRXJCLFVBQVUsQ0FBa0I7SUFDcEMsV0FBVyxHQUFnQixXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ3ZELEVBQUUsQ0FBSztJQUNFLFFBQVEsR0FBbUIsY0FBYyxDQUFDLFNBQVMsQ0FBQztJQUNwRCxhQUFhLEdBQW1ELEVBQUUsQ0FBQztJQUNuRSxVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQ25CLElBQUksQ0FBbUI7SUFDdkIsS0FBSyxDQUFjO0lBRTVCLFlBQVksUUFBa0IsRUFBRSxLQUFrQjtRQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxVQUFVLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQXdCO1FBQ3JDLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBd0I7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hGLE9BQU8sY0FBYyxFQUFFLEtBQUssS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUEyQjtRQUMxQyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBNkI7UUFDeEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBaUM7UUFDbEQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQW9CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0YifQ==
|
|
1
|
+
import { AccessLevel, MetadataUtil, ObjectInitType, QualifierUtil } from "@eggjs/core-decorator";
|
|
2
|
+
import { IdenticalUtil } from "@eggjs/lifecycle";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/SingletonModelProto.ts
|
|
5
|
+
var SingletonModelProto = class SingletonModelProto {
|
|
6
|
+
constructor(loadUnit, model) {
|
|
7
|
+
this.accessLevel = AccessLevel.PUBLIC;
|
|
8
|
+
this.initType = ObjectInitType.SINGLETON;
|
|
9
|
+
this.injectObjects = [];
|
|
10
|
+
this.model = model;
|
|
11
|
+
this.id = IdenticalUtil.createProtoId(loadUnit.id, `leoric:${model.name}`);
|
|
12
|
+
this.loadUnitId = loadUnit.id;
|
|
13
|
+
this.moduleName = loadUnit.name;
|
|
14
|
+
this.name = model.name;
|
|
15
|
+
this.qualifiers = QualifierUtil.getProtoQualifiers(model);
|
|
16
|
+
}
|
|
17
|
+
constructEggObject() {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
getMetaData(metadataKey) {
|
|
21
|
+
return MetadataUtil.getMetaData(metadataKey, this.model);
|
|
22
|
+
}
|
|
23
|
+
verifyQualifier(qualifier) {
|
|
24
|
+
return this.qualifiers.find((t) => t.attribute === qualifier.attribute)?.value === qualifier.value;
|
|
25
|
+
}
|
|
26
|
+
verifyQualifiers(qualifiers) {
|
|
27
|
+
for (const qualifier of qualifiers) if (!this.verifyQualifier(qualifier)) return false;
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
getQualifier(attribute) {
|
|
31
|
+
return this.qualifiers.find((t) => t.attribute === attribute)?.value;
|
|
32
|
+
}
|
|
33
|
+
static createProto(ctx) {
|
|
34
|
+
return new SingletonModelProto(ctx.loadUnit, ctx.clazz);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { SingletonModelProto as default };
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { RealmType } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/SingletonORM.d.ts
|
|
4
|
+
declare class Orm {
|
|
5
|
+
private leoricRegister;
|
|
6
|
+
get client(): RealmType;
|
|
7
|
+
getClient(datasource: string): RealmType;
|
|
6
8
|
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Orm };
|
package/dist/lib/SingletonORM.js
CHANGED
|
@@ -1,37 +1,23 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { AccessLevel, Inject, SingletonProto } from '@eggjs/core-decorator';
|
|
11
1
|
import { LeoricRegister } from "./LeoricRegister.js";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
2
|
+
import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.js";
|
|
3
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.js";
|
|
4
|
+
import { AccessLevel, Inject, SingletonProto } from "@eggjs/core-decorator";
|
|
5
|
+
|
|
6
|
+
//#region src/lib/SingletonORM.ts
|
|
7
|
+
var _ref;
|
|
8
|
+
let Orm = class Orm$1 {
|
|
9
|
+
get client() {
|
|
10
|
+
const defaultConfig = this.leoricRegister.getConfig();
|
|
11
|
+
return this.leoricRegister.getRealm(defaultConfig);
|
|
12
|
+
}
|
|
13
|
+
getClient(datasource) {
|
|
14
|
+
const config = this.leoricRegister.getConfig(datasource);
|
|
15
|
+
if (!config) throw new Error(`not found ${datasource} datasource`);
|
|
16
|
+
return this.leoricRegister.getOrCreateRealm(config.database);
|
|
17
|
+
}
|
|
26
18
|
};
|
|
27
|
-
__decorate([
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Orm
|
|
32
|
-
SingletonProto({
|
|
33
|
-
accessLevel: AccessLevel.PUBLIC,
|
|
34
|
-
})
|
|
35
|
-
], Orm);
|
|
36
|
-
export { Orm };
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uT1JNLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9TaW5nbGV0b25PUk0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBTTlDLElBQU0sR0FBRyxHQUFULE1BQU0sR0FBRztJQUVOLGNBQWMsQ0FBaUI7SUFFdkMscUJBQXFCO0lBQ3JCLElBQUksTUFBTTtRQUNSLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsU0FBUyxDQUFDLFVBQWtCO1FBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxVQUFVLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBRSxDQUFDO0lBQ2hFLENBQUM7Q0FDRixDQUFBO0FBZlM7SUFEUCxNQUFNLEVBQUU7OEJBQ2UsY0FBYzsyQ0FBQztBQUY1QixHQUFHO0lBSGYsY0FBYyxDQUFDO1FBQ2QsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxHQUFHLENBaUJmIn0=
|
|
19
|
+
__decorate([Inject(), __decorateMetadata("design:type", typeof (_ref = typeof LeoricRegister !== "undefined" && LeoricRegister) === "function" ? _ref : Object)], Orm.prototype, "leoricRegister", void 0);
|
|
20
|
+
Orm = __decorate([SingletonProto({ accessLevel: AccessLevel.PUBLIC })], Orm);
|
|
21
|
+
|
|
22
|
+
//#endregion
|
|
23
|
+
export { Orm };
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { AbstractDriver, connect } from "leoric";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/types.d.ts
|
|
4
|
+
type DataType = AbstractDriver["DataType"];
|
|
5
|
+
type RealmType = Awaited<ReturnType<typeof connect>>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { DataType, RealmType };
|
package/dist/lib/types.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
1
|
+
export { };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
interface EggAppConfig {
|
|
12
|
-
/**
|
|
13
|
-
* orm config
|
|
14
|
-
*/
|
|
15
|
-
orm: AppOrmConfig;
|
|
16
|
-
}
|
|
17
|
-
interface Application {
|
|
18
|
-
leoricRegister: LeoricRegister;
|
|
19
|
-
orm: Orm;
|
|
20
|
-
}
|
|
1
|
+
import { AppOrmConfig } from "./config/config.default.js";
|
|
2
|
+
import { DataType } from "./lib/types.js";
|
|
3
|
+
import { LeoricRegister } from "./lib/LeoricRegister.js";
|
|
4
|
+
import { Orm } from "./lib/SingletonORM.js";
|
|
5
|
+
import { AttributeOptions } from "@eggjs/orm-decorator";
|
|
6
|
+
import "@eggjs/tegg-plugin/types";
|
|
7
|
+
|
|
8
|
+
//#region src/types.d.ts
|
|
9
|
+
declare module "@eggjs/orm-decorator" {
|
|
10
|
+
function Attribute(dataType: DataType, options?: AttributeOptions): (target: any, propertyKey: PropertyKey) => void;
|
|
21
11
|
}
|
|
12
|
+
declare module "egg" {
|
|
13
|
+
interface EggAppConfig {
|
|
14
|
+
/**
|
|
15
|
+
* orm config
|
|
16
|
+
*/
|
|
17
|
+
orm: AppOrmConfig;
|
|
18
|
+
}
|
|
19
|
+
interface Application {
|
|
20
|
+
leoricRegister: LeoricRegister;
|
|
21
|
+
orm: Orm;
|
|
22
|
+
}
|
|
23
|
+
}
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import "@eggjs/tegg-plugin/types";
|
|
2
|
+
|
|
3
|
+
export { };
|
package/package.json
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/orm-plugin",
|
|
3
|
-
"
|
|
4
|
-
"name": "teggOrm",
|
|
5
|
-
"dependencies": [
|
|
6
|
-
"tegg"
|
|
7
|
-
]
|
|
8
|
-
},
|
|
9
|
-
"version": "4.0.0-beta.34",
|
|
3
|
+
"version": "4.0.0-beta.36",
|
|
10
4
|
"description": "orm decorator for egg",
|
|
11
5
|
"keywords": [
|
|
12
6
|
"egg",
|
|
13
|
-
"
|
|
14
|
-
"typescript",
|
|
7
|
+
"leoric",
|
|
15
8
|
"module",
|
|
16
|
-
"tegg",
|
|
17
9
|
"orm",
|
|
18
|
-
"
|
|
10
|
+
"plugin",
|
|
11
|
+
"tegg",
|
|
12
|
+
"typescript"
|
|
19
13
|
],
|
|
14
|
+
"homepage": "https://github.com/eggjs/egg/tree/next/tegg/plugin/orm",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/eggjs/egg/issues"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/eggjs/egg.git",
|
|
21
|
+
"directory": "tegg/plugin/orm"
|
|
22
|
+
},
|
|
20
23
|
"files": [
|
|
21
24
|
"dist"
|
|
22
25
|
],
|
|
23
26
|
"type": "module",
|
|
27
|
+
"main": "./dist/index.js",
|
|
28
|
+
"module": "./dist/index.js",
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
24
30
|
"exports": {
|
|
25
31
|
".": "./dist/index.js",
|
|
26
32
|
"./app": "./dist/app.js",
|
|
@@ -37,56 +43,46 @@
|
|
|
37
43
|
"./types": "./dist/types.js",
|
|
38
44
|
"./package.json": "./package.json"
|
|
39
45
|
},
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
"url": "https://github.com/eggjs/egg/issues"
|
|
43
|
-
},
|
|
44
|
-
"repository": {
|
|
45
|
-
"type": "git",
|
|
46
|
-
"url": "git@github.com:eggjs/egg.git",
|
|
47
|
-
"directory": "tegg/plugin/orm"
|
|
48
|
-
},
|
|
49
|
-
"engines": {
|
|
50
|
-
"node": ">=22.18.0"
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"access": "public"
|
|
51
48
|
},
|
|
52
49
|
"dependencies": {
|
|
53
50
|
"leoric": "^2.12.2",
|
|
54
51
|
"sdk-base": "^5.0.1",
|
|
55
|
-
"@eggjs/
|
|
56
|
-
"@eggjs/
|
|
57
|
-
"@eggjs/
|
|
58
|
-
"@eggjs/
|
|
59
|
-
"@eggjs/
|
|
60
|
-
"@eggjs/
|
|
61
|
-
},
|
|
62
|
-
"peerDependencies": {
|
|
63
|
-
"@eggjs/tegg-plugin": "4.0.0-beta.34",
|
|
64
|
-
"egg": "4.1.0-beta.34"
|
|
52
|
+
"@eggjs/core-decorator": "4.0.0-beta.36",
|
|
53
|
+
"@eggjs/lifecycle": "4.0.0-beta.36",
|
|
54
|
+
"@eggjs/metadata": "4.0.0-beta.36",
|
|
55
|
+
"@eggjs/orm-decorator": "4.0.0-beta.36",
|
|
56
|
+
"@eggjs/tegg-runtime": "4.0.0-beta.36",
|
|
57
|
+
"@eggjs/module-common": "4.0.0-beta.36"
|
|
65
58
|
},
|
|
66
59
|
"devDependencies": {
|
|
67
|
-
"@types/node": "^24.
|
|
60
|
+
"@types/node": "^24.10.2",
|
|
68
61
|
"mysql2": "^3.12.0",
|
|
69
|
-
"tsdown": "0.15.11",
|
|
70
62
|
"typescript": "^5.9.3",
|
|
71
|
-
"unplugin-unused": "^0.5.4",
|
|
72
|
-
"@eggjs/mock": "7.0.0-beta.34",
|
|
73
63
|
"@eggjs/module-test-util": "4.0.0-beta.29",
|
|
74
|
-
"@eggjs/tegg-config": "4.0.0-beta.
|
|
75
|
-
"@eggjs/tegg": "4.0.0-beta.
|
|
76
|
-
"@eggjs/
|
|
77
|
-
"
|
|
78
|
-
"@eggjs/
|
|
64
|
+
"@eggjs/tegg-config": "4.0.0-beta.36",
|
|
65
|
+
"@eggjs/tegg-plugin": "4.0.0-beta.36",
|
|
66
|
+
"@eggjs/tracer": "4.0.0-beta.36",
|
|
67
|
+
"@eggjs/mock": "7.0.0-beta.36",
|
|
68
|
+
"@eggjs/tegg": "4.0.0-beta.36",
|
|
69
|
+
"egg": "4.1.0-beta.36"
|
|
79
70
|
},
|
|
80
|
-
"
|
|
81
|
-
"
|
|
71
|
+
"peerDependencies": {
|
|
72
|
+
"@eggjs/tegg-plugin": "4.0.0-beta.36",
|
|
73
|
+
"egg": "4.1.0-beta.36"
|
|
74
|
+
},
|
|
75
|
+
"engines": {
|
|
76
|
+
"node": ">=22.18.0"
|
|
77
|
+
},
|
|
78
|
+
"eggPlugin": {
|
|
79
|
+
"name": "teggOrm",
|
|
80
|
+
"dependencies": [
|
|
81
|
+
"tegg"
|
|
82
|
+
]
|
|
82
83
|
},
|
|
83
|
-
"main": "./dist/index.js",
|
|
84
|
-
"module": "./dist/index.js",
|
|
85
|
-
"types": "./dist/index.d.ts",
|
|
86
84
|
"scripts": {
|
|
87
|
-
"
|
|
88
|
-
"build": "tsdown && npm run clean && tsc -p tsconfig.build.json",
|
|
89
|
-
"typecheck": "tsc --noEmit --project tsconfig.build.json",
|
|
85
|
+
"typecheck": "tsgo --noEmit --project tsconfig.typecheck.json",
|
|
90
86
|
"pretest": "node ./test/fixtures/prepare.js"
|
|
91
87
|
}
|
|
92
88
|
}
|