@eggjs/tegg-orm-plugin 4.0.0-beta.3 → 4.0.0-beta.5

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 (52) hide show
  1. package/README.md +12 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js +10 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.93.0/helpers/decorateMetadata.js +7 -0
  4. package/dist/app.d.ts +26 -0
  5. package/dist/app.js +44 -0
  6. package/dist/config/config.default.d.ts +19 -0
  7. package/dist/config/config.default.js +5 -0
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.js +5 -0
  10. package/dist/lib/DataSourceManager.d.ts +23 -0
  11. package/dist/lib/DataSourceManager.js +22 -0
  12. package/dist/lib/LeoricRegister.d.ts +20 -0
  13. package/dist/lib/LeoricRegister.js +68 -0
  14. package/dist/lib/ModelProtoHook.d.ts +12 -0
  15. package/dist/lib/ModelProtoHook.js +20 -0
  16. package/dist/lib/ModelProtoManager.d.ts +15 -0
  17. package/dist/lib/ModelProtoManager.js +21 -0
  18. package/dist/lib/ORMLoadUnitHook.d.ts +9 -0
  19. package/dist/lib/ORMLoadUnitHook.js +17 -0
  20. package/dist/lib/SingletonModelObject.d.ts +23 -0
  21. package/dist/lib/SingletonModelObject.js +49 -0
  22. package/dist/lib/SingletonModelProto.d.ts +27 -0
  23. package/dist/lib/SingletonModelProto.js +41 -0
  24. package/dist/lib/SingletonORM.d.ts +10 -0
  25. package/dist/lib/SingletonORM.js +23 -0
  26. package/dist/lib/types.d.ts +7 -0
  27. package/dist/lib/types.js +3 -0
  28. package/dist/types.d.ts +8 -0
  29. package/dist/types.js +5 -0
  30. package/package.json +54 -49
  31. package/app.d.ts +0 -14
  32. package/app.js +0 -44
  33. package/index.d.ts +0 -21
  34. package/index.js +0 -5
  35. package/lib/DataSourceManager.d.ts +0 -20
  36. package/lib/DataSourceManager.js +0 -21
  37. package/lib/LeoricRegister.d.ts +0 -16
  38. package/lib/LeoricRegister.js +0 -80
  39. package/lib/ModelProtoHook.d.ts +0 -8
  40. package/lib/ModelProtoHook.js +0 -16
  41. package/lib/ModelProtoManager.d.ts +0 -11
  42. package/lib/ModelProtoManager.js +0 -12
  43. package/lib/ORMLoadUnitHook.d.ts +0 -5
  44. package/lib/ORMLoadUnitHook.js +0 -18
  45. package/lib/SingletonModelObject.d.ts +0 -19
  46. package/lib/SingletonModelObject.js +0 -46
  47. package/lib/SingletonModelProto.d.ts +0 -23
  48. package/lib/SingletonModelProto.js +0 -40
  49. package/lib/SingletonORM.d.ts +0 -6
  50. package/lib/SingletonORM.js +0 -36
  51. package/lib/types.d.ts +0 -3
  52. package/lib/types.js +0 -2
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "tegg"
7
7
  ]
8
8
  },
9
- "version": "4.0.0-beta.3",
9
+ "version": "4.0.0-beta.5",
10
10
  "description": "orm decorator for egg",
11
11
  "keywords": [
12
12
  "egg",
@@ -18,35 +18,26 @@
18
18
  "leoric"
19
19
  ],
20
20
  "files": [
21
- "app.js",
22
- "app.d.ts",
23
- "lib/**/*.js",
24
- "lib/**/*.d.ts",
25
- "app/**/*.js",
26
- "app/**/*.d.ts",
27
- "index.js",
28
- "index.d.ts"
21
+ "dist"
29
22
  ],
30
23
  "type": "module",
31
24
  "exports": {
32
- ".": {
33
- "types": "./index.d.ts",
34
- "default": "./index.js"
35
- },
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",
36
38
  "./package.json": "./package.json"
37
39
  },
