@eggjs/tegg-orm-plugin 4.0.0-beta.8 → 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.
Files changed (45) hide show
  1. package/dist/app.d.ts +22 -7
  2. package/dist/app.js +46 -11
  3. package/dist/config/config.default.d.ts +11 -14
  4. package/dist/config/config.default.js +4 -5
  5. package/dist/index.d.ts +4 -8
  6. package/dist/index.js +5 -12
  7. package/dist/lib/DataSourceManager.d.ts +20 -2
  8. package/dist/lib/DataSourceManager.js +21 -3
  9. package/dist/lib/LeoricRegister.d.ts +16 -5
  10. package/dist/lib/LeoricRegister.js +82 -5
  11. package/dist/lib/ModelProtoHook.d.ts +7 -11
  12. package/dist/lib/ModelProtoHook.js +19 -4
  13. package/dist/lib/ModelProtoManager.d.ts +11 -2
  14. package/dist/lib/ModelProtoManager.js +14 -3
  15. package/dist/lib/ORMLoadUnitHook.d.ts +4 -8
  16. package/dist/lib/ORMLoadUnitHook.js +19 -7
  17. package/dist/lib/SingletonModelObject.d.ts +18 -22
  18. package/dist/lib/SingletonModelObject.js +50 -4
  19. package/dist/lib/SingletonModelProto.d.ts +23 -2
  20. package/dist/lib/SingletonModelProto.js +42 -3
  21. package/dist/lib/SingletonORM.d.ts +6 -3
  22. package/dist/lib/SingletonORM.js +36 -6
  23. package/dist/lib/types.d.ts +3 -2
  24. package/dist/lib/types.js +2 -3
  25. package/dist/types.d.ts +7 -7
  26. package/dist/types.js +4 -12
  27. package/package.json +11 -11
  28. package/dist/DataSourceManager-CyKZLZ5P.d.ts +0 -23
  29. package/dist/DataSourceManager-D8WpEJAL.js +0 -22
  30. package/dist/LeoricRegister-BYtIlnjj.d.ts +0 -20
  31. package/dist/LeoricRegister-D5XVCPFb.js +0 -67
  32. package/dist/ModelProtoHook-DUljMCzr.js +0 -19
  33. package/dist/ModelProtoManager-DNpjSdgO.d.ts +0 -15
  34. package/dist/ModelProtoManager-L7fRU1sn.js +0 -21
  35. package/dist/ORMLoadUnitHook-BVBniFwv.js +0 -17
  36. package/dist/SingletonModelObject-BUrJjvMq.js +0 -48
  37. package/dist/SingletonModelProto-CffXdtt4.d.ts +0 -27
  38. package/dist/SingletonModelProto-DM-war1a.js +0 -41
  39. package/dist/SingletonORM-CPBngV28.js +0 -36
  40. package/dist/SingletonORM-Qo7APzul.d.ts +0 -10
  41. package/dist/app-CZucRSDc.d.ts +0 -26
  42. package/dist/app-Dyi1e0rC.js +0 -43
  43. package/dist/types-AcnzDaZv.d.ts +0 -8
  44. package/dist/types-CLh7lniX.js +0 -4
  45. package/dist/types-dLxBJ-zQ.d.ts +0 -7
package/dist/app.d.ts CHANGED
@@ -1,7 +1,22 @@
1
- import "./types-dLxBJ-zQ.js";
2
- import "./SingletonORM-Qo7APzul.js";
3
- import "./ModelProtoManager-DNpjSdgO.js";
4
- import "./DataSourceManager-CyKZLZ5P.js";
5
- import "./LeoricRegister-BYtIlnjj.js";
6
- import { OrmAppBootHook } from "./app-CZucRSDc.js";
7
- export { OrmAppBootHook as default };
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>;
16
+ }
17
+ declare module 'egg' {
18
+ interface Application {
19
+ leoricRegister: LeoricRegister;
20
+ orm: Orm;
21
+ }
22
+ }
package/dist/app.js CHANGED
@@ -1,11 +1,46 @@
1
- import "./ModelProtoManager-L7fRU1sn.js";
2
- import "./DataSourceManager-D8WpEJAL.js";
3
- import "./LeoricRegister-D5XVCPFb.js";
4
- import "./SingletonORM-CPBngV28.js";
5
- import "./ModelProtoHook-DUljMCzr.js";
6
- import "./SingletonModelProto-DM-war1a.js";
7
- import "./SingletonModelObject-BUrJjvMq.js";
8
- import "./ORMLoadUnitHook-BVBniFwv.js";
9
- import { OrmAppBootHook } from "./app-Dyi1e0rC.js";
10
-
11
- export { OrmAppBootHook as default };
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=
@@ -1,19 +1,16 @@
1
- import { OrmConfig } from "../DataSourceManager-CyKZLZ5P.js";
2
-
3
- //#region src/config/config.default.d.ts
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
- orm: AppOrmConfig;
6
+ orm: AppOrmConfig;
9
7
  };
