@eggjs/tegg-orm-plugin 3.2.3 → 3.3.0

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/app.d.ts CHANGED
@@ -4,6 +4,7 @@ export default class OrmAppBootHook {
4
4
  private readonly leoricRegister;
5
5
  private readonly modelProtoManager;
6
6
  private readonly modelProtoHook;
7
+ private readonly ormLoadUnitHook;
7
8
  constructor(app: any);
8
9
  configWillLoad(): void;
9
10
  configDidLoad(): void;
package/app.js CHANGED
@@ -10,6 +10,7 @@ const ModelProtoHook_1 = require("./lib/ModelProtoHook");
10
10
  const tegg_orm_decorator_1 = require("@eggjs/tegg-orm-decorator");
11
11
  const ContextModelProto_1 = __importDefault(require("./lib/ContextModelProto"));
12
12
  const ContextModeObject_1 = require("./lib/ContextModeObject");
13
+ const ORMLoadUnitHook_1 = require("./lib/ORMLoadUnitHook");
13
14
  class OrmAppBootHook {
14
15
  constructor(app) {
15
16
  this.app = app;
@@ -19,10 +20,12 @@ class OrmAppBootHook {
19
20
  this.modelProtoHook = new ModelProtoHook_1.ModelProtoHook(this.modelProtoManager);
20
21
  this.app.eggPrototypeCreatorFactory.registerPrototypeCreator(tegg_orm_decorator_1.MODEL_PROTO_IMPL_TYPE, ContextModelProto_1.default.createProto);
21
22
  this.app.leoricRegister = this.leoricRegister;
23
+ this.ormLoadUnitHook = new ORMLoadUnitHook_1.ORMLoadUnitHook();
22
24
  }
23
25
  configWillLoad() {
24
26
  this.app.eggPrototypeLifecycleUtil.registerLifecycle(this.modelProtoHook);
25
27
  this.app.eggObjectFactory.registerEggObjectCreateMethod(ContextModelProto_1.default, ContextModeObject_1.ContextModeObject.createObject);
28
+ this.app.loadUnitLifecycleUtil.registerLifecycle(this.ormLoadUnitHook);
26
29
  }
27
30
  configDidLoad() {
28
31
  const config = this.app.config.orm;
@@ -44,4 +47,4 @@ class OrmAppBootHook {
44
47
  }
45
48
  }
46
49
  exports.default = OrmAppBootHook;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTREO0FBQzVELHlEQUFzRDtBQUN0RCwrREFBNEQ7QUFDNUQseURBQXNEO0FBQ3RELGtFQUFrRTtBQUNsRSxnRkFBd0Q7QUFDeEQsK0RBQTREO0FBRTVELE1BQXFCLGNBQWM7SUFPakMsWUFBWSxHQUFHO1FBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxxQ0FBaUIsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLHFDQUFpQixFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLCtCQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSwrQkFBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsd0JBQXdCLENBQUMsMENBQXFCLEVBQUUsMkJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsMkJBQWlCLEVBQUUscUNBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDbkMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3RCLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM5QztTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBekNELGlDQXlDQyJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTREO0FBQzVELHlEQUFzRDtBQUN0RCwrREFBNEQ7QUFDNUQseURBQXNEO0FBQ3RELGtFQUFrRTtBQUNsRSxnRkFBd0Q7QUFDeEQsK0RBQTREO0FBQzVELDJEQUF3RDtBQUV4RCxNQUFxQixjQUFjO0lBUWpDLFlBQVksR0FBRztRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUkscUNBQWlCLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxxQ0FBaUIsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSwrQkFBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksK0JBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLHdCQUF3QixDQUFDLDBDQUFxQixFQUFFLDJCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGlDQUFlLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsMkJBQWlCLEVBQUUscUNBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDbkMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3RCLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM5QztTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBNUNELGlDQTRDQyJ9
@@ -1,12 +1,15 @@
1
1
  import Base from 'sdk-base';
2
2
  import { ModelProtoManager } from './ModelProtoManager';
3
- import { DataSourceManager } from './DataSourceManager';
3
+ import { DataSourceManager, OrmConfig } from './DataSourceManager';
4
+ import Realm from 'leoric';
4
5
  import { ModelMetadata } from '@eggjs/tegg-orm-decorator';
5
6
  export declare class LeoricRegister extends Base {
6
7
  private readonly modelProtoManager;
7
8
  private readonly dataSourceManager;
8
9
  readonly realmMap: Map<string, any>;
9
10
  constructor(modelProtoManager: ModelProtoManager, dataSourceManager: DataSourceManager);
11
+ getConfig(datasource?: string): OrmConfig | undefined;
12
+ getRealm(config: OrmConfig | undefined): Realm | undefined;
10
13
  getOrCreateRealm(datasource: string | undefined): any;
11
14
  generateLeoricAttributes(metadata: ModelMetadata): {};
12
15
  register(): Promise<void>;
@@ -15,7 +15,7 @@ class LeoricRegister extends sdk_base_1.default {
15
15
  this.dataSourceManager = dataSourceManager;
16
16
  this.realmMap = new Map();
17
17
  }
18
- getOrCreateRealm(datasource) {
18
+ getConfig(datasource) {
19
19
  let config;
20
20
  if (!datasource) {
21
21
  config = this.dataSourceManager.getDefaultConfig();
@@ -23,12 +23,23 @@ class LeoricRegister extends sdk_base_1.default {
23
23
  else {
24
24
  config = this.dataSourceManager.getConfig(datasource);
25
25
  }
26
- if (!config) {
27
- throw new Error(`not found datasource for ${datasource}`);
26
+ return config;
27
+ }
28
+ getRealm(config) {
29
+ if (!(config === null || config === void 0 ? void 0 : config.database)) {
30
+ return undefined;
28
31
  }
29
- let realm = this.realmMap.get(config.database);
30
- if (realm) {
31
- return realm;
32
+ const realm = this.realmMap.get(config.database);
33
+ return realm;
34
+ }
35
+ getOrCreateRealm(datasource) {
36
+ const config = this.getConfig(datasource);
37
+ let realm;
38
+ if (config) {
39
+ realm = this.getRealm(config);
40
+ if (realm) {
41
+ return realm;
42
+ }
32
43
  }
33
44
  realm = new leoric_1.default({ ...config });
34
45
  this.realmMap.set(config.database, realm);
@@ -74,4 +85,4 @@ class LeoricRegister extends sdk_base_1.default {
74
85
  }
75
86
  }
76
87
  exports.LeoricRegister = LeoricRegister;
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVvcmljUmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMZW9yaWNSZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBNEI7QUFHNUIsb0RBQTJCO0FBQzNCLHdEQUFtRDtBQUNuRCxrRUFBNkU7QUFFN0UsTUFBYSxjQUFlLFNBQVEsa0JBQUk7SUFLdEMsWUFBWSxpQkFBb0MsRUFBRSxpQkFBb0M7UUFDcEYsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBOEI7UUFDN0MsSUFBSSxNQUE2QixDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDcEQ7YUFBTTtZQUNMLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDM0Q7UUFDRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsS0FBSyxHQUFHLElBQUssZ0JBQWEsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHdCQUF3QixDQUFDLFFBQXVCO1FBQzlDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDM0MsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRztnQkFDbkMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxhQUFhO2dCQUNuQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFFBQVE7Z0JBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUztnQkFDOUIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxPQUFPO2dCQUM3QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07Z0JBQ3hCLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTthQUN2QyxDQUFDO1NBQ0g7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixLQUFLLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2pFLE1BQU0sUUFBUSxHQUFHLHNDQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDakIsS0FBSyxNQUFNLFFBQVEsSUFBSSx1QkFBUyxFQUFFO2dCQUNoQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDbkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7YUFDRjtZQUVBLEtBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUM5QixTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7Z0JBQzdCLEtBQUs7YUFDTixFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7UUFDRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2pELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUF0RUQsd0NBc0VDIn0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVvcmljUmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMZW9yaWNSZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBNEI7QUFHNUIsb0RBQTJCO0FBQzNCLHdEQUFtRDtBQUNuRCxrRUFBNkU7QUFFN0UsTUFBYSxjQUFlLFNBQVEsa0JBQUk7SUFLdEMsWUFBWSxpQkFBb0MsRUFBRSxpQkFBb0M7UUFDcEYsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLFVBQW1CO1FBQzNCLElBQUksTUFBNkIsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3BEO2FBQU07WUFDTCxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2RDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBNkI7UUFDcEMsSUFBSSxDQUFDLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQSxFQUFFO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQThCO1FBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMs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
@@ -0,0 +1,5 @@
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
+ }
@@ -0,0 +1,20 @@
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 proto = await tegg_metadata_1.EggPrototypeCreatorFactory.createProto(clazz, loadUnit);
14
+ tegg_metadata_1.EggPrototypeFactory.instance.registerPrototype(proto, loadUnit);
15
+ }
16
+ }
17
+ }
18
+ }
19
+ exports.ORMLoadUnitHook = ORMLoadUnitHook;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT1JNTG9hZFVuaXRIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiT1JNTG9hZFVuaXRIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHdEQU04QjtBQUM5QixpREFBcUM7QUFFckMsTUFBTSxjQUFjLEdBQUc7SUFDckIsa0JBQUc7Q0FDSixDQUFDO0FBRUYsTUFBYSxlQUFlO0lBQzFCLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBOEIsRUFBRSxRQUFrQjtRQUNqRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssK0JBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDekMsS0FBSyxNQUFNLEtBQUssSUFBSSxjQUFjLEVBQUU7Z0JBQ2xDLE1BQU0sS0FBSyxHQUFHLE1BQU0sMENBQTBCLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDNUUsbUNBQW1CLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNqRTtTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBVEQsMENBU0MifQ==
@@ -0,0 +1,6 @@
1
+ import Realm from 'leoric';
2
+ export declare class Orm {
3
+ private leoricRegister;
4
+ get client(): Realm;
5
+ getClient(datasource: string): Realm;
6
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Orm = void 0;
13
+ const tegg_1 = require("@eggjs/tegg");
14
+ const LeoricRegister_1 = require("./LeoricRegister");
15
+ let Orm = class Orm {
16
+ // default dataSource
17
+ get client() {
18
+ const defaultConfig = this.leoricRegister.getConfig();
19
+ return this.leoricRegister.getRealm(defaultConfig);
20
+ }
21
+ getClient(datasource) {
22
+ const config = this.leoricRegister.getConfig(datasource);
23
+ if (!config) {
24
+ throw new Error(`not found ${datasource} datasource`);
25
+ }
26
+ return this.leoricRegister.getOrCreateRealm(config.database);
27
+ }
28
+ };
29
+ __decorate([
30
+ (0, tegg_1.Inject)(),
31
+ __metadata("design:type", LeoricRegister_1.LeoricRegister)
32
+ ], Orm.prototype, "leoricRegister", void 0);
33
+ Orm = __decorate([
34
+ (0, tegg_1.SingletonProto)({
35
+ accessLevel: tegg_1.AccessLevel.PUBLIC,
36
+ })
37
+ ], Orm);
38
+ exports.Orm = Orm;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uT1JNLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU2luZ2xldG9uT1JNLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNDQUlxQjtBQUNyQixxREFBa0Q7QUFNM0MsSUFBTSxHQUFHLEdBQVQsTUFBTSxHQUFHO0lBSWQscUJBQXFCO0lBQ3JCLElBQUksTUFBTTtRQUNSLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsU0FBUyxDQUFDLFVBQWtCO1FBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsVUFBVSxhQUFhLENBQUMsQ0FBQztTQUN2RDtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFFLENBQUM7SUFDaEUsQ0FBQztDQUVGLENBQUE7QUFqQkM7SUFBQyxJQUFBLGFBQU0sR0FBRTs4QkFDZSwrQkFBYzsyQ0FBQztBQUY1QixHQUFHO0lBSGYsSUFBQSxxQkFBYyxFQUFDO1FBQ2QsV0FBVyxFQUFFLGtCQUFXLENBQUMsTUFBTTtLQUNoQyxDQUFDO0dBQ1csR0FBRyxDQWtCZjtBQWxCWSxrQkFBRyJ9
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "tegg"
7
7
  ]
8
8
  },
9
- "version": "3.2.3",
9
+ "version": "3.3.0",
10
10
  "description": "orm decorator for egg",
11
11
  "keywords": [
12
12
  "egg",
@@ -49,23 +49,23 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@eggjs/egg-module-common": "^3.2.3",
52
- "@eggjs/tegg": "^3.2.3",
52
+ "@eggjs/tegg": "^3.3.0",
53
53
  "@eggjs/tegg-common-util": "^3.2.3",
54
- "@eggjs/tegg-lifecycle": "^3.2.3",
55
- "@eggjs/tegg-loader": "^3.2.3",
56
- "@eggjs/tegg-metadata": "^3.2.3",
57
- "@eggjs/tegg-orm-decorator": "^3.2.3",
58
- "@eggjs/tegg-runtime": "^3.2.3",
54
+ "@eggjs/tegg-lifecycle": "^3.2.4",
55
+ "@eggjs/tegg-loader": "^3.2.4",
56
+ "@eggjs/tegg-metadata": "^3.2.4",
57
+ "@eggjs/tegg-orm-decorator": "^3.3.0",
58
+ "@eggjs/tegg-runtime": "^3.2.4",
59
59
  "@types/koa-router": "^7.0.40",
60
60
  "koa-compose": "^3.2.1",
61
61
  "leoric": "^2.6.1",
62
62
  "sdk-base": "^4.2.0"
63
63
  },
64
64
  "devDependencies": {
65
- "@eggjs/module-test-util": "^3.2.3",
65
+ "@eggjs/module-test-util": "^3.2.4",
66
66
  "@eggjs/router": "^2.0.0",
67
67
  "@eggjs/tegg-config": "^3.2.3",
68
- "@eggjs/tegg-plugin": "^3.2.3",
68
+ "@eggjs/tegg-plugin": "^3.3.0",
69
69
  "@types/mocha": "^10.0.1",
70
70
  "@types/node": "^18.11.18",
71
71
  "cross-env": "^7.0.3",
@@ -81,5 +81,5 @@
81
81
  "publishConfig": {
82
82
  "access": "public"
83
83
  },
84
- "gitHead": "0b7337df36d745aaa6f874de0107812184af0183"
84
+ "gitHead": "07dccbd7c656c32811bff4f0e7d119a0e1d1a5c4"
85
85
  }
@@ -4,6 +4,7 @@ import '@eggjs/tegg-plugin';
4
4
  import { DataType } from 'leoric';
5
5
  import { AttributeOptions } from '@eggjs/tegg-orm-decorator';
6
6
  import { LeoricRegister } from '../lib/LeoricRegister';
7
+ import { Orm } from '../lib/SingletonORM';
7
8
 
8
9
  declare module '@eggjs/tegg-orm-decorator' {
9
10
  export declare function Attribute(dataType: DataType, options?: AttributeOptions): (target: any, propertyKey: PropertyKey) => void;
@@ -12,6 +13,7 @@ declare module '@eggjs/tegg-orm-decorator' {
12
13
  declare module 'egg' {
13
14
  export interface TeggOrmApplication {
14
15
  leoricRegister: LeoricRegister;
16
+ orm: Orm;
15
17
  }
16
18
 
17
19
  interface Application extends TeggOrmApplication {