38
- "scripts": {
39
- "pretest": "npm run prepare-test",
40
- "test": "egg-bin test",
41
- "precov": "npm run prepare-test",
42
- "cov": "egg-bin cov",
43
- "clean": "tsc -b --clean",
44
- "tsc": "npm run clean && tsc -p ./tsconfig.pub.json",
45
- "tsc:pub": "npm run tsc",
46
- "prepublishOnly": "npm run tsc",
47
- "prepare-test": "node ./test/fixtures/prepare.js"
48
- },
49
- "homepage": "https://github.com/eggjs/tegg",
40
+ "homepage": "https://github.com/eggjs/tegg/tree/next/plugin/orm",
50
41
  "bugs": {
51
42
  "url": "https://github.com/eggjs/tegg/issues"
52
43
  },
@@ -56,36 +47,50 @@
56
47
  "directory": "plugin/orm"
57
48
  },
58
49
  "engines": {
59
- "node": ">=20.0.0"
50
+ "node": ">=22.18.0"
60
51
  },
61
52
  "dependencies": {
62
- "@eggjs/core": "^6.4.0",
63
- "@eggjs/egg-module-common": "^4.0.0-beta.3",
64
- "@eggjs/tegg": "^4.0.0-beta.3",
65
- "@eggjs/tegg-common-util": "^4.0.0-beta.3",
66
- "@eggjs/tegg-lifecycle": "^4.0.0-beta.3",
67
- "@eggjs/tegg-loader": "^4.0.0-beta.3",
68
- "@eggjs/tegg-metadata": "^4.0.0-beta.3",
69
- "@eggjs/tegg-orm-decorator": "^4.0.0-beta.3",
70
- "@eggjs/tegg-runtime": "^4.0.0-beta.3",
71
53
  "leoric": "^2.12.2",
72
- "sdk-base": "^5.0.1"
54
+ "sdk-base": "^5.0.1",
55
+ "@eggjs/egg-module-common": "4.0.0-beta.5",
56
+ "@eggjs/tegg": "4.0.0-beta.5",
57
+ "@eggjs/tegg-lifecycle": "4.0.0-beta.5",
58
+ "@eggjs/tegg-metadata": "4.0.0-beta.5",
59
+ "@eggjs/tegg-orm-decorator": "4.0.0-beta.5",
60
+ "@eggjs/tegg-runtime": "4.0.0-beta.5"
61
+ },
62
+ "peerDependencies": {
63
+ "egg": "beta",
64
+ "@eggjs/tegg-plugin": "4.0.0-beta.5"
73
65
  },
74
66
  "devDependencies": {
75
- "@eggjs/mock": "6",
76
- "@eggjs/module-test-util": "^4.0.0-beta.3",
77
- "@eggjs/tegg-config": "^4.0.0-beta.3",
78
- "@eggjs/tegg-plugin": "^4.0.0-beta.3",
79
- "@eggjs/tracer": "3",
80
- "@types/mocha": "10",
81
- "@types/node": "22",
82
- "egg": "4",
83
- "mysql2": "3",
84
- "ts-node": "10",
85
- "typescript": "5"
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.5",
79
+ "@eggjs/module-test-util": "4.0.0-beta.4",
80
+ "@eggjs/tegg-plugin": "4.0.0-beta.5"
86
81
  },
87
82
  "publishConfig": {
88
83
  "access": "public"
89
84
  },