8
+ export default _default;
10
9
  declare module 'egg' {
11
- interface EggAppConfig {
12
- /**
13
- * orm config
14
- */
15
- orm: AppOrmConfig;
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
- //#region src/config/config.default.ts
2
- var config_default_default = { orm: {} };
3
-
4
- //#endregion
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,8 +1,4 @@
1
- import "./types-dLxBJ-zQ.js";
2
- import { Orm } from "./SingletonORM-Qo7APzul.js";
3
- import "./ModelProtoManager-DNpjSdgO.js";
4
- import "./DataSourceManager-CyKZLZ5P.js";
5
- import { LeoricRegister } from "./LeoricRegister-BYtIlnjj.js";
6
- import "./app-CZucRSDc.js";
7
- import "./types-AcnzDaZv.js";
8
- export { LeoricRegister, Orm };
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,12 +1,5 @@
1
- import "./ModelProtoManager-L7fRU1sn.js";
2
- import "./DataSourceManager-D8WpEJAL.js";
3
- import { LeoricRegister } from "./LeoricRegister-D5XVCPFb.js";
4
- import { Orm } from "./SingletonORM-CPBngV28.js";
5
- import "./ModelProtoHook-DUljMCzr.js";
6
- import "./SingletonModelProto-DM-war1a.js";
7
- import "./SingletonModelObject-BUrJjvMq.js";
8
- import "./ORMLoadUnitHook-BVBniFwv.js";
9
- import "./app-Dyi1e0rC.js";
10
- import "./types-CLh7lniX.js";
11
-
12
- export { LeoricRegister, Orm };
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=
@@ -1,2 +1,20 @@
1
- import { DataSourceManager, OrmConfig } from "../DataSourceManager-CyKZLZ5P.js";
2
- export { DataSourceManager, OrmConfig };
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;
11
+ }
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;
20
+ }
@@ -1,3 +1,21 @@
1
- import { DataSourceManager } from "../DataSourceManager-D8WpEJAL.js";
2
-
3
- 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,5 +1,16 @@
1
- import "../types-dLxBJ-zQ.js";
2
- import "../ModelProtoManager-DNpjSdgO.js";
3
- import "../DataSourceManager-CyKZLZ5P.js";
4
- import { LeoricRegister } from "../LeoricRegister-BYtIlnjj.js";
5
- export { LeoricRegister };
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
+ }
@@ -1,5 +1,82 @@
1
- import "../ModelProtoManager-L7fRU1sn.js";
2
- import "../DataSourceManager-D8WpEJAL.js";
3
- import { LeoricRegister } from "../LeoricRegister-D5XVCPFb.js";
4
-
5
- export { LeoricRegister };
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 { ModelProtoManager } from "../ModelProtoManager-DNpjSdgO.js";
2
- import { LifecycleHook } from "@eggjs/tegg";
3
- import { EggPrototype, EggPrototypeLifecycleContext } from "@eggjs/tegg-metadata";
4
-
5
- //#region src/lib/ModelProtoHook.d.ts
6
- declare class ModelProtoHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
7
- private readonly modelProtoManager;
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,4 +1,19 @@
1
- import "../ModelProtoManager-L7fRU1sn.js";
2
- import { ModelProtoHook } from "../ModelProtoHook-DUljMCzr.js";
3
-
4
- 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,2 +1,11 @@
1
- import { ModelProtoManager, ModelProtoPair } from "../ModelProtoManager-DNpjSdgO.js";
2
- export { ModelProtoManager, ModelProtoPair };
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;
6
+ }
7
+ export declare class ModelProtoManager {
8
+ private readonly protos;
9
+ addProto(clazz: EggProtoImplClass, proto: EggPrototype): void;
10
+ getProtos(): Array<ModelProtoPair>;
11
+ }
@@ -1,3 +1,14 @@
1
- import { ModelProtoManager } from "../ModelProtoManager-L7fRU1sn.js";
2
-
3
- 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 "@eggjs/tegg";
2
- import { LoadUnit, LoadUnitLifecycleContext } from "@eggjs/tegg-metadata";
3
-
4
- //#region src/lib/ORMLoadUnitHook.d.ts
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,7 +1,19 @@
1
- import "../ModelProtoManager-L7fRU1sn.js";
2
- import "../DataSourceManager-D8WpEJAL.js";
3
- import "../LeoricRegister-D5XVCPFb.js";
4
- import "../SingletonORM-CPBngV28.js";
5
- import { ORMLoadUnitHook } from "../ORMLoadUnitHook-BVBniFwv.js";
6
-
7
- export { ORMLoadUnitHook };
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,23 +1,19 @@
1
- import { SingletonModelProto } from "../SingletonModelProto-CffXdtt4.js";
2
- import { EggObjectName, EggPrototypeName } from "@eggjs/tegg";
3
- import { Bone } from "leoric";
4
- import { EggPrototype } from "@eggjs/tegg-metadata";
5
- import { Id } from "@eggjs/tegg-lifecycle";
6
- import { EggObject } from "@eggjs/tegg-runtime";
7
-
8
- //#region src/lib/SingletonModelObject.d.ts
9
- declare class SingletonModelObject implements EggObject {
10
- private status;
11
- id: Id;
12
- readonly name: EggPrototypeName;
13
- private _obj;
14
- readonly proto: SingletonModelProto;
15
- constructor(name: EggObjectName, proto: SingletonModelProto);
16
- init(): Promise<void>;
17
- injectProperty(): void;
18
- get isReady(): boolean;
19
- 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,4 +1,50 @@
1
- import "../SingletonModelProto-DM-war1a.js";
2
- import { SingletonModelObject } from "../SingletonModelObject-BUrJjvMq.js";
3
-
4
- export { SingletonModelObject };
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,2 +1,23 @@
1
- import { SingletonModelProto } from "../SingletonModelProto-CffXdtt4.js";
2
- export { SingletonModelProto as default };
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;
23
+ }