@eggjs/tegg-orm-plugin 4.0.0-beta.7 → 4.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +19 -23
- package/dist/app.js +40 -38
- package/dist/config/config.default.d.ts +11 -14
- package/dist/config/config.default.js +4 -5
- package/dist/index.d.ts +4 -3
- package/dist/index.js +3 -3
- package/dist/lib/DataSourceManager.d.ts +18 -21
- package/dist/lib/DataSourceManager.js +21 -22
- package/dist/lib/LeoricRegister.d.ts +15 -19
- package/dist/lib/LeoricRegister.js +82 -68
- package/dist/lib/ModelProtoHook.d.ts +7 -11
- package/dist/lib/ModelProtoHook.js +19 -20
- package/dist/lib/ModelProtoManager.d.ts +9 -13
- package/dist/lib/ModelProtoManager.js +14 -21
- package/dist/lib/ORMLoadUnitHook.d.ts +4 -8
- package/dist/lib/ORMLoadUnitHook.js +18 -16
- package/dist/lib/SingletonModelObject.d.ts +18 -22
- package/dist/lib/SingletonModelObject.js +50 -49
- package/dist/lib/SingletonModelProto.d.ts +22 -26
- package/dist/lib/SingletonModelProto.js +42 -41
- package/dist/lib/SingletonORM.d.ts +5 -9
- package/dist/lib/SingletonORM.js +34 -21
- package/dist/lib/types.d.ts +3 -7
- package/dist/lib/types.js +2 -3
- package/dist/types.d.ts +6 -7
- package/dist/types.js +3 -4
- package/package.json +11 -11
- package/dist/_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js +0 -10
- package/dist/_virtual/_@oxc-project_runtime@0.93.0/helpers/decorateMetadata.js +0 -7
package/dist/app.d.ts
CHANGED
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
didLoad(): Promise<void>;
|
|
17
|
-
beforeClose(): Promise<void>;
|
|
1
|
+
import { Application } from 'egg';
|
|
2
|
+
import { Orm } from './lib/SingletonORM.ts';
|
|
3
|
+
import { LeoricRegister } from './lib/LeoricRegister.ts';
|
|
4
|
+
export default class OrmAppBootHook {
|
|
5
|
+
private readonly app;
|
|
6
|
+
private readonly dataSourceManager;
|
|
7
|
+
private readonly leoricRegister;
|
|
8
|
+
private readonly modelProtoManager;
|
|
9
|
+
private readonly modelProtoHook;
|
|
10
|
+
private readonly ormLoadUnitHook;
|
|
11
|
+
constructor(app: Application);
|
|
12
|
+
configWillLoad(): void;
|
|
13
|
+
configDidLoad(): void;
|
|
14
|
+
didLoad(): Promise<void>;
|
|
15
|
+
beforeClose(): Promise<void>;
|
|
18
16
|
}
|
|
19
17
|
declare module 'egg' {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
interface Application {
|
|
19
|
+
leoricRegister: LeoricRegister;
|
|
20
|
+
orm: Orm;
|
|
21
|
+
}
|
|
24
22
|
}
|
|
25
|
-
//#endregion
|
|
26
|
-
export { OrmAppBootHook as default };
|
package/dist/app.js
CHANGED
|
@@ -1,44 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Application } from 'egg';
|
|
2
|
+
import { MODEL_PROTO_IMPL_TYPE } from '@eggjs/tegg-orm-decorator';
|
|
3
|
+
import { Orm } from "./lib/SingletonORM.js";
|
|
2
4
|
import { DataSourceManager } from "./lib/DataSourceManager.js";
|
|
3
5
|
import { LeoricRegister } from "./lib/LeoricRegister.js";
|
|
4
|
-
import "./lib/
|
|
6
|
+
import { ModelProtoManager } from "./lib/ModelProtoManager.js";
|
|
5
7
|
import { ModelProtoHook } from "./lib/ModelProtoHook.js";
|
|
6
8
|
import SingletonModelProto from "./lib/SingletonModelProto.js";
|
|
7
9
|
import { SingletonModelObject } from "./lib/SingletonModelObject.js";
|
|
8
10
|
import { ORMLoadUnitHook } from "./lib/ORMLoadUnitHook.js";
|
|
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
|
-
|
|
11
|
+
export default class OrmAppBootHook {
|
|
12
|
+
constructor(app) {
|
|
13
|
+
this.app = app;
|
|
14
|
+
this.dataSourceManager = new DataSourceManager();
|
|
15
|
+
this.modelProtoManager = new ModelProtoManager();
|
|
16
|
+
this.leoricRegister = new LeoricRegister(this.modelProtoManager, this.dataSourceManager);
|
|
17
|
+
this.modelProtoHook = new ModelProtoHook(this.modelProtoManager);
|
|
18
|
+
this.app.eggPrototypeCreatorFactory.registerPrototypeCreator(MODEL_PROTO_IMPL_TYPE, SingletonModelProto.createProto);
|
|
19
|
+
this.app.leoricRegister = this.leoricRegister;
|
|
20
|
+
this.ormLoadUnitHook = new ORMLoadUnitHook();
|
|
21
|
+
}
|
|
22
|
+
configWillLoad() {
|
|
23
|
+
this.app.eggPrototypeLifecycleUtil.registerLifecycle(this.modelProtoHook);
|
|
24
|
+
this.app.eggObjectFactory.registerEggObjectCreateMethod(SingletonModelProto, SingletonModelObject.createObject);
|
|
25
|
+
this.app.loadUnitLifecycleUtil.registerLifecycle(this.ormLoadUnitHook);
|
|
26
|
+
}
|
|
27
|
+
configDidLoad() {
|
|
28
|
+
const config = this.app.config.orm;
|
|
29
|
+
if (config.datasources) {
|
|
30
|
+
for (const datasource of config.datasources) {
|
|
31
|
+
this.dataSourceManager.addConfig(datasource);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.dataSourceManager.addDefaultConfig(config);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async didLoad() {
|
|
39
|
+
await this.app.moduleHandler.ready();
|
|
40
|
+
await this.leoricRegister.register();
|
|
41
|
+
}
|
|
42
|
+
async beforeClose() {
|
|
43
|
+
this.app.eggPrototypeLifecycleUtil.deleteLifecycle(this.modelProtoHook);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sbUJBQW1CLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBYztJQVFqQyxZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsbUJBQW1CLEVBQUUsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDbkMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGIn0=
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import { OrmConfig } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
interface AppOrmConfig extends OrmConfig {
|
|
5
|
-
datasources?: OrmConfig[];
|
|
1
|
+
import type { OrmConfig } from '../lib/DataSourceManager.ts';
|
|
2
|
+
export interface AppOrmConfig extends OrmConfig {
|
|
3
|
+
datasources?: OrmConfig[];
|
|
6
4
|
}
|
|
7
5
|
declare const _default: {
|
|
8
|
-
|
|
6
|
+
orm: AppOrmConfig;
|
|
9
7
|
};
|
|
8
|
+
export default _default;
|
|
10
9
|
declare module 'egg' {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
interface EggAppConfig {
|
|
11
|
+
/**
|
|
12
|
+
* orm config
|
|
13
|
+
*/
|
|
14
|
+
orm: AppOrmConfig;
|
|
15
|
+
}
|
|
17
16
|
}
|
|
18
|
-
//#endregion
|
|
19
|
-
export { AppOrmConfig, _default as default };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
//#
|
|
5
|
-
export { config_default_default as default };
|
|
1
|
+
export default {
|
|
2
|
+
orm: {},
|
|
3
|
+
};
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLGVBQWU7SUFDYixHQUFHLEVBQUUsRUFBa0I7Q0FDeEIsQ0FBQyJ9
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { LeoricRegister } from
|
|
3
|
-
|
|
1
|
+
import './types.ts';
|
|
2
|
+
import { LeoricRegister } from './lib/LeoricRegister.ts';
|
|
3
|
+
import { Orm } from './lib/SingletonORM.ts';
|
|
4
|
+
export { Orm, LeoricRegister };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import "./types.js";
|
|
1
2
|
import { LeoricRegister } from "./lib/LeoricRegister.js";
|
|
2
3
|
import { Orm } from "./lib/SingletonORM.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export { LeoricRegister, Orm };
|
|
4
|
+
export { Orm, LeoricRegister };
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxDQUFDIn0=
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
[key: string]: any;
|
|
1
|
+
export interface OrmConfig {
|
|
2
|
+
client: string;
|
|
3
|
+
database: string;
|
|
4
|
+
host: string;
|
|
5
|
+
port: number;
|
|
6
|
+
user: string;
|
|
7
|
+
define: object;
|
|
8
|
+
options: object;
|
|
9
|
+
charset: string;
|
|
10
|
+
[key: string]: any;
|
|
12
11
|
}
|
|
13
|
-
declare class DataSourceManager {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
export declare class DataSourceManager {
|
|
13
|
+
private readonly dataSourceConfigs;
|
|
14
|
+
private defaultDataSourceConfig?;
|
|
15
|
+
constructor();
|
|
16
|
+
addDefaultConfig(config: OrmConfig): void;
|
|
17
|
+
getDefaultConfig(): OrmConfig | undefined;
|
|
18
|
+
addConfig(config: OrmConfig): void;
|
|
19
|
+
getConfig(name: string): OrmConfig | undefined;
|
|
21
20
|
}
|
|
22
|
-
//#endregion
|
|
23
|
-
export { DataSourceManager, OrmConfig };
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
//#
|
|
22
|
-
export { DataSourceManager };
|
|
1
|
+
export class DataSourceManager {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.dataSourceConfigs = [];
|
|
4
|
+
}
|
|
5
|
+
addDefaultConfig(config) {
|
|
6
|
+
this.defaultDataSourceConfig = config;
|
|
7
|
+
}
|
|
8
|
+
getDefaultConfig() {
|
|
9
|
+
return this.defaultDataSourceConfig;
|
|
10
|
+
}
|
|
11
|
+
addConfig(config) {
|
|
12
|
+
this.dataSourceConfigs.push(config);
|
|
13
|
+
}
|
|
14
|
+
getConfig(name) {
|
|
15
|
+
if (this.defaultDataSourceConfig?.database === name) {
|
|
16
|
+
return this.defaultDataSourceConfig;
|
|
17
|
+
}
|
|
18
|
+
return this.dataSourceConfigs.find(t => t.database === name);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL0RhdGFTb3VyY2VNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQSxNQUFNLE9BQU8saUJBQWlCO0lBSTVCO1FBQ0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBaUI7UUFDaEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFpQjtRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWTtRQUNwQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDcEQsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGIn0=
|
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
generateLeoricAttributes(metadata: ModelMetadata): Record<string, any>;
|
|
17
|
-
register(): Promise<void>;
|
|
1
|
+
import { Base } from 'sdk-base';
|
|
2
|
+
import { ModelMetadata } from '@eggjs/tegg-orm-decorator';
|
|
3
|
+
import { ModelProtoManager } from './ModelProtoManager.ts';
|
|
4
|
+
import { DataSourceManager, type OrmConfig } from './DataSourceManager.ts';
|
|
5
|
+
import type { RealmType } from './types.ts';
|
|
6
|
+
export declare class LeoricRegister extends Base {
|
|
7
|
+
private readonly modelProtoManager;
|
|
8
|
+
private readonly dataSourceManager;
|
|
9
|
+
readonly realmMap: Map<string, RealmType>;
|
|
10
|
+
constructor(modelProtoManager: ModelProtoManager, dataSourceManager: DataSourceManager);
|
|
11
|
+
getConfig(datasource?: string): OrmConfig;
|
|
12
|
+
getRealm(config: OrmConfig | undefined): RealmType | undefined;
|
|
13
|
+
getOrCreateRealm(datasource: string | undefined): any;
|
|
14
|
+
generateLeoricAttributes(metadata: ModelMetadata): Record<string, any>;
|
|
15
|
+
register(): Promise<void>;
|
|
18
16
|
}
|
|
19
|
-
//#endregion
|
|
20
|
-
export { LeoricRegister };
|
|
@@ -1,68 +1,82 @@
|
|
|
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
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
import { Base } from 'sdk-base';
|
|
2
|
+
import Realm from 'leoric';
|
|
3
|
+
import { ModelMetadata, ModelMetadataUtil } from '@eggjs/tegg-orm-decorator';
|
|
4
|
+
import { ModelProtoManager } from "./ModelProtoManager.js";
|
|
5
|
+
import { DataSourceManager } from "./DataSourceManager.js";
|
|
6
|
+
export class LeoricRegister extends Base {
|
|
7
|
+
constructor(modelProtoManager, dataSourceManager) {
|
|
8
|
+
super();
|
|
9
|
+
this.modelProtoManager = modelProtoManager;
|
|
10
|
+
this.dataSourceManager = dataSourceManager;
|
|
11
|
+
this.realmMap = new Map();
|
|
12
|
+
}
|
|
13
|
+
getConfig(datasource) {
|
|
14
|
+
let config;
|
|
15
|
+
if (!datasource) {
|
|
16
|
+
config = this.dataSourceManager.getDefaultConfig();
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
config = this.dataSourceManager.getConfig(datasource);
|
|
20
|
+
}
|
|
21
|
+
return config;
|
|
22
|
+
}
|
|
23
|
+
getRealm(config) {
|
|
24
|
+
if (!config?.database) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const realm = this.realmMap.get(config.database);
|
|
28
|
+
return realm;
|
|
29
|
+
}
|
|
30
|
+
getOrCreateRealm(datasource) {
|
|
31
|
+
const config = this.getConfig(datasource);
|
|
32
|
+
let realm;
|
|
33
|
+
if (config) {
|
|
34
|
+
realm = this.getRealm(config);
|
|
35
|
+
if (realm) {
|
|
36
|
+
return realm;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
realm = new Realm({ ...config });
|
|
40
|
+
this.realmMap.set(config.database, realm);
|
|
41
|
+
return realm;
|
|
42
|
+
}
|
|
43
|
+
generateLeoricAttributes(metadata) {
|
|
44
|
+
const attributes = {};
|
|
45
|
+
for (const attribute of metadata.attributes) {
|
|
46
|
+
attributes[attribute.propertyName] = {
|
|
47
|
+
columnName: attribute.attributeName,
|
|
48
|
+
type: attribute.dataType,
|
|
49
|
+
allowNull: attribute.allowNull,
|
|
50
|
+
primaryKey: attribute.primary,
|
|
51
|
+
unique: attribute.unique,
|
|
52
|
+
autoIncrement: attribute.autoIncrement,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return attributes;
|
|
56
|
+
}
|
|
57
|
+
async register() {
|
|
58
|
+
for (const { proto, clazz } of this.modelProtoManager.getProtos()) {
|
|
59
|
+
const metadata = ModelMetadataUtil.getModelMetadata(clazz);
|
|
60
|
+
if (!metadata)
|
|
61
|
+
throw new Error(`not found metadata for model ${proto.id}`);
|
|
62
|
+
const realm = this.getOrCreateRealm(metadata.dataSource);
|
|
63
|
+
realm.models[clazz.name] = clazz;
|
|
64
|
+
realm[clazz.name] = clazz;
|
|
65
|
+
const attributes = this.generateLeoricAttributes(metadata);
|
|
66
|
+
const hooks = {};
|
|
67
|
+
for (const hookName of Realm.hookNames) {
|
|
68
|
+
if (clazz[hookName]) {
|
|
69
|
+
hooks[hookName] = clazz[hookName];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
clazz.init(attributes, {
|
|
73
|
+
tableName: metadata.tableName,
|
|
74
|
+
hooks,
|
|
75
|
+
}, {});
|
|
76
|
+
}
|
|
77
|
+
await Promise.all(Array.from(this.realmMap.values())
|
|
78
|
+
.map(realm => realm.connect()));
|
|
79
|
+
this.ready(true);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVvcmljUmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL0xlb3JpY1JlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxLQUFLLE1BQU0sUUFBUSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFHM0UsTUFBTSxPQUFPLGNBQWUsU0FBUSxJQUFJO0lBS3RDLFlBQVksaUJBQW9DLEVBQUUsaUJBQW9DO1FBQ3BGLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxVQUFtQjtRQUMzQixJQUFJLE1BQTZCLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQTZCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDdEIsT0FBTyxTQUFTLENBQUM7UUFD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
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
constructor(modelProtoManager: ModelProtoManager);
|
|
9
|
-
postCreate(ctx: EggPrototypeLifecycleContext, obj: EggPrototype): Promise<void>;
|
|
1
|
+
import { type LifecycleHook } from '@eggjs/tegg';
|
|
2
|
+
import { type EggPrototype, type EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
|
|
3
|
+
import { ModelProtoManager } from './ModelProtoManager.ts';
|
|
4
|
+
export declare class ModelProtoHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
|
|
5
|
+
private readonly modelProtoManager;
|
|
6
|
+
constructor(modelProtoManager: ModelProtoManager);
|
|
7
|
+
postCreate(ctx: EggPrototypeLifecycleContext, obj: EggPrototype): Promise<void>;
|
|
10
8
|
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { ModelProtoHook };
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import "
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
//#
|
|
20
|
-
export { ModelProtoHook };
|
|
1
|
+
import {} from '@eggjs/tegg';
|
|
2
|
+
import {} from '@eggjs/tegg-metadata';
|
|
3
|
+
import { IS_MODEL, ModelMetaBuilder, ModelMetadataUtil } from '@eggjs/tegg-orm-decorator';
|
|
4
|
+
import { ModelProtoManager } from "./ModelProtoManager.js";
|
|
5
|
+
export class ModelProtoHook {
|
|
6
|
+
constructor(modelProtoManager) {
|
|
7
|
+
this.modelProtoManager = modelProtoManager;
|
|
8
|
+
}
|
|
9
|
+
async postCreate(ctx, obj) {
|
|
10
|
+
if (!obj.getMetaData(IS_MODEL)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const builder = new ModelMetaBuilder(ctx.clazz);
|
|
14
|
+
const metadata = builder.build();
|
|
15
|
+
ModelMetadataUtil.setModelMetadata(ctx.clazz, metadata);
|
|
16
|
+
this.modelProtoManager.addProto(ctx.clazz, obj);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxQcm90b0hvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL01vZGVsUHJvdG9Ib29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFZLGlCQUFvQztRQUM5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBaUMsRUFBRSxHQUFpQjtRQUNuRSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRiJ9
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
proto: EggPrototype;
|
|
7
|
-
clazz: EggProtoImplClass;
|
|
1
|
+
import { type EggPrototype } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type EggProtoImplClass } from '@eggjs/tegg';
|
|
3
|
+
export interface ModelProtoPair {
|
|
4
|
+
proto: EggPrototype;
|
|
5
|
+
clazz: EggProtoImplClass;
|
|
8
6
|
}
|
|
9
|
-
declare class ModelProtoManager {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export declare class ModelProtoManager {
|
|
8
|
+
private readonly protos;
|
|
9
|
+
addProto(clazz: EggProtoImplClass, proto: EggPrototype): void;
|
|
10
|
+
getProtos(): Array<ModelProtoPair>;
|
|
13
11
|
}
|
|
14
|
-
//#endregion
|
|
15
|
-
export { ModelProtoManager, ModelProtoPair };
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
getProtos() {
|
|
16
|
-
return this.protos.slice();
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
//#endregion
|
|
21
|
-
export { ModelProtoManager };
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import {} from '@eggjs/tegg';
|
|
3
|
+
export class ModelProtoManager {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.protos = [];
|
|
6
|
+
}
|
|
7
|
+
addProto(clazz, proto) {
|
|
8
|
+
this.protos.push({ proto, clazz });
|
|
9
|
+
}
|
|
10
|
+
getProtos() {
|
|
11
|
+
return this.protos.slice();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxQcm90b01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL01vZGVsUHJvdG9NYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQTBCLE1BQU0sYUFBYSxDQUFDO0FBT3JELE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDbUIsV0FBTSxHQUEwQixFQUFFLENBQUM7SUFTdEQsQ0FBQztJQVBDLFFBQVEsQ0FBQyxLQUF3QixFQUFFLEtBQW1CO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNGIn0=
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { LifecycleHook } from
|
|
2
|
-
import { LoadUnit, LoadUnitLifecycleContext } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
declare class ORMLoadUnitHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
|
|
6
|
-
postCreate(_ctx: LoadUnitLifecycleContext, loadUnit: LoadUnit): Promise<void>;
|
|
1
|
+
import { type LifecycleHook } from '@eggjs/tegg';
|
|
2
|
+
import { type LoadUnit, type LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
|
|
3
|
+
export declare class ORMLoadUnitHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
|
|
4
|
+
postCreate(_ctx: LoadUnitLifecycleContext, loadUnit: LoadUnit): Promise<void>;
|
|
7
5
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { ORMLoadUnitHook };
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
+
import {} from '@eggjs/tegg';
|
|
2
|
+
import { EggLoadUnitType, EggPrototypeCreatorFactory, EggPrototypeFactory, } from '@eggjs/tegg-metadata';
|
|
1
3
|
import { Orm } from "./SingletonORM.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
const REGISTER_CLAZZ = [
|
|
5
|
+
Orm,
|
|
6
|
+
];
|
|
7
|
+
export class ORMLoadUnitHook {
|
|
8
|
+
async postCreate(_ctx, loadUnit) {
|
|
9
|
+
if (loadUnit.type === EggLoadUnitType.APP) {
|
|
10
|
+
for (const clazz of REGISTER_CLAZZ) {
|
|
11
|
+
const protos = await EggPrototypeCreatorFactory.createProto(clazz, loadUnit);
|
|
12
|
+
for (const proto of protos) {
|
|
13
|
+
EggPrototypeFactory.instance.registerPrototype(proto, loadUnit);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT1JNTG9hZFVuaXRIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9PUk1Mb2FkVW5pdEhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLDBCQUEwQixFQUMxQixtQkFBbUIsR0FHcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEMsTUFBTSxjQUFjLEdBQUc7SUFDckIsR0FBRztDQUNKLENBQUM7QUFFRixNQUFNLE9BQU8sZUFBZTtJQUMxQixLQUFLLENBQUMsVUFBVSxDQUFDLElBQThCLEVBQUUsUUFBa0I7UUFDakUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxLQUFLLE1BQU0sS0FBSyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLE1BQU0sR0FBRyxNQUFNLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdFLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQzNCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
|
|
@@ -1,23 +1,19 @@
|
|
|
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
|
-
get obj(): typeof Bone;
|
|
20
|
-
static createObject(name: EggObjectName, proto: EggPrototype): Promise<SingletonModelObject>;
|
|
1
|
+
import { type EggObject } from '@eggjs/tegg-runtime';
|
|
2
|
+
import { type EggPrototype } from '@eggjs/tegg-metadata';
|
|
3
|
+
import { type EggPrototypeName, type EggObjectName } from '@eggjs/tegg';
|
|
4
|
+
import { type Id } from '@eggjs/tegg-lifecycle';
|
|
5
|
+
import { Bone } from 'leoric';
|
|
6
|
+
import SingletonModelProto from './SingletonModelProto.ts';
|
|
7
|
+
export declare class SingletonModelObject implements EggObject {
|
|
8
|
+
private status;
|
|
9
|
+
id: Id;
|
|
10
|
+
readonly name: EggPrototypeName;
|
|
11
|
+
private _obj;
|
|
12
|
+
readonly proto: SingletonModelProto;
|
|
13
|
+
constructor(name: EggObjectName, proto: SingletonModelProto);
|
|
14
|
+
init(): Promise<void>;
|
|
15
|
+
injectProperty(): void;
|
|
16
|
+
get isReady(): boolean;
|
|
17
|
+
get obj(): typeof Bone;
|
|
18
|
+
static createObject(name: EggObjectName, proto: EggPrototype): Promise<SingletonModelObject>;
|
|
21
19
|
}
|
|
22
|
-
//#endregion
|
|
23
|
-
export { SingletonModelObject };
|
|
@@ -1,49 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
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
|
-
|
|
1
|
+
import { ContextHandler, EggObjectStatus, } from '@eggjs/tegg-runtime';
|
|
2
|
+
import {} from '@eggjs/tegg-metadata';
|
|
3
|
+
import {} from '@eggjs/tegg';
|
|
4
|
+
import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
|
|
5
|
+
import { Bone } from 'leoric';
|
|
6
|
+
import { EGG_CONTEXT } from '@eggjs/egg-module-common';
|
|
7
|
+
import SingletonModelProto from "./SingletonModelProto.js";
|
|
8
|
+
export class SingletonModelObject {
|
|
9
|
+
constructor(name, proto) {
|
|
10
|
+
this.status = EggObjectStatus.PENDING;
|
|
11
|
+
this.name = name;
|
|
12
|
+
this.proto = proto;
|
|
13
|
+
this.id = IdenticalUtil.createObjectId(this.proto.id);
|
|
14
|
+
}
|
|
15
|
+
async init() {
|
|
16
|
+
const clazz = class ContextModelClass extends this.proto.model {
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
static get name() {
|
|
20
|
+
return super.name;
|
|
21
|
+
}
|
|
22
|
+
static get ctx() {
|
|
23
|
+
const ctx = ContextHandler.getContext();
|
|
24
|
+
if (ctx) {
|
|
25
|
+
return ctx.get(EGG_CONTEXT);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
get ctx() {
|
|
29
|
+
return ContextModelClass.ctx;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
this._obj = clazz;
|
|
33
|
+
this.status = EggObjectStatus.READY;
|
|
34
|
+
}
|
|
35
|
+
injectProperty() {
|
|
36
|
+
throw new Error('never call ModelObject#injectProperty');
|
|
37
|
+
}
|
|
38
|
+
get isReady() {
|
|
39
|
+
return this.status === EggObjectStatus.READY;
|
|
40
|
+
}
|
|
41
|
+
get obj() {
|
|
42
|
+
return this._obj;
|
|
43
|
+
}
|
|
44
|
+
static async createObject(name, proto) {
|
|
45
|
+
const modelObject = new SingletonModelObject(name, proto);
|
|
46
|
+
await modelObject.init();
|
|
47
|
+
return modelObject;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxPYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1NpbmdsZXRvbk1vZGVsT2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsZUFBZSxHQUNoQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQTZDLE1BQU0sYUFBYSxDQUFDO0FBQ3hFLE9BQU8sRUFBVyxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLG1CQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBRTNELE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFBWSxJQUFtQixFQUFFLEtBQTBCO1FBTm5ELFdBQU0sR0FBb0IsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQU94RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLEtBQUssR0FBRyxNQUFNLGlCQUFrQixTQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUM1RCw2REFBNkQ7WUFDN0QsYUFBYTtZQUNiLE1BQU0sS0FBSyxJQUFJO2dCQUNiLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztZQUNwQixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUNSLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLEdBQUc7Z0JBQ0wsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7WUFDL0IsQ0FBQztTQUVGLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQW1CLEVBQUUsS0FBbUI7UUFDaEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsS0FBNEIsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FDRiJ9
|
|
@@ -1,27 +1,23 @@
|
|
|
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
|
-
|
|
23
|
-
getQualifier(attribute: QualifierAttribute): QualifierValue | undefined;
|
|
24
|
-
static createProto(ctx: EggPrototypeLifecycleContext): SingletonModelProto;
|
|
1
|
+
import { type EggPrototype, type LoadUnit, type EggPrototypeLifecycleContext, type InjectObjectProto, type InjectConstructorProto } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { AccessLevel, type EggPrototypeName, ObjectInitType, type QualifierInfo, type MetaDataKey, type QualifierAttribute, type QualifierValue } from '@eggjs/tegg';
|
|
3
|
+
import { type Id } from '@eggjs/tegg-lifecycle';
|
|
4
|
+
import { Bone } from 'leoric';
|
|
5
|
+
export default class SingletonModelProto implements EggPrototype {
|
|
6
|
+
[key: symbol]: PropertyDescriptor;
|
|
7
|
+
private readonly qualifiers;
|
|
8
|
+
readonly accessLevel = AccessLevel.PUBLIC;
|
|
9
|
+
id: Id;
|
|
10
|
+
readonly initType = ObjectInitType.SINGLETON;
|
|
11
|
+
readonly injectObjects: (InjectObjectProto | InjectConstructorProto)[];
|
|
12
|
+
readonly loadUnitId: string;
|
|
13
|
+
readonly moduleName: string;
|
|
14
|
+
readonly name: EggPrototypeName;
|
|
15
|
+
readonly model: typeof Bone;
|
|
16
|
+
constructor(loadUnit: LoadUnit, model: typeof Bone);
|
|
17
|
+
constructEggObject(): object;
|
|
18
|
+
getMetaData<T>(metadataKey: MetaDataKey): T | undefined;
|
|
19
|
+
verifyQualifier(qualifier: QualifierInfo): boolean;
|
|
20
|
+
verifyQualifiers(qualifiers: QualifierInfo[]): boolean;
|
|
21
|
+
getQualifier(attribute: QualifierAttribute): QualifierValue | undefined;
|
|
22
|
+
static createProto(ctx: EggPrototypeLifecycleContext): SingletonModelProto;
|
|
25
23
|
}
|
|
26
|
-
//#endregion
|
|
27
|
-
export { SingletonModelProto as default };
|
|
@@ -1,41 +1,42 @@
|
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import { AccessLevel, ObjectInitType, QualifierUtil, MetadataUtil, } from '@eggjs/tegg';
|
|
3
|
+
import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
|
|
4
|
+
import { Bone } from 'leoric';
|
|
5
|
+
export default 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
|
+
const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
|
|
25
|
+
return selfQualifiers?.value === qualifier.value;
|
|
26
|
+
}
|
|
27
|
+
verifyQualifiers(qualifiers) {
|
|
28
|
+
for (const qualifier of qualifiers) {
|
|
29
|
+
if (!this.verifyQualifier(qualifier)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
getQualifier(attribute) {
|
|
36
|
+
return this.qualifiers.find(t => t.attribute === attribute)?.value;
|
|
37
|
+
}
|
|
38
|
+
static createProto(ctx) {
|
|
39
|
+
return new SingletonModelProto(ctx.loadUnit, ctx.clazz);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxQcm90by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvU2luZ2xldG9uTW9kZWxQcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRILE1BQU0sc0JBQXNCLENBQUM7QUFDaEssT0FBTyxFQUNMLFdBQVcsRUFFWCxjQUFjLEVBRWQsYUFBYSxFQUNiLFlBQVksR0FFYixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQVcsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5QixNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQVl0QyxZQUFZLFFBQWtCLEVBQUUsS0FBa0I7UUFUekMsZ0JBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBRWpDLGFBQVEsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQ3BDLGtCQUFhLEdBQW1ELEVBQUUsQ0FBQztRQU8xRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxVQUFVLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQXdCO1FBQ3JDLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBd0I7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RixPQUFPLGNBQWMsRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBMkI7UUFDMUMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQTZCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFpQztRQUNsRCxPQUFPLElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBb0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiJ9
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { RealmType } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
get client(): RealmType;
|
|
7
|
-
getClient(datasource: string): RealmType;
|
|
1
|
+
import type { RealmType } from './types.ts';
|
|
2
|
+
export declare class Orm {
|
|
3
|
+
private leoricRegister;
|
|
4
|
+
get client(): RealmType;
|
|
5
|
+
getClient(datasource: string): RealmType;
|
|
8
6
|
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { Orm };
|
package/dist/lib/SingletonORM.js
CHANGED
|
@@ -1,23 +1,36 @@
|
|
|
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/tegg';
|
|
1
11
|
import { LeoricRegister } from "./LeoricRegister.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (!config) throw new Error(`not found ${datasource} datasource`);
|
|
16
|
-
return this.leoricRegister.getOrCreateRealm(config.database);
|
|
17
|
-
}
|
|
12
|
+
let Orm = class Orm {
|
|
13
|
+
// default dataSource
|
|
14
|
+
get client() {
|
|
15
|
+
const defaultConfig = this.leoricRegister.getConfig();
|
|
16
|
+
return this.leoricRegister.getRealm(defaultConfig);
|
|
17
|
+
}
|
|
18
|
+
getClient(datasource) {
|
|
19
|
+
const config = this.leoricRegister.getConfig(datasource);
|
|
20
|
+
if (!config) {
|
|
21
|
+
throw new Error(`not found ${datasource} datasource`);
|
|
22
|
+
}
|
|
23
|
+
return this.leoricRegister.getOrCreateRealm(config.database);
|
|
24
|
+
}
|
|
18
25
|
};
|
|
19
|
-
__decorate([
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
__decorate([
|
|
27
|
+
Inject(),
|
|
28
|
+
__metadata("design:type", LeoricRegister)
|
|
29
|
+
], Orm.prototype, "leoricRegister", void 0);
|
|
30
|
+
Orm = __decorate([
|
|
31
|
+
SingletonProto({
|
|
32
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
33
|
+
})
|
|
34
|
+
], Orm);
|
|
35
|
+
export { Orm };
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uT1JNLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9TaW5nbGV0b25PUk0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU05QyxJQUFNLEdBQUcsR0FBVCxNQUFNLEdBQUc7SUFJZCxxQkFBcUI7SUFDckIsSUFBSSxNQUFNO1FBQ1IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxTQUFTLENBQUMsVUFBa0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLFVBQVUsYUFBYSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFFLENBQUM7SUFDaEUsQ0FBQztDQUVGLENBQUE7QUFoQlM7SUFEUCxNQUFNLEVBQUU7OEJBQ2UsY0FBYzsyQ0FBQztBQUY1QixHQUFHO0lBSGYsY0FBYyxDQUFDO1FBQ2QsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxHQUFHLENBa0JmIn0=
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { AbstractDriver, connect } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
type DataType = AbstractDriver['DataType'];
|
|
5
|
-
type RealmType = Awaited<ReturnType<typeof connect>>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { DataType, RealmType };
|
|
1
|
+
import { AbstractDriver, connect } from 'leoric';
|
|
2
|
+
export type DataType = AbstractDriver['DataType'];
|
|
3
|
+
export type RealmType = Awaited<ReturnType<typeof connect>>;
|
package/dist/lib/types.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { AbstractDriver, connect } from
|
|
2
|
-
|
|
3
|
-
export { };
|
|
1
|
+
import { AbstractDriver, connect } from 'leoric';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDIn0=
|
package/dist/types.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
//#region src/types.d.ts
|
|
1
|
+
import '@eggjs/tegg-plugin/types';
|
|
2
|
+
import './app.ts';
|
|
3
|
+
import { type AttributeOptions } from '@eggjs/tegg-orm-decorator';
|
|
4
|
+
import type { DataType } from './lib/types.ts';
|
|
6
5
|
declare module '@eggjs/tegg-orm-decorator' {
|
|
7
|
-
|
|
8
|
-
}
|
|
6
|
+
function Attribute(dataType: DataType, options?: AttributeOptions): (target: any, propertyKey: PropertyKey) => void;
|
|
7
|
+
}
|
package/dist/types.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
+
import '@eggjs/tegg-plugin/types';
|
|
1
2
|
import "./app.js";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export { };
|
|
3
|
+
import {} from '@eggjs/tegg-orm-decorator';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTywwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQXlCLE1BQU0sMkJBQTJCLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"tegg"
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
|
-
"version": "4.0.0-beta.
|
|
9
|
+
"version": "4.0.0-beta.9",
|
|
10
10
|
"description": "orm decorator for egg",
|
|
11
11
|
"keywords": [
|
|
12
12
|
"egg",
|
|
@@ -52,16 +52,16 @@
|
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"leoric": "^2.12.2",
|
|
54
54
|
"sdk-base": "^5.0.1",
|
|
55
|
-
"@eggjs/egg-module-common": "4.0.0-beta.
|
|
56
|
-
"@eggjs/tegg-lifecycle": "4.0.0-beta.
|
|
57
|
-
"@eggjs/tegg": "4.0.0-beta.
|
|
58
|
-
"@eggjs/tegg-metadata": "4.0.0-beta.
|
|
59
|
-
"@eggjs/tegg-orm-decorator": "4.0.0-beta.
|
|
60
|
-
"@eggjs/tegg-runtime": "4.0.0-beta.
|
|
55
|
+
"@eggjs/egg-module-common": "4.0.0-beta.9",
|
|
56
|
+
"@eggjs/tegg-lifecycle": "4.0.0-beta.9",
|
|
57
|
+
"@eggjs/tegg": "4.0.0-beta.9",
|
|
58
|
+
"@eggjs/tegg-metadata": "4.0.0-beta.9",
|
|
59
|
+
"@eggjs/tegg-orm-decorator": "4.0.0-beta.9",
|
|
60
|
+
"@eggjs/tegg-runtime": "4.0.0-beta.9"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"egg": "beta",
|
|
64
|
-
"@eggjs/tegg-plugin": "4.0.0-beta.
|
|
64
|
+
"@eggjs/tegg-plugin": "4.0.0-beta.9"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@eggjs/bin": "beta",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"tsdown": "^0.15.6",
|
|
77
77
|
"unplugin-unused": "^0.5.3",
|
|
78
78
|
"@eggjs/module-test-util": "4.0.0-beta.4",
|
|
79
|
-
"@eggjs/tegg-
|
|
80
|
-
"@eggjs/tegg-
|
|
79
|
+
"@eggjs/tegg-plugin": "4.0.0-beta.9",
|
|
80
|
+
"@eggjs/tegg-config": "4.0.0-beta.9"
|
|
81
81
|
},
|
|
82
82
|
"publishConfig": {
|
|
83
83
|
"access": "public"
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"test:mocha:skip": "npm run prepare-test && egg-bin test",
|
|
90
90
|
"cov:mocha:skip": "npm run prepare-test && egg-bin cov",
|
|
91
91
|
"clean": "rimraf dist",
|
|
92
|
-
"build": "tsdown",
|
|
92
|
+
"build": "tsdown && rimraf dist && tsc -b --clean && tsc",
|
|
93
93
|
"typecheck": "tsc --noEmit",
|
|
94
94
|
"prepare-test": "node ./test/fixtures/prepare.js"
|
|
95
95
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.93.0/helpers/decorate.js
|
|
2
|
-
function __decorate(decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
//#endregion
|
|
10
|
-
export { __decorate };
|