@diyaner/egg-typeorm 2.1.0 → 2.2.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.
@@ -11,8 +11,8 @@ export declare class EggDataSource extends DataSource {
11
11
  *
12
12
  * - 注意:不能在每个请求之中重复添加相同功能的类,否则可能造成OOM;应该在app全局上统一获取单例类
13
13
  */
14
- addEntity<T extends Function>(clz: T): Promise<this>;
15
- /** 一个实体类来构建元数据 */
14
+ addEntity<T extends Function>(classes: T): Promise<this>;
15
+ /** 一个实体类来构建元数据,这个只适合无关联关系的单个类,表 */
16
16
  private buildMetaData2;
17
17
  /** 移除一个ds上的某个类实体 */
18
18
  removeEntity<T extends Function>(clz: T): void;
@@ -20,16 +20,29 @@ class EggDataSource extends typeorm_1.DataSource {
20
20
  *
21
21
  * - 注意:不能在每个请求之中重复添加相同功能的类,否则可能造成OOM;应该在app全局上统一获取单例类
22
22
  */
23
- async addEntity(clz) {
24
- const entityCacheClz = this.customAddEntityCacheMap.get(clz);
23
+ async addEntity(classes) {
24
+ const entityCacheClz = this.customAddEntityCacheMap.get(classes);
25
25
  if (entityCacheClz) {
26
26
  return this;
27
27
  }
28
- await this.buildMetaData2(clz);
29
- this.customAddEntityCacheMap.set(clz, true);
28
+ // 因typeorm底层实现需要所有entities一起解析实现关联关系。因此只能全部entities重新build
29
+ let existedEntities = this.options.entities;
30
+ if (!existedEntities) {
31
+ existedEntities = [];
32
+ }
33
+ if (Array.isArray(existedEntities)) {
34
+ existedEntities.push(classes);
35
+ }
36
+ else {
37
+ existedEntities[classes.name] = classes;
38
+ }
39
+ await this.buildMetadatas(); // 与连接初始化时一致,根据所有实体类构建元数据。添加单个实体这里调用,将会很费性能,且可能由于关联关系问题报错。
40
+ // 不全部重新build,只单个类,但又无法实现关联关系
41
+ // await this.buildMetaData2(classes);
42
+ this.customAddEntityCacheMap.set(classes, true);
30
43
  return this;
31
44
  }
32
- /** 一个实体类来构建元数据 */
45
+ /** 一个实体类来构建元数据,这个只适合无关联关系的单个类,表 */
33
46
  async buildMetaData2(entity) {
34
47
  const connectionMetadataBuilder = new ConnectionMetadataBuilder_1.ConnectionMetadataBuilder(this);
35
48
  const entityMetadataValidator = new EntityMetadataValidator_1.EntityMetadataValidator();
@@ -56,7 +69,7 @@ class EggDataSource extends typeorm_1.DataSource {
56
69
  // @ts-ignore
57
70
  metadata.target.dataSource = null;
58
71
  }
59
- // @ts-ignore
72
+ // @ts-ignore entityMetadatas 是只读属性
60
73
  this.entityMetadatas = this.entityMetadatas.filter((item) => item.target !== clz);
61
74
  this.entityMetadatasMap.delete(clz);
62
75
  }
@@ -67,4 +80,4 @@ class EggDataSource extends typeorm_1.DataSource {
67
80
  }
68
81
  }
69
82
  exports.EggDataSource = EggDataSource;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ0RhdGFTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQW1FO0FBQ25FLDRGQUF5RjtBQUN6Riw4RkFBMkY7QUFDM0YsMERBQTBEO0FBRTFEOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsb0JBQVU7SUFBN0M7O1FBQ1MsNEJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUE2RDdELENBQUM7SUEzREE7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBcUIsR0FBTTtRQUN6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdELElBQUksY0FBYyxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELGtCQUFrQjtJQUNWLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBZ0I7UUFDNUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLHFEQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxpREFBdUIsRUFBRSxDQUFDO1FBRTlELHlCQUF5QjtRQUN6QixNQUFNLGVBQWUsR0FBRyxNQUFNLHlCQUF5QixDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2RixLQUFLLE1BQU0sUUFBUSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsaUdBQWlHO1FBQ2pHLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLDBDQUEwQztRQUMxQyxLQUFLLElBQUksY0FBYyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzVDLElBQUkseUJBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDcEUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLFlBQVksQ0FBcUIsR0FBTTtRQUN0QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxRQUFRLElBQUkseUJBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxRSxhQUFhO1lBQ2IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUM7UUFDRCxhQUFhO1FBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBVSxLQUFhLEVBQUUsVUFBK0IsRUFBRSxXQUF5QjtRQUM5RixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsT0FBTyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBQ0Q7QUE5REQsc0NBOERDIn0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ0RhdGFTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQW1FO0FBQ25FLDRGQUF5RjtBQUN6Riw4RkFBMkY7QUFDM0YsMERBQTBEO0FBRTFEOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsb0JBQVU7SUFBN0M7O1FBQ1MsNEJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUE2RTdELENBQUM7SUEzRUE7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBcUIsT0FBVTtRQUM3QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLElBQUksY0FBYyxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDO1FBRUQsMkRBQTJEO1FBQzNELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBRTVDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0QixlQUFlLEdBQUcsRUFBRSxDQUFBO1FBQ3JCLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ1AsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsMERBQTBEO1FBRXZGLDZCQUE2QjtRQUM3QixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsbUNBQW1DO0lBQzNCLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBZ0I7UUFDNUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLHFEQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxpREFBdUIsRUFBRSxDQUFDO1FBRTlELHlCQUF5QjtRQUN6QixNQUFNLGVBQWUsR0FBRyxNQUFNLHlCQUF5QixDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2RixLQUFLLE1BQU0sUUFBUSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsaUdBQWlHO1FBQ2pHLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLDBDQUEwQztRQUMxQyxLQUFLLElBQUksY0FBYyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzVDLElBQUkseUJBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDcEUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLFlBQVksQ0FBcUIsR0FBTTtRQUN0QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxRQUFRLElBQUkseUJBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxRSxhQUFhO1lBQ2IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUM7UUFDRCxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBVSxLQUFhLEVBQUUsVUFBK0IsRUFBRSxXQUF5QjtRQUM5RixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsT0FBTyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBQ0Q7QUE5RUQsc0NBOEVDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diyaner/egg-typeorm",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "egg plugin for nodejs orm freamwork typeorm.",
5
5
  "eggPlugin": {
6
6
  "name": "typeorm"
package/typeorm.js CHANGED
@@ -5,4 +5,4 @@ const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("typeorm"), exports);
6
6
  var EggDataSource_1 = require("./lib/EggDataSource");
7
7
  Object.defineProperty(exports, "EggDataSource", { enumerable: true, get: function () { return EggDataSource_1.EggDataSource; } });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZW9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGVvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGtEQUF1QjtBQUN2QixxREFBbUQ7QUFBMUMsOEdBQUEsYUFBYSxPQUFBIn0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZW9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGVvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLGtEQUF1QjtBQUN2QixxREFBbUQ7QUFBMUMsOEdBQUEsYUFBYSxPQUFBIn0=