@eggjs/tegg-orm-plugin 3.62.0 → 4.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/{app.d.ts → dist/app.d.ts} +10 -1
- package/dist/app.js +46 -0
- package/dist/config/config.default.d.ts +16 -0
- package/dist/config/config.default.js +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/{lib → dist/lib}/DataSourceManager.d.ts +2 -0
- package/dist/lib/DataSourceManager.js +21 -0
- package/dist/lib/LeoricRegister.d.ts +16 -0
- package/dist/lib/LeoricRegister.js +82 -0
- package/{lib → dist/lib}/ModelProtoHook.d.ts +3 -3
- package/dist/lib/ModelProtoHook.js +19 -0
- package/{lib → dist/lib}/ModelProtoManager.d.ts +2 -2
- package/dist/lib/ModelProtoManager.js +14 -0
- package/{lib → dist/lib}/ORMLoadUnitHook.d.ts +2 -2
- package/dist/lib/ORMLoadUnitHook.js +19 -0
- package/{lib → dist/lib}/SingletonModelObject.d.ts +6 -6
- package/dist/lib/SingletonModelObject.js +47 -0
- package/{lib → dist/lib}/SingletonModelProto.d.ts +6 -5
- package/dist/lib/SingletonModelProto.js +40 -0
- package/dist/lib/SingletonORM.d.ts +6 -0
- package/{lib → dist/lib}/SingletonORM.js +9 -12
- package/dist/lib/types.d.ts +3 -0
- package/dist/lib/types.js +2 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.js +4 -0
- package/package.json +57 -46
- package/app.js +0 -50
- package/lib/DataSourceManager.js +0 -26
- package/lib/LeoricRegister.d.ts +0 -16
- package/lib/LeoricRegister.js +0 -120
- package/lib/ModelProtoHook.js +0 -20
- package/lib/ModelProtoManager.js +0 -16
- package/lib/ORMLoadUnitHook.js +0 -22
- package/lib/SingletonModelObject.js +0 -50
- package/lib/SingletonModelProto.js +0 -44
- package/lib/SingletonORM.d.ts +0 -6
- package/typings/index.d.ts +0 -21
package/README.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @eggjs/tegg-orm-plugin
|
|
2
2
|
|
|
3
|
+
[![NPM version][npm-image]][npm-url]
|
|
4
|
+
[![Known Vulnerabilities][snyk-image]][snyk-url]
|
|
5
|
+
[![npm download][download-image]][download-url]
|
|
6
|
+
[](https://nodejs.org/en/download/)
|
|
7
|
+
|
|
8
|
+
[npm-image]: https://img.shields.io/npm/v/@eggjs/tegg-orm-plugin.svg?style=flat-square
|
|
9
|
+
[npm-url]: https://npmjs.org/package/@eggjs/tegg-orm-plugin
|
|
10
|
+
[snyk-image]: https://snyk.io/test/npm/@eggjs/tegg-orm-plugin/badge.svg?style=flat-square
|
|
11
|
+
[snyk-url]: https://snyk.io/test/npm/@eggjs/tegg-orm-plugin
|
|
12
|
+
[download-image]: https://img.shields.io/npm/dm/@eggjs/tegg-orm-plugin.svg?style=flat-square
|
|
13
|
+
[download-url]: https://npmjs.org/package/@eggjs/tegg-orm-plugin
|
|
14
|
+
|
|
3
15
|
使用注解的方式来开发 egg 中的 orm
|
|
4
16
|
|
|
5
17
|
## Install
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { Application } from 'egg';
|
|
2
|
+
import { Orm } from './lib/SingletonORM.ts';
|
|
3
|
+
import { LeoricRegister } from './lib/LeoricRegister.ts';
|
|
1
4
|
export default class OrmAppBootHook {
|
|
2
5
|
private readonly app;
|
|
3
6
|
private readonly dataSourceManager;
|
|
@@ -5,9 +8,15 @@ export default class OrmAppBootHook {
|
|
|
5
8
|
private readonly modelProtoManager;
|
|
6
9
|
private readonly modelProtoHook;
|
|
7
10
|
private readonly ormLoadUnitHook;
|
|
8
|
-
constructor(app:
|
|
11
|
+
constructor(app: Application);
|
|
9
12
|
configWillLoad(): void;
|
|
10
13
|
configDidLoad(): void;
|
|
11
14
|
didLoad(): Promise<void>;
|
|
12
15
|
beforeClose(): Promise<void>;
|
|
13
16
|
}
|
|
17
|
+
declare module 'egg' {
|
|
18
|
+
interface Application {
|
|
19
|
+
leoricRegister: LeoricRegister;
|
|
20
|
+
orm: Orm;
|
|
21
|
+
}
|
|
22
|
+
}
|
package/dist/app.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Application } from 'egg';
|
|
2
|
+
import { MODEL_PROTO_IMPL_TYPE } from '@eggjs/tegg-orm-decorator';
|
|
3
|
+
import { Orm } from "./lib/SingletonORM.js";
|
|
4
|
+
import { DataSourceManager } from "./lib/DataSourceManager.js";
|
|
5
|
+
import { LeoricRegister } from "./lib/LeoricRegister.js";
|
|
6
|
+
import { ModelProtoManager } from "./lib/ModelProtoManager.js";
|
|
7
|
+
import { ModelProtoHook } from "./lib/ModelProtoHook.js";
|
|
8
|
+
import SingletonModelProto from "./lib/SingletonModelProto.js";
|
|
9
|
+
import { SingletonModelObject } from "./lib/SingletonModelObject.js";
|
|
10
|
+
import { ORMLoadUnitHook } from "./lib/ORMLoadUnitHook.js";
|
|
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=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { OrmConfig } from '../lib/DataSourceManager.ts';
|
|
2
|
+
export interface AppOrmConfig extends OrmConfig {
|
|
3
|
+
datasources?: OrmConfig[];
|
|
4
|
+
}
|
|
5
|
+
declare const _default: {
|
|
6
|
+
orm: AppOrmConfig;
|
|
7
|
+
};
|
|
8
|
+
export default _default;
|
|
9
|
+
declare module 'egg' {
|
|
10
|
+
interface EggAppConfig {
|
|
11
|
+
/**
|
|
12
|
+
* orm config
|
|
13
|
+
*/
|
|
14
|
+
orm: AppOrmConfig;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
orm: {},
|
|
3
|
+
};
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLGVBQWU7SUFDYixHQUFHLEVBQUUsRUFBa0I7Q0FDeEIsQ0FBQyJ9
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import "./types.js";
|
|
2
|
+
import { LeoricRegister } from "./lib/LeoricRegister.js";
|
|
3
|
+
import { Orm } from "./lib/SingletonORM.js";
|
|
4
|
+
export { Orm, LeoricRegister };
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxDQUFDIn0=
|
|
@@ -0,0 +1,21 @@
|
|
|
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=
|
|
@@ -0,0 +1,16 @@
|
|
|
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>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
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,6 +1,6 @@
|
|
|
1
|
-
import { LifecycleHook } from '@eggjs/tegg';
|
|
2
|
-
import { EggPrototype, EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
|
|
3
|
-
import { ModelProtoManager } from './ModelProtoManager';
|
|
1
|
+
import { type LifecycleHook } from '@eggjs/tegg';
|
|
2
|
+
import { type EggPrototype, type EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
|
|
3
|
+
import { ModelProtoManager } from './ModelProtoManager.ts';
|
|
4
4
|
export declare class ModelProtoHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
|
|
5
5
|
private readonly modelProtoManager;
|
|
6
6
|
constructor(modelProtoManager: ModelProtoManager);
|
|
@@ -0,0 +1,19 @@
|
|
|
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,5 +1,5 @@
|
|
|
1
|
-
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { EggProtoImplClass } from '@eggjs/tegg';
|
|
1
|
+
import { type EggPrototype } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type EggProtoImplClass } from '@eggjs/tegg';
|
|
3
3
|
export interface ModelProtoPair {
|
|
4
4
|
proto: EggPrototype;
|
|
5
5
|
clazz: EggProtoImplClass;
|
|
@@ -0,0 +1,14 @@
|
|
|
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,5 +1,5 @@
|
|
|
1
|
-
import { LifecycleHook } from '@eggjs/tegg';
|
|
2
|
-
import { LoadUnit, LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
|
|
1
|
+
import { type LifecycleHook } from '@eggjs/tegg';
|
|
2
|
+
import { type LoadUnit, type LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
|
|
3
3
|
export declare class ORMLoadUnitHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
|
|
4
4
|
postCreate(_ctx: LoadUnitLifecycleContext, loadUnit: LoadUnit): Promise<void>;
|
|
5
5
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {} from '@eggjs/tegg';
|
|
2
|
+
import { EggLoadUnitType, EggPrototypeCreatorFactory, EggPrototypeFactory, } from '@eggjs/tegg-metadata';
|
|
3
|
+
import { Orm } from "./SingletonORM.js";
|
|
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,9 +1,9 @@
|
|
|
1
|
-
import { EggObject } from '@eggjs/tegg-runtime';
|
|
2
|
-
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
3
|
-
import { EggPrototypeName, EggObjectName } from '@eggjs/tegg';
|
|
4
|
-
import { Id } from '@eggjs/tegg-lifecycle';
|
|
5
|
-
import { Bone } from 'leoric';
|
|
6
|
-
import SingletonModelProto from './SingletonModelProto';
|
|
1
|
+
import { type EggObject } from '@eggjs/tegg-runtime';
|
|
2
|
+
import type { EggPrototype } from '@eggjs/tegg-metadata';
|
|
3
|
+
import type { EggPrototypeName, EggObjectName } from '@eggjs/tegg';
|
|
4
|
+
import { type Id } from '@eggjs/tegg-lifecycle';
|
|
5
|
+
import type { Bone } from 'leoric';
|
|
6
|
+
import SingletonModelProto from './SingletonModelProto.ts';
|
|
7
7
|
export declare class SingletonModelObject implements EggObject {
|
|
8
8
|
private status;
|
|
9
9
|
id: Id;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ContextHandler, EggObjectStatus } from '@eggjs/tegg-runtime';
|
|
2
|
+
import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
|
|
3
|
+
import { EGG_CONTEXT } from '@eggjs/egg-module-common';
|
|
4
|
+
import SingletonModelProto from "./SingletonModelProto.js";
|
|
5
|
+
export class SingletonModelObject {
|
|
6
|
+
constructor(name, proto) {
|
|
7
|
+
this.status = EggObjectStatus.PENDING;
|
|
8
|
+
this.name = name;
|
|
9
|
+
this.proto = proto;
|
|
10
|
+
this.id = IdenticalUtil.createObjectId(this.proto.id);
|
|
11
|
+
}
|
|
12
|
+
async init() {
|
|
13
|
+
const clazz = class ContextModelClass extends this.proto.model {
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
static get name() {
|
|
17
|
+
return super.name;
|
|
18
|
+
}
|
|
19
|
+
static get ctx() {
|
|
20
|
+
const ctx = ContextHandler.getContext();
|
|
21
|
+
if (ctx) {
|
|
22
|
+
return ctx.get(EGG_CONTEXT);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
get ctx() {
|
|
26
|
+
return ContextModelClass.ctx;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
this._obj = clazz;
|
|
30
|
+
this.status = EggObjectStatus.READY;
|
|
31
|
+
}
|
|
32
|
+
injectProperty() {
|
|
33
|
+
throw new Error('never call ModelObject#injectProperty');
|
|
34
|
+
}
|
|
35
|
+
get isReady() {
|
|
36
|
+
return this.status === EggObjectStatus.READY;
|
|
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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxPYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1NpbmdsZXRvbk1vZGVsT2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWtCLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3RGLE9BQU8sRUFBVyxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxtQkFBbUIsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sb0JBQW9CO0lBTy9CLFlBQVksSUFBbUIsRUFBRSxLQUEwQjtRQU5uRCxXQUFNLEdBQW9CLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFPeEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxLQUFLLEdBQUcsTUFBTSxpQkFBa0IsU0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDNUQsNkRBQTZEO1lBQzdELGFBQWE7WUFDYixNQUFNLEtBQUssSUFBSTtnQkFDYixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEIsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHO2dCQUNaLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDUixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlCLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxHQUFHO2dCQUNMLE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDO1lBQy9CLENBQUM7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFtQixFQUFFLEtBQW1CO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLEtBQTRCLENBQUMsQ0FBQztRQUNqRixNQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YifQ==
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { EggPrototype, LoadUnit, EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { AccessLevel, EggPrototypeName, ObjectInitType, QualifierInfo, MetaDataKey, QualifierAttribute, QualifierValue } from '@eggjs/tegg';
|
|
3
|
-
import { Id } from '@eggjs/tegg-lifecycle';
|
|
4
|
-
import { Bone } from 'leoric';
|
|
1
|
+
import type { EggPrototype, LoadUnit, EggPrototypeLifecycleContext, InjectObjectProto, 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 type { Bone } from 'leoric';
|
|
5
5
|
export default class SingletonModelProto implements EggPrototype {
|
|
6
|
+
[key: symbol]: PropertyDescriptor;
|
|
6
7
|
private readonly qualifiers;
|
|
7
8
|
readonly accessLevel = AccessLevel.PUBLIC;
|
|
8
9
|
id: Id;
|
|
9
10
|
readonly initType = ObjectInitType.SINGLETON;
|
|
10
|
-
readonly injectObjects:
|
|
11
|
+
readonly injectObjects: (InjectObjectProto | InjectConstructorProto)[];
|
|
11
12
|
readonly loadUnitId: string;
|
|
12
13
|
readonly moduleName: string;
|
|
13
14
|
readonly name: EggPrototypeName;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AccessLevel, ObjectInitType, QualifierUtil, MetadataUtil, } from '@eggjs/tegg';
|
|
2
|
+
import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
|
|
3
|
+
export default class SingletonModelProto {
|
|
4
|
+
constructor(loadUnit, model) {
|
|
5
|
+
this.accessLevel = AccessLevel.PUBLIC;
|
|
6
|
+
this.initType = ObjectInitType.SINGLETON;
|
|
7
|
+
this.injectObjects = [];
|
|
8
|
+
this.model = model;
|
|
9
|
+
this.id = IdenticalUtil.createProtoId(loadUnit.id, `leoric:${model.name}`);
|
|
10
|
+
this.loadUnitId = loadUnit.id;
|
|
11
|
+
this.moduleName = loadUnit.name;
|
|
12
|
+
this.name = model.name;
|
|
13
|
+
this.qualifiers = QualifierUtil.getProtoQualifiers(model);
|
|
14
|
+
}
|
|
15
|
+
constructEggObject() {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
getMetaData(metadataKey) {
|
|
19
|
+
return MetadataUtil.getMetaData(metadataKey, this.model);
|
|
20
|
+
}
|
|
21
|
+
verifyQualifier(qualifier) {
|
|
22
|
+
const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
|
|
23
|
+
return selfQualifiers?.value === qualifier.value;
|
|
24
|
+
}
|
|
25
|
+
verifyQualifiers(qualifiers) {
|
|
26
|
+
for (const qualifier of qualifiers) {
|
|
27
|
+
if (!this.verifyQualifier(qualifier)) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
getQualifier(attribute) {
|
|
34
|
+
return this.qualifiers.find(t => t.attribute === attribute)?.value;
|
|
35
|
+
}
|
|
36
|
+
static createProto(ctx) {
|
|
37
|
+
return new SingletonModelProto(ctx.loadUnit, ctx.clazz);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxQcm90by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvU2luZ2xldG9uTW9kZWxQcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQ0wsV0FBVyxFQUVYLGNBQWMsRUFFZCxhQUFhLEVBQ2IsWUFBWSxHQUliLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBVyxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRCxNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQVl0QyxZQUFZLFFBQWtCLEVBQUUsS0FBa0I7UUFUekMsZ0JBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBRWpDLGFBQVEsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQ3BDLGtCQUFhLEdBQW1ELEVBQUUsQ0FBQztRQU8xRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxVQUFVLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQXdCO1FBQ3JDLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBd0I7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RixPQUFPLGNBQWMsRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBMkI7UUFDMUMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQTZCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFpQztRQUNsRCxPQUFPLElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBb0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiJ9
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,10 +7,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const tegg_1 = require("@eggjs/tegg");
|
|
14
|
-
const LeoricRegister_1 = require("./LeoricRegister");
|
|
10
|
+
import { AccessLevel, Inject, SingletonProto, } from '@eggjs/tegg';
|
|
11
|
+
import { LeoricRegister } from "./LeoricRegister.js";
|
|
15
12
|
let Orm = class Orm {
|
|
16
13
|
// default dataSource
|
|
17
14
|
get client() {
|
|
@@ -26,14 +23,14 @@ let Orm = class Orm {
|
|
|
26
23
|
return this.leoricRegister.getOrCreateRealm(config.database);
|
|
27
24
|
}
|
|
28
25
|
};
|
|
29
|
-
exports.Orm = Orm;
|
|
30
26
|
__decorate([
|
|
31
|
-
|
|
32
|
-
__metadata("design:type",
|
|
27
|
+
Inject(),
|
|
28
|
+
__metadata("design:type", LeoricRegister)
|
|
33
29
|
], Orm.prototype, "leoricRegister", void 0);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
accessLevel:
|
|
30
|
+
Orm = __decorate([
|
|
31
|
+
SingletonProto({
|
|
32
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
37
33
|
})
|
|
38
34
|
], Orm);
|
|
39
|
-
|
|
35
|
+
export { Orm };
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uT1JNLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9TaW5nbGV0b25PUk0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU05QyxJQUFNLEdBQUcsR0FBVCxNQUFNLEdBQUc7SUFJZCxxQkFBcUI7SUFDckIsSUFBSSxNQUFNO1FBQ1IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxTQUFTLENBQUMsVUFBa0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLFVBQVUsYUFBYSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFFLENBQUM7SUFDaEUsQ0FBQztDQUVGLENBQUE7QUFoQlM7SUFEUCxNQUFNLEVBQUU7OEJBQ2UsY0FBYzsyQ0FBQztBQUY1QixHQUFHO0lBSGYsY0FBYyxDQUFDO1FBQ2QsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxHQUFHLENBa0JmIn0=
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
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';
|
|
5
|
+
declare module '@eggjs/tegg-orm-decorator' {
|
|
6
|
+
function Attribute(dataType: DataType, options?: AttributeOptions): (target: any, propertyKey: PropertyKey) => void;
|
|
7
|
+
}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import '@eggjs/tegg-plugin/types';
|
|
2
|
+
import "./app.js";
|
|
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": "
|
|
9
|
+
"version": "4.0.0-beta.10",
|
|
10
10
|
"description": "orm decorator for egg",
|
|
11
11
|
"keywords": [
|
|
12
12
|
"egg",
|
|
@@ -18,24 +18,26 @@
|
|
|
18
18
|
"leoric"
|
|
19
19
|
],
|
|
20
20
|
"files": [
|
|
21
|
-
"
|
|
22
|
-
"app.d.ts",
|
|
23
|
-
"lib/**/*.js",
|
|
24
|
-
"lib/**/*.d.ts",
|
|
25
|
-
"app/**/*.js",
|
|
26
|
-
"app/**/*.d.ts",
|
|
27
|
-
"typings/*.d.ts"
|
|
21
|
+
"dist"
|
|
28
22
|
],
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
23
|
+
"type": "module",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": "./dist/index.js",
|
|
26
|
+
"./app": "./dist/app.js",
|
|
27
|
+
"./config/config.default": "./dist/config/config.default.js",
|
|
28
|
+
"./lib/DataSourceManager": "./dist/lib/DataSourceManager.js",
|
|
29
|
+
"./lib/LeoricRegister": "./dist/lib/LeoricRegister.js",
|
|
30
|
+
"./lib/ModelProtoHook": "./dist/lib/ModelProtoHook.js",
|
|
31
|
+
"./lib/ModelProtoManager": "./dist/lib/ModelProtoManager.js",
|
|
32
|
+
"./lib/ORMLoadUnitHook": "./dist/lib/ORMLoadUnitHook.js",
|
|
33
|
+
"./lib/SingletonModelObject": "./dist/lib/SingletonModelObject.js",
|
|
34
|
+
"./lib/SingletonModelProto": "./dist/lib/SingletonModelProto.js",
|
|
35
|
+
"./lib/SingletonORM": "./dist/lib/SingletonORM.js",
|
|
36
|
+
"./lib/types": "./dist/lib/types.js",
|
|
37
|
+
"./types": "./dist/types.js",
|
|
38
|
+
"./package.json": "./package.json"
|
|
37
39
|
},
|
|
38
|
-
"homepage": "https://github.com/eggjs/tegg",
|
|
40
|
+
"homepage": "https://github.com/eggjs/tegg/tree/next/plugin/orm",
|
|
39
41
|
"bugs": {
|
|
40
42
|
"url": "https://github.com/eggjs/tegg/issues"
|
|
41
43
|
},
|
|
@@ -45,41 +47,50 @@
|
|
|
45
47
|
"directory": "plugin/orm"
|
|
46
48
|
},
|
|
47
49
|
"engines": {
|
|
48
|
-
"node": ">=
|
|
50
|
+
"node": ">=22.18.0"
|
|
49
51
|
},
|
|
50
52
|
"dependencies": {
|
|
51
|
-
"@eggjs/egg-module-common": "^3.62.0",
|
|
52
|
-
"@eggjs/tegg": "^3.62.0",
|
|
53
|
-
"@eggjs/tegg-common-util": "^3.62.0",
|
|
54
|
-
"@eggjs/tegg-lifecycle": "^3.62.0",
|
|
55
|
-
"@eggjs/tegg-loader": "^3.62.0",
|
|
56
|
-
"@eggjs/tegg-metadata": "^3.62.0",
|
|
57
|
-
"@eggjs/tegg-orm-decorator": "^3.62.0",
|
|
58
|
-
"@eggjs/tegg-runtime": "^3.62.0",
|
|
59
|
-
"@types/koa-router": "^7.0.40",
|
|
60
|
-
"koa-compose": "^3.2.1",
|
|
61
53
|
"leoric": "^2.12.2",
|
|
62
|
-
"sdk-base": "^
|
|
54
|
+
"sdk-base": "^5.0.1",
|
|
55
|
+
"@eggjs/egg-module-common": "4.0.0-beta.10",
|
|
56
|
+
"@eggjs/tegg": "4.0.0-beta.10",
|
|
57
|
+
"@eggjs/tegg-metadata": "4.0.0-beta.10",
|
|
58
|
+
"@eggjs/tegg-orm-decorator": "4.0.0-beta.10",
|
|
59
|
+
"@eggjs/tegg-lifecycle": "4.0.0-beta.10",
|
|
60
|
+
"@eggjs/tegg-runtime": "4.0.0-beta.10"
|
|
61
|
+
},
|
|
62
|
+
"peerDependencies": {
|
|
63
|
+
"egg": "beta",
|
|
64
|
+
"@eggjs/tegg-plugin": "4.0.0-beta.10"
|
|
63
65
|
},
|
|
64
66
|
"devDependencies": {
|
|
65
|
-
"@eggjs/
|
|
66
|
-
"@eggjs/
|
|
67
|
-
"@eggjs/
|
|
68
|
-
"@
|
|
69
|
-
"
|
|
70
|
-
"@types/node": "^
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"typescript": "^5.0.4"
|
|
67
|
+
"@eggjs/bin": "beta",
|
|
68
|
+
"@eggjs/mock": "beta",
|
|
69
|
+
"@eggjs/tracer": "beta",
|
|
70
|
+
"@types/mocha": "^10.0.10",
|
|
71
|
+
"mocha": "^11.0.1",
|
|
72
|
+
"@types/node": "^22.10.5",
|
|
73
|
+
"egg": "beta",
|
|
74
|
+
"mysql2": "^3.12.0",
|
|
75
|
+
"typescript": "^5.9.3",
|
|
76
|
+
"tsdown": "^0.15.6",
|
|
77
|
+
"unplugin-unused": "^0.5.3",
|
|
78
|
+
"@eggjs/tegg-config": "4.0.0-beta.10",
|
|
79
|
+
"@eggjs/tegg-plugin": "4.0.0-beta.10",
|
|
80
|
+
"@eggjs/module-test-util": "4.0.0-beta.4"
|
|
80
81
|
},
|
|
81
82
|
"publishConfig": {
|
|
82
83
|
"access": "public"
|
|
83
84
|
},
|
|
84
|
-
"
|
|
85
|
-
|
|
85
|
+
"main": "./dist/index.js",
|
|
86
|
+
"module": "./dist/index.js",
|
|
87
|
+
"types": "./dist/index.d.ts",
|
|
88
|
+
"scripts": {
|
|
89
|
+
"test:mocha:skip": "npm run prepare-test && egg-bin test",
|
|
90
|
+
"cov:mocha:skip": "npm run prepare-test && egg-bin cov",
|
|
91
|
+
"clean": "rimraf dist",
|
|
92
|
+
"build": "tsdown && rimraf dist && tsc -b --clean && tsc",
|
|
93
|
+
"typecheck": "tsc --noEmit",
|
|
94
|
+
"prepare-test": "node ./test/fixtures/prepare.js"
|
|
95
|
+
}
|
|
96
|
+
}
|
package/app.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const DataSourceManager_1 = require("./lib/DataSourceManager");
|
|
7
|
-
const LeoricRegister_1 = require("./lib/LeoricRegister");
|
|
8
|
-
const ModelProtoManager_1 = require("./lib/ModelProtoManager");
|
|
9
|
-
const ModelProtoHook_1 = require("./lib/ModelProtoHook");
|
|
10
|
-
const tegg_orm_decorator_1 = require("@eggjs/tegg-orm-decorator");
|
|
11
|
-
const SingletonModelProto_1 = __importDefault(require("./lib/SingletonModelProto"));
|
|
12
|
-
const SingletonModelObject_1 = require("./lib/SingletonModelObject");
|
|
13
|
-
const ORMLoadUnitHook_1 = require("./lib/ORMLoadUnitHook");
|
|
14
|
-
class OrmAppBootHook {
|
|
15
|
-
constructor(app) {
|
|
16
|
-
this.app = app;
|
|
17
|
-
this.dataSourceManager = new DataSourceManager_1.DataSourceManager();
|
|
18
|
-
this.modelProtoManager = new ModelProtoManager_1.ModelProtoManager();
|
|
19
|
-
this.leoricRegister = new LeoricRegister_1.LeoricRegister(this.modelProtoManager, this.dataSourceManager);
|
|
20
|
-
this.modelProtoHook = new ModelProtoHook_1.ModelProtoHook(this.modelProtoManager);
|
|
21
|
-
this.app.eggPrototypeCreatorFactory.registerPrototypeCreator(tegg_orm_decorator_1.MODEL_PROTO_IMPL_TYPE, SingletonModelProto_1.default.createProto);
|
|
22
|
-
this.app.leoricRegister = this.leoricRegister;
|
|
23
|
-
this.ormLoadUnitHook = new ORMLoadUnitHook_1.ORMLoadUnitHook();
|
|
24
|
-
}
|
|
25
|
-
configWillLoad() {
|
|
26
|
-
this.app.eggPrototypeLifecycleUtil.registerLifecycle(this.modelProtoHook);
|
|
27
|
-
this.app.eggObjectFactory.registerEggObjectCreateMethod(SingletonModelProto_1.default, SingletonModelObject_1.SingletonModelObject.createObject);
|
|
28
|
-
this.app.loadUnitLifecycleUtil.registerLifecycle(this.ormLoadUnitHook);
|
|
29
|
-
}
|
|
30
|
-
configDidLoad() {
|
|
31
|
-
const config = this.app.config.orm;
|
|
32
|
-
if (config.datasources) {
|
|
33
|
-
for (const datasource of config.datasources) {
|
|
34
|
-
this.dataSourceManager.addConfig(datasource);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
this.dataSourceManager.addDefaultConfig(config);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
async didLoad() {
|
|
42
|
-
await this.app.moduleHandler.ready();
|
|
43
|
-
await this.leoricRegister.register();
|
|
44
|
-
}
|
|
45
|
-
async beforeClose() {
|
|
46
|
-
this.app.eggPrototypeLifecycleUtil.deleteLifecycle(this.modelProtoHook);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.default = OrmAppBootHook;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTREO0FBQzVELHlEQUFzRDtBQUN0RCwrREFBNEQ7QUFDNUQseURBQXNEO0FBQ3RELGtFQUFrRTtBQUNsRSxvRkFBNEQ7QUFDNUQscUVBQWtFO0FBQ2xFLDJEQUF3RDtBQUV4RCxNQUFxQixjQUFjO0lBUWpDLFlBQVksR0FBRztRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUkscUNBQWlCLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxxQ0FBaUIsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSwrQkFBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksK0JBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLHdCQUF3QixDQUFDLDBDQUFxQixFQUFFLDZCQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JILElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGlDQUFlLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsNkJBQW1CLEVBQUUsMkNBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDbkMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBNUNELGlDQTRDQyJ9
|
package/lib/DataSourceManager.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DataSourceManager = void 0;
|
|
4
|
-
class DataSourceManager {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.dataSourceConfigs = [];
|
|
7
|
-
}
|
|
8
|
-
addDefaultConfig(config) {
|
|
9
|
-
this.defaultDataSourceConfig = config;
|
|
10
|
-
}
|
|
11
|
-
getDefaultConfig() {
|
|
12
|
-
return this.defaultDataSourceConfig;
|
|
13
|
-
}
|
|
14
|
-
addConfig(config) {
|
|
15
|
-
this.dataSourceConfigs.push(config);
|
|
16
|
-
}
|
|
17
|
-
getConfig(name) {
|
|
18
|
-
var _a;
|
|
19
|
-
if (((_a = this.defaultDataSourceConfig) === null || _a === void 0 ? void 0 : _a.database) === name) {
|
|
20
|
-
return this.defaultDataSourceConfig;
|
|
21
|
-
}
|
|
22
|
-
return this.dataSourceConfigs.find(t => t.database === name);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.DataSourceManager = DataSourceManager;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJEYXRhU291cmNlTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0QkEsTUFBYSxpQkFBaUI7SUFJNUI7UUFDRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFpQjtRQUNoQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWlCO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZOztRQUNwQixJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsdUJBQXVCLDBDQUFFLFFBQVEsTUFBSyxJQUFJLEVBQUUsQ0FBQztZQUNwRCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUExQkQsOENBMEJDIn0=
|
package/lib/LeoricRegister.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import Base from 'sdk-base';
|
|
2
|
-
import { ModelProtoManager } from './ModelProtoManager';
|
|
3
|
-
import { DataSourceManager, OrmConfig } from './DataSourceManager';
|
|
4
|
-
import Realm from 'leoric';
|
|
5
|
-
import { ModelMetadata } from '@eggjs/tegg-orm-decorator';
|
|
6
|
-
export declare class LeoricRegister extends Base {
|
|
7
|
-
private readonly modelProtoManager;
|
|
8
|
-
private readonly dataSourceManager;
|
|
9
|
-
readonly realmMap: Map<string, any>;
|
|
10
|
-
constructor(modelProtoManager: ModelProtoManager, dataSourceManager: DataSourceManager);
|
|
11
|
-
getConfig(datasource?: string): OrmConfig | undefined;
|
|
12
|
-
getRealm(config: OrmConfig | undefined): Realm | undefined;
|
|
13
|
-
getOrCreateRealm(datasource: string | undefined): any;
|
|
14
|
-
generateLeoricAttributes(metadata: ModelMetadata): {};
|
|
15
|
-
register(): Promise<void>;
|
|
16
|
-
}
|
package/lib/LeoricRegister.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.LeoricRegister = void 0;
|
|
40
|
-
const sdk_base_1 = __importDefault(require("sdk-base"));
|
|
41
|
-
const leoric_1 = __importStar(require("leoric"));
|
|
42
|
-
const tegg_orm_decorator_1 = require("@eggjs/tegg-orm-decorator");
|
|
43
|
-
class LeoricRegister extends sdk_base_1.default {
|
|
44
|
-
constructor(modelProtoManager, dataSourceManager) {
|
|
45
|
-
super();
|
|
46
|
-
this.modelProtoManager = modelProtoManager;
|
|
47
|
-
this.dataSourceManager = dataSourceManager;
|
|
48
|
-
this.realmMap = new Map();
|
|
49
|
-
}
|
|
50
|
-
getConfig(datasource) {
|
|
51
|
-
let config;
|
|
52
|
-
if (!datasource) {
|
|
53
|
-
config = this.dataSourceManager.getDefaultConfig();
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
config = this.dataSourceManager.getConfig(datasource);
|
|
57
|
-
}
|
|
58
|
-
return config;
|
|
59
|
-
}
|
|
60
|
-
getRealm(config) {
|
|
61
|
-
if (!(config === null || config === void 0 ? void 0 : config.database)) {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
const realm = this.realmMap.get(config.database);
|
|
65
|
-
return realm;
|
|
66
|
-
}
|
|
67
|
-
getOrCreateRealm(datasource) {
|
|
68
|
-
const config = this.getConfig(datasource);
|
|
69
|
-
let realm;
|
|
70
|
-
if (config) {
|
|
71
|
-
realm = this.getRealm(config);
|
|
72
|
-
if (realm) {
|
|
73
|
-
return realm;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
realm = new leoric_1.default({ ...config });
|
|
77
|
-
this.realmMap.set(config.database, realm);
|
|
78
|
-
return realm;
|
|
79
|
-
}
|
|
80
|
-
generateLeoricAttributes(metadata) {
|
|
81
|
-
const attributes = {};
|
|
82
|
-
for (const attribute of metadata.attributes) {
|
|
83
|
-
attributes[attribute.propertyName] = {
|
|
84
|
-
columnName: attribute.attributeName,
|
|
85
|
-
type: attribute.dataType,
|
|
86
|
-
allowNull: attribute.allowNull,
|
|
87
|
-
primaryKey: attribute.primary,
|
|
88
|
-
unique: attribute.unique,
|
|
89
|
-
autoIncrement: attribute.autoIncrement,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
return attributes;
|
|
93
|
-
}
|
|
94
|
-
async register() {
|
|
95
|
-
for (const { proto, clazz } of this.modelProtoManager.getProtos()) {
|
|
96
|
-
const metadata = tegg_orm_decorator_1.ModelMetadataUtil.getModelMetadata(clazz);
|
|
97
|
-
if (!metadata)
|
|
98
|
-
throw new Error(`not found metadata for model ${proto.id}`);
|
|
99
|
-
const realm = this.getOrCreateRealm(metadata.dataSource);
|
|
100
|
-
realm.models[clazz.name] = clazz;
|
|
101
|
-
realm[clazz.name] = clazz;
|
|
102
|
-
const attributes = this.generateLeoricAttributes(metadata);
|
|
103
|
-
const hooks = {};
|
|
104
|
-
for (const hookName of leoric_1.hookNames) {
|
|
105
|
-
if (clazz[hookName]) {
|
|
106
|
-
hooks[hookName] = clazz[hookName];
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
clazz.init(attributes, {
|
|
110
|
-
tableName: metadata.tableName,
|
|
111
|
-
hooks,
|
|
112
|
-
}, {});
|
|
113
|
-
}
|
|
114
|
-
await Promise.all(Array.from(this.realmMap.values())
|
|
115
|
-
.map(realm => realm.connect()));
|
|
116
|
-
this.ready(true);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
exports.LeoricRegister = LeoricRegister;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVvcmljUmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMZW9yaWNSZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBNEI7QUFHNUIsaURBQTBDO0FBQzFDLGtFQUE2RTtBQUU3RSxNQUFhLGNBQWUsU0FBUSxrQkFBSTtJQUt0QyxZQUFZLGlCQUFvQyxFQUFFLGlCQUFvQztRQUNwRixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLENBQUMsVUFBbUI7UUFDM0IsSUFBSSxNQUE2QixDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckQsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUE2QjtRQUNwQyxJQUFJLENBQUMsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFBLEVBQUUsQ0FBQztZQUN0QixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGdCQUFnQixD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
|
package/lib/ModelProtoHook.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelProtoHook = void 0;
|
|
4
|
-
const tegg_orm_decorator_1 = require("@eggjs/tegg-orm-decorator");
|
|
5
|
-
class ModelProtoHook {
|
|
6
|
-
constructor(modelProtoManager) {
|
|
7
|
-
this.modelProtoManager = modelProtoManager;
|
|
8
|
-
}
|
|
9
|
-
async postCreate(ctx, obj) {
|
|
10
|
-
if (!obj.getMetaData(tegg_orm_decorator_1.IS_MODEL)) {
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
const builder = new tegg_orm_decorator_1.ModelMetaBuilder(ctx.clazz);
|
|
14
|
-
const metadata = builder.build();
|
|
15
|
-
tegg_orm_decorator_1.ModelMetadataUtil.setModelMetadata(ctx.clazz, metadata);
|
|
16
|
-
this.modelProtoManager.addProto(ctx.clazz, obj);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.ModelProtoHook = ModelProtoHook;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxQcm90b0hvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJNb2RlbFByb3RvSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxrRUFBMEY7QUFHMUYsTUFBYSxjQUFjO0lBR3pCLFlBQVksaUJBQW9DO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFpQyxFQUFFLEdBQWlCO1FBQ25FLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLDZCQUFRLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQ0FBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLHNDQUFpQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQWhCRCx3Q0FnQkMifQ==
|
package/lib/ModelProtoManager.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelProtoManager = void 0;
|
|
4
|
-
class ModelProtoManager {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.protos = [];
|
|
7
|
-
}
|
|
8
|
-
addProto(clazz, proto) {
|
|
9
|
-
this.protos.push({ proto, clazz });
|
|
10
|
-
}
|
|
11
|
-
getProtos() {
|
|
12
|
-
return this.protos.slice();
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
exports.ModelProtoManager = ModelProtoManager;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxQcm90b01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJNb2RlbFByb3RvTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQSxNQUFhLGlCQUFpQjtJQUE5QjtRQUNtQixXQUFNLEdBQTBCLEVBQUUsQ0FBQztJQVN0RCxDQUFDO0lBUEMsUUFBUSxDQUFDLEtBQXdCLEVBQUUsS0FBbUI7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFWRCw4Q0FVQyJ9
|
package/lib/ORMLoadUnitHook.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ORMLoadUnitHook = void 0;
|
|
4
|
-
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
5
|
-
const SingletonORM_1 = require("./SingletonORM");
|
|
6
|
-
const REGISTER_CLAZZ = [
|
|
7
|
-
SingletonORM_1.Orm,
|
|
8
|
-
];
|
|
9
|
-
class ORMLoadUnitHook {
|
|
10
|
-
async postCreate(_ctx, loadUnit) {
|
|
11
|
-
if (loadUnit.type === tegg_metadata_1.EggLoadUnitType.APP) {
|
|
12
|
-
for (const clazz of REGISTER_CLAZZ) {
|
|
13
|
-
const protos = await tegg_metadata_1.EggPrototypeCreatorFactory.createProto(clazz, loadUnit);
|
|
14
|
-
for (const proto of protos) {
|
|
15
|
-
tegg_metadata_1.EggPrototypeFactory.instance.registerPrototype(proto, loadUnit);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.ORMLoadUnitHook = ORMLoadUnitHook;
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT1JNTG9hZFVuaXRIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiT1JNTG9hZFVuaXRIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHdEQU04QjtBQUM5QixpREFBcUM7QUFFckMsTUFBTSxjQUFjLEdBQUc7SUFDckIsa0JBQUc7Q0FDSixDQUFDO0FBRUYsTUFBYSxlQUFlO0lBQzFCLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBOEIsRUFBRSxRQUFrQjtRQUNqRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssK0JBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxLQUFLLE1BQU0sS0FBSyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLE1BQU0sR0FBRyxNQUFNLDBDQUEwQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdFLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQzNCLG1DQUFtQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQVhELDBDQVdDIn0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SingletonModelObject = void 0;
|
|
4
|
-
const tegg_runtime_1 = require("@eggjs/tegg-runtime");
|
|
5
|
-
const tegg_lifecycle_1 = require("@eggjs/tegg-lifecycle");
|
|
6
|
-
const egg_module_common_1 = require("@eggjs/egg-module-common");
|
|
7
|
-
class SingletonModelObject {
|
|
8
|
-
constructor(name, proto) {
|
|
9
|
-
this.status = tegg_runtime_1.EggObjectStatus.PENDING;
|
|
10
|
-
this.name = name;
|
|
11
|
-
this.proto = proto;
|
|
12
|
-
this.id = tegg_lifecycle_1.IdenticalUtil.createObjectId(this.proto.id);
|
|
13
|
-
}
|
|
14
|
-
async init() {
|
|
15
|
-
const clazz = class ContextModelClass extends this.proto.model {
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
static get name() {
|
|
19
|
-
return super.name;
|
|
20
|
-
}
|
|
21
|
-
static get ctx() {
|
|
22
|
-
const ctx = tegg_runtime_1.ContextHandler.getContext();
|
|
23
|
-
if (ctx) {
|
|
24
|
-
return ctx.get(egg_module_common_1.EGG_CONTEXT);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
get ctx() {
|
|
28
|
-
return ContextModelClass.ctx;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
this._obj = clazz;
|
|
32
|
-
this.status = tegg_runtime_1.EggObjectStatus.READY;
|
|
33
|
-
}
|
|
34
|
-
injectProperty() {
|
|
35
|
-
throw new Error('never call ModelObject#injectProperty');
|
|
36
|
-
}
|
|
37
|
-
get isReady() {
|
|
38
|
-
return this.status === tegg_runtime_1.EggObjectStatus.READY;
|
|
39
|
-
}
|
|
40
|
-
get obj() {
|
|
41
|
-
return this._obj;
|
|
42
|
-
}
|
|
43
|
-
static async createObject(name, proto) {
|
|
44
|
-
const modelObject = new SingletonModelObject(name, proto);
|
|
45
|
-
await modelObject.init();
|
|
46
|
-
return modelObject;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.SingletonModelObject = SingletonModelObject;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxPYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTaW5nbGV0b25Nb2RlbE9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFJNkI7QUFHN0IsMERBQTBEO0FBRzFELGdFQUF1RDtBQUV2RCxNQUFhLG9CQUFvQjtJQU8vQixZQUFZLElBQW1CLEVBQUUsS0FBMEI7UUFObkQsV0FBTSxHQUFvQiw4QkFBZSxDQUFDLE9BQU8sQ0FBQztRQU94RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLDhCQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxLQUFLLEdBQUcsTUFBTSxpQkFBa0IsU0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDNUQsNkRBQTZEO1lBQzdELGFBQWE7WUFDYixNQUFNLEtBQUssSUFBSTtnQkFDYixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEIsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHO2dCQUNaLE1BQU0sR0FBRyxHQUFHLDZCQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLCtCQUFXLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLEdBQUc7Z0JBQ0wsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7WUFDL0IsQ0FBQztTQUVGLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLDhCQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssOEJBQWUsQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBbUIsRUFBRSxLQUFtQjtRQUNoRSxNQUFNLFdBQVcsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxLQUE0QixDQUFDLENBQUM7UUFDakYsTUFBTSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBdERELG9EQXNEQyJ9
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tegg_1 = require("@eggjs/tegg");
|
|
4
|
-
const tegg_lifecycle_1 = require("@eggjs/tegg-lifecycle");
|
|
5
|
-
class SingletonModelProto {
|
|
6
|
-
constructor(loadUnit, model) {
|
|
7
|
-
this.accessLevel = tegg_1.AccessLevel.PUBLIC;
|
|
8
|
-
this.initType = tegg_1.ObjectInitType.SINGLETON;
|
|
9
|
-
this.injectObjects = [];
|
|
10
|
-
this.model = model;
|
|
11
|
-
this.id = tegg_lifecycle_1.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 = tegg_1.QualifierUtil.getProtoQualifiers(model);
|
|
16
|
-
}
|
|
17
|
-
constructEggObject() {
|
|
18
|
-
return {};
|
|
19
|
-
}
|
|
20
|
-
getMetaData(metadataKey) {
|
|
21
|
-
return tegg_1.MetadataUtil.getMetaData(metadataKey, this.model);
|
|
22
|
-
}
|
|
23
|
-
verifyQualifier(qualifier) {
|
|
24
|
-
const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
|
|
25
|
-
return (selfQualifiers === null || selfQualifiers === void 0 ? void 0 : 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
|
-
var _a;
|
|
37
|
-
return (_a = this.qualifiers.find(t => t.attribute === attribute)) === null || _a === void 0 ? void 0 : _a.value;
|
|
38
|
-
}
|
|
39
|
-
static createProto(ctx) {
|
|
40
|
-
return new SingletonModelProto(ctx.loadUnit, ctx.clazz);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
exports.default = SingletonModelProto;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxQcm90by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlNpbmdsZXRvbk1vZGVsUHJvdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxzQ0FRcUI7QUFDckIsMERBQTBEO0FBRzFELE1BQXFCLG1CQUFtQjtJQVd0QyxZQUFZLFFBQWtCLEVBQUUsS0FBa0I7UUFUekMsZ0JBQVcsR0FBRyxrQkFBVyxDQUFDLE1BQU0sQ0FBQztRQUVqQyxhQUFRLEdBQUcscUJBQWMsQ0FBQyxTQUFTLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFPMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsR0FBRyw4QkFBYSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFVBQVUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxvQkFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQXdCO1FBQ3JDLE9BQU8sbUJBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXdCO1FBQ3RDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEYsT0FBTyxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxLQUFLLE1BQUssU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBMkI7UUFDMUMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQTZCOztRQUN4QyxPQUFPLE1BQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQywwQ0FBRSxLQUFLLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBaUM7UUFDbEQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQW9CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0Y7QUFqREQsc0NBaURDIn0=
|
package/lib/SingletonORM.d.ts
DELETED
package/typings/index.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import 'egg';
|
|
2
|
-
import '@eggjs/tegg-plugin';
|
|
3
|
-
|
|
4
|
-
import { DataType } from 'leoric';
|
|
5
|
-
import { AttributeOptions } from '@eggjs/tegg-orm-decorator';
|
|
6
|
-
import { LeoricRegister } from '../lib/LeoricRegister';
|
|
7
|
-
import { Orm } from '../lib/SingletonORM';
|
|
8
|
-
|
|
9
|
-
declare module '@eggjs/tegg-orm-decorator' {
|
|
10
|
-
export declare function Attribute(dataType: DataType, options?: AttributeOptions): (target: any, propertyKey: PropertyKey) => void;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
declare module 'egg' {
|
|
14
|
-
export interface TeggOrmApplication {
|
|
15
|
-
leoricRegister: LeoricRegister;
|
|
16
|
-
orm: Orm;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
interface Application extends TeggOrmApplication {
|
|
20
|
-
}
|
|
21
|
-
}
|