90
- "gitHead": "6b84b0275fd728a4973746a5341236fe0481a33e"
91
- }
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",
93
+ "typecheck": "tsc --noEmit",
94
+ "prepare-test": "node ./test/fixtures/prepare.js"
95
+ }
96
+ }
package/app.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import { EggCore as Application } from '@eggjs/core';
2
- export default class OrmAppBootHook {
3
- private readonly app;
4
- private readonly dataSourceManager;
5
- private readonly leoricRegister;
6
- private readonly modelProtoManager;
7
- private readonly modelProtoHook;
8
- private readonly ormLoadUnitHook;
9
- constructor(app: Application);
10
- configWillLoad(): void;
11
- configDidLoad(): void;
12
- didLoad(): Promise<void>;
13
- beforeClose(): Promise<void>;
14
- }
package/app.js DELETED
@@ -1,44 +0,0 @@
1
- import { DataSourceManager } from './lib/DataSourceManager.js';
2
- import { LeoricRegister } from './lib/LeoricRegister.js';
3
- import { ModelProtoManager } from './lib/ModelProtoManager.js';
4
- import { ModelProtoHook } from './lib/ModelProtoHook.js';
5
- import { MODEL_PROTO_IMPL_TYPE } from '@eggjs/tegg-orm-decorator';
6
- import SingletonModelProto from './lib/SingletonModelProto.js';
7
- import { SingletonModelObject } from './lib/SingletonModelObject.js';
8
- import { ORMLoadUnitHook } from './lib/ORMLoadUnitHook.js';
9
- export default class OrmAppBootHook {
10
- constructor(app) {
11
- this.app = app;
12
- this.dataSourceManager = new DataSourceManager();
13
- this.modelProtoManager = new ModelProtoManager();
14
- this.leoricRegister = new LeoricRegister(this.modelProtoManager, this.dataSourceManager);
15
- this.modelProtoHook = new ModelProtoHook(this.modelProtoManager);
16
- this.app.eggPrototypeCreatorFactory.registerPrototypeCreator(MODEL_PROTO_IMPL_TYPE, SingletonModelProto.createProto);
17
- this.app.leoricRegister = this.leoricRegister;
18
- this.ormLoadUnitHook = new ORMLoadUnitHook();
19
- }
20
- configWillLoad() {
21
- this.app.eggPrototypeLifecycleUtil.registerLifecycle(this.modelProtoHook);
22
- this.app.eggObjectFactory.registerEggObjectCreateMethod(SingletonModelProto, SingletonModelObject.createObject);
23
- this.app.loadUnitLifecycleUtil.registerLifecycle(this.ormLoadUnitHook);
24
- }
25
- configDidLoad() {
26
- const config = this.app.config.orm;
27
- if (config.datasources) {
28
- for (const datasource of config.datasources) {
29
- this.dataSourceManager.addConfig(datasource);
30
- }
31
- }
32
- else {
33
- this.dataSourceManager.addDefaultConfig(config);
34
- }
35
- }
36
- async didLoad() {
37
- await this.app.moduleHandler.ready();
38
- await this.leoricRegister.register();
39
- }
40
- async beforeClose() {
41
- this.app.eggPrototypeLifecycleUtil.deleteLifecycle(this.modelProtoHook);
42
- }
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxtQkFBbUIsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFjO0lBUWpDLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JILElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyw2QkFBNkIsQ0FBQyxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUNuQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0YifQ==
package/index.d.ts DELETED
@@ -1,21 +0,0 @@
1
- import '@eggjs/tegg-plugin';
2
- import { AttributeOptions } from '@eggjs/tegg-orm-decorator';
3
- import { LeoricRegister } from './lib/LeoricRegister.js';
4
- import { Orm } from './lib/SingletonORM.js';
5
- import type { OrmConfig } from './lib/DataSourceManager.js';
6
- import type { DataType } from './lib/types.js';
7
- export { Orm, LeoricRegister };
8
- declare module '@eggjs/tegg-orm-decorator' {
9
- function Attribute(dataType: DataType, options?: AttributeOptions): (target: any, propertyKey: PropertyKey) => void;
10
- }
11
- declare module '@eggjs/core' {
12
- interface EggAppConfig {
13
- orm: OrmConfig & {
14
- datasources?: OrmConfig[];
15
- };
16
- }
17
- interface EggCore {
18
- leoricRegister: LeoricRegister;
19
- orm: Orm;
20
- }
21
- }
package/index.js DELETED
@@ -1,5 +0,0 @@
1
- import '@eggjs/tegg-plugin';
2
- import { LeoricRegister } from './lib/LeoricRegister.js';
3
- import { Orm } from './lib/SingletonORM.js';
4
- export { Orm, LeoricRegister };
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLG9CQUFvQixDQUFDO0FBRzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsQ0FBQyJ9
@@ -1,20 +0,0 @@
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,21 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJEYXRhU291cmNlTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QkEsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QjtRQUNFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWlCO1FBQ2hDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBaUI7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRiJ9
@@ -1,16 +0,0 @@
1
- import { Base } from 'sdk-base';
2
- import { ModelMetadata } from '@eggjs/tegg-orm-decorator';
3
- import { ModelProtoManager } from './ModelProtoManager.js';
4
- import { DataSourceManager, OrmConfig } from './DataSourceManager.js';
5
- import type { RealmType } from './types.js';
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 | undefined;
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,80 +0,0 @@
1
- import { Base } from 'sdk-base';
2
- import Realm from 'leoric';
3
- import { ModelMetadataUtil } from '@eggjs/tegg-orm-decorator';
4
- export class LeoricRegister extends Base {
5
- constructor(modelProtoManager, dataSourceManager) {
6
- super();
7
- this.modelProtoManager = modelProtoManager;
8
- this.dataSourceManager = dataSourceManager;
9
- this.realmMap = new Map();
10
- }
11
- getConfig(datasource) {
12
- let config;
13
- if (!datasource) {
14
- config = this.dataSourceManager.getDefaultConfig();
15
- }
16
- else {
17
- config = this.dataSourceManager.getConfig(datasource);
18
- }
19
- return config;
20
- }
21
- getRealm(config) {
22
- if (!config?.database) {
23
- return undefined;
24
- }
25
- const realm = this.realmMap.get(config.database);
26
- return realm;
27
- }
28
- getOrCreateRealm(datasource) {
29
- const config = this.getConfig(datasource);
30
- let realm;
31
- if (config) {
32
- realm = this.getRealm(config);
33
- if (realm) {
34
- return realm;
35
- }
36
- }
37
- realm = new Realm({ ...config });
38
- this.realmMap.set(config.database, realm);
39
- return realm;
40
- }
41
- generateLeoricAttributes(metadata) {
42
- const attributes = {};
43
- for (const attribute of metadata.attributes) {
44
- attributes[attribute.propertyName] = {
45
- columnName: attribute.attributeName,
46
- type: attribute.dataType,
47
- allowNull: attribute.allowNull,
48
- primaryKey: attribute.primary,
49
- unique: attribute.unique,
50
- autoIncrement: attribute.autoIncrement,
51
- };
52
- }
53
- return attributes;
54
- }
55
- async register() {
56
- for (const { proto, clazz } of this.modelProtoManager.getProtos()) {
57
- const metadata = ModelMetadataUtil.getModelMetadata(clazz);
58
- if (!metadata)
59
- throw new Error(`not found metadata for model ${proto.id}`);
60
- const realm = this.getOrCreateRealm(metadata.dataSource);
61
- realm.models[clazz.name] = clazz;
62
- realm[clazz.name] = clazz;
63
- const attributes = this.generateLeoricAttributes(metadata);
64
- const hooks = {};
65
- for (const hookName of Realm.hookNames) {
66
- if (clazz[hookName]) {
67
- hooks[hookName] = clazz[hookName];
68
- }
69
- }
70
- clazz.init(attributes, {
71
- tableName: metadata.tableName,
72
- hooks,
73
- }, {});
74
- }
75
- await Promise.all(Array.from(this.realmMap.values())
76
- .map(realm => realm.connect()));
77
- this.ready(true);
78
- }
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVvcmljUmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMZW9yaWNSZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sS0FBSyxNQUFNLFFBQVEsQ0FBQztBQUMzQixPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFNN0UsTUFBTSxPQUFPLGNBQWUsU0FBUSxJQUFJO0lBS3RDLFlBQVksaUJBQW9DLEVBQUUsaUJBQW9DO1FBQ3BGLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxVQUFtQjtRQUMzQixJQUFJLE1BQTZCLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQTZCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDdEIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7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
@@ -1,8 +0,0 @@
1
- import { LifecycleHook } from '@eggjs/tegg';
2
- import { EggPrototype, EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
3
- import { ModelProtoManager } from './ModelProtoManager.js';
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>;
8
- }
@@ -1,16 +0,0 @@
1
- import { IS_MODEL, ModelMetaBuilder, ModelMetadataUtil } from '@eggjs/tegg-orm-decorator';
2
- export class ModelProtoHook {
3
- constructor(modelProtoManager) {
4
- this.modelProtoManager = modelProtoManager;
5
- }
6
- async postCreate(ctx, obj) {
7
- if (!obj.getMetaData(IS_MODEL)) {
8
- return;
9
- }
10
- const builder = new ModelMetaBuilder(ctx.clazz);
11
- const metadata = builder.build();
12
- ModelMetadataUtil.setModelMetadata(ctx.clazz, metadata);
13
- this.modelProtoManager.addProto(ctx.clazz, obj);
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxQcm90b0hvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJNb2RlbFByb3RvSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUYsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBWSxpQkFBb0M7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQWlDLEVBQUUsR0FBaUI7UUFDbkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0YifQ==
@@ -1,11 +0,0 @@
1
- import { EggPrototype } from '@eggjs/tegg-metadata';
2
- import { 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,12 +0,0 @@
1
- export class ModelProtoManager {
2
- constructor() {
3
- this.protos = [];
4
- }
5
- addProto(clazz, proto) {
6
- this.protos.push({ proto, clazz });
7
- }
8
- getProtos() {
9
- return this.protos.slice();
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxQcm90b01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJNb2RlbFByb3RvTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBQ21CLFdBQU0sR0FBMEIsRUFBRSxDQUFDO0lBU3RELENBQUM7SUFQQyxRQUFRLENBQUMsS0FBd0IsRUFBRSxLQUFtQjtRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRiJ9
@@ -1,5 +0,0 @@
1
- import { LifecycleHook } from '@eggjs/tegg';
2
- import { LoadUnit, LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
3
- export declare class ORMLoadUnitHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
4
- postCreate(_ctx: LoadUnitLifecycleContext, loadUnit: LoadUnit): Promise<void>;
5
- }
@@ -1,18 +0,0 @@
1
- import { EggLoadUnitType, EggPrototypeCreatorFactory, EggPrototypeFactory, } from '@eggjs/tegg-metadata';
2
- import { Orm } from './SingletonORM.js';
3
- const REGISTER_CLAZZ = [
4
- Orm,
5
- ];
6
- export class ORMLoadUnitHook {
7
- async postCreate(_ctx, loadUnit) {
8
- if (loadUnit.type === EggLoadUnitType.APP) {
9
- for (const clazz of REGISTER_CLAZZ) {
10
- const protos = await EggPrototypeCreatorFactory.createProto(clazz, loadUnit);
11
- for (const proto of protos) {
12
- EggPrototypeFactory.instance.registerPrototype(proto, loadUnit);
13
- }
14
- }
15
- }
16
- }
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT1JNTG9hZFVuaXRIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiT1JNTG9hZFVuaXRIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLG1CQUFtQixHQUdwQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4QyxNQUFNLGNBQWMsR0FBRztJQUNyQixHQUFHO0NBQ0osQ0FBQztBQUVGLE1BQU0sT0FBTyxlQUFlO0lBQzFCLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBOEIsRUFBRSxRQUFrQjtRQUNqRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzFDLEtBQUssTUFBTSxLQUFLLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sTUFBTSxHQUFHLE1BQU0sMEJBQTBCLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDN0UsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDM0IsbUJBQW1CLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDbEUsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -1,19 +0,0 @@
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.js';
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>;
19
- }
@@ -1,46 +0,0 @@
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
- export class SingletonModelObject {
5
- constructor(name, proto) {
6
- this.status = EggObjectStatus.PENDING;
7
- this.name = name;
8
- this.proto = proto;
9
- this.id = IdenticalUtil.createObjectId(this.proto.id);
10
- }
11
- async init() {
12
- const clazz = class ContextModelClass extends this.proto.model {
13
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
14
- // @ts-ignore
15
- static get name() {
16
- return super.name;
17
- }
18
- static get ctx() {
19
- const ctx = ContextHandler.getContext();
20
- if (ctx) {
21
- return ctx.get(EGG_CONTEXT);
22
- }
23
- }
24
- get ctx() {
25
- return ContextModelClass.ctx;
26
- }
27
- };
28
- this._obj = clazz;
29
- this.status = EggObjectStatus.READY;
30
- }
31
- injectProperty() {
32
- throw new Error('never call ModelObject#injectProperty');
33
- }
34
- get isReady() {
35
- return this.status === EggObjectStatus.READY;
36
- }
37
- get obj() {
38
- return this._obj;
39
- }
40
- static async createObject(name, proto) {
41
- const modelObject = new SingletonModelObject(name, proto);
42
- await modelObject.init();
43
- return modelObject;
44
- }
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxPYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTaW5nbGV0b25Nb2RlbE9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUVkLGVBQWUsR0FDaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUc3QixPQUFPLEVBQU0sYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3ZELE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFBWSxJQUFtQixFQUFFLEtBQTBCO1FBTm5ELFdBQU0sR0FBb0IsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQU94RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLEtBQUssR0FBRyxNQUFNLGlCQUFrQixTQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUM1RCw2REFBNkQ7WUFDN0QsYUFBYTtZQUNiLE1BQU0sS0FBSyxJQUFJO2dCQUNiLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztZQUNwQixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUNSLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLEdBQUc7Z0JBQ0wsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7WUFDL0IsQ0FBQztTQUVGLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQW1CLEVBQUUsS0FBbUI7UUFDaEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsS0FBNEIsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FDRiJ9
@@ -1,23 +0,0 @@
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';
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: never[];
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
- }
@@ -1,40 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uTW9kZWxQcm90by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlNpbmdsZXRvbk1vZGVsUHJvdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFdBQVcsRUFFWCxjQUFjLEVBRWQsYUFBYSxFQUNiLFlBQVksR0FFYixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQU0sYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxtQkFBbUI7SUFZdEMsWUFBWSxRQUFrQixFQUFFLEtBQWtCO1FBVHpDLGdCQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUVqQyxhQUFRLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQU8xQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxVQUFVLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQXdCO1FBQ3JDLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBd0I7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RixPQUFPLGNBQWMsRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBMkI7UUFDMUMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQTZCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFpQztRQUNsRCxPQUFPLElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBb0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiJ9
@@ -1,6 +0,0 @@
1
- import type { RealmType } from './types.js';
2
- export declare class Orm {
3
- private leoricRegister;
4
- get client(): RealmType;
5
- getClient(datasource: string): RealmType;
6
- }
@@ -1,36 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { AccessLevel, Inject, SingletonProto, } from '@eggjs/tegg';
11
- import { LeoricRegister } from './LeoricRegister.js';
12
- let Orm = class Orm {
13
- // default dataSource
14
- get client() {
15
- const defaultConfig = this.leoricRegister.getConfig();
16
- return this.leoricRegister.getRealm(defaultConfig);
17
- }
18
- getClient(datasource) {
19
- const config = this.leoricRegister.getConfig(datasource);
20
- if (!config) {
21
- throw new Error(`not found ${datasource} datasource`);
22
- }
23
- return this.leoricRegister.getOrCreateRealm(config.database);
24
- }
25
- };
26
- __decorate([
27
- Inject(),
28
- __metadata("design:type", LeoricRegister)
29
- ], Orm.prototype, "leoricRegister", void 0);
30
- Orm = __decorate([
31
- SingletonProto({
32
- accessLevel: AccessLevel.PUBLIC,
33
- })
34
- ], Orm);
35
- export { Orm };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uT1JNLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU2luZ2xldG9uT1JNLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGNBQWMsR0FDZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFNOUMsSUFBTSxHQUFHLEdBQVQsTUFBTSxHQUFHO0lBSWQscUJBQXFCO0lBQ3JCLElBQUksTUFBTTtRQUNSLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsU0FBUyxDQUFDLFVBQWtCO1FBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxVQUFVLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBRSxDQUFDO0lBQ2hFLENBQUM7Q0FFRixDQUFBO0FBaEJTO0lBRFAsTUFBTSxFQUFFOzhCQUNlLGNBQWM7MkNBQUM7QUFGNUIsR0FBRztJQUhmLGNBQWMsQ0FBQztRQUNkLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTTtLQUNoQyxDQUFDO0dBQ1csR0FBRyxDQWtCZiJ9