@diyaner/egg-typeorm 2.3.0 → 2.4.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/index.d.ts +4 -0
- package/lib/EggDataSource.d.ts +19 -8
- package/lib/EggDataSource.js +91 -32
- package/lib/Logger.js +3 -3
- package/lib/connection.js +4 -2
- package/package.json +4 -4
- package/typeorm.d.ts +2 -0
- package/typeorm.js +4 -2
package/index.d.ts
CHANGED
|
@@ -54,6 +54,8 @@ declare module "egg" {
|
|
|
54
54
|
};
|
|
55
55
|
/** 挂载app上,可动态创建typeORM实例 */
|
|
56
56
|
createTypeORMDataSources: typeof createTypeORMDataSources;
|
|
57
|
+
/** 外部自定义日志类 */
|
|
58
|
+
Logger?: typeorm.Logger;
|
|
57
59
|
};
|
|
58
60
|
}
|
|
59
61
|
|
|
@@ -77,6 +79,8 @@ declare module "egg" {
|
|
|
77
79
|
};
|
|
78
80
|
/** 挂载app上,可动态创建typeORM实例 */
|
|
79
81
|
createTypeORMDataSources: typeof createTypeORMDataSources;
|
|
82
|
+
/** 外部自定义日志类 */
|
|
83
|
+
Logger?: typeorm.Logger;
|
|
80
84
|
};
|
|
81
85
|
}
|
|
82
86
|
}
|
package/lib/EggDataSource.d.ts
CHANGED
|
@@ -4,33 +4,44 @@ import { DataSource, QueryRunner } from "typeorm";
|
|
|
4
4
|
*/
|
|
5
5
|
export declare class EggDataSource extends DataSource {
|
|
6
6
|
private eggCustomAddEntityCacheMap;
|
|
7
|
+
/** 手动添加的实体,使用表名map一个class */
|
|
8
|
+
private eggCustomAddEntityTableNameKeyCacheMap;
|
|
7
9
|
/** 分表添加实体缓存map */
|
|
8
10
|
private eggCustomAddSplitEntityCacheMap;
|
|
9
11
|
/**
|
|
10
|
-
* 在一个typeorm连接datasource
|
|
12
|
+
* 在一个typeorm连接datasource实例上动态添加多个实体类
|
|
13
|
+
* - 适用于需要与内部实体关联(但不能实现内部关联这些新增实体,因内部实体已固定)的场景,每次调用将会很费性能(全部实体metadata重新build)
|
|
11
14
|
* - 可以实现动态分表,同一实体类的子类,改表名就能对应多个db表等场景
|
|
12
15
|
* - 注意:不能在每个请求之中重复添加相同功能的类,否则可能造成OOM;应该在app全局上统一获取单例类
|
|
13
16
|
* - 类上可定义属性name2,处理源码被压缩情况下类名丢失问题
|
|
14
17
|
*/
|
|
15
|
-
|
|
18
|
+
addEntities<T extends Function>(...classList: (T | T[])[]): Promise<this>;
|
|
16
19
|
/**
|
|
17
|
-
* 在一个typeorm连接datasource
|
|
20
|
+
* 在一个typeorm连接datasource实例上动态添加多个实体类及其metadata,
|
|
21
|
+
* - 适用于与内部实体类无关联的场景,本次批量添加的实体类之间可以互相关联
|
|
22
|
+
* - 添加前会清除同名表的已存在实体类
|
|
23
|
+
* - 与addEntities方法不同,它不会导致全部metadata重新build,因此性能开销较小
|
|
18
24
|
*
|
|
19
25
|
* - 可以实现动态分表,同一实体类的子类,改表名就能对应多个db表等场景
|
|
20
26
|
*
|
|
21
27
|
* - 注意:不能在每个请求之中重复添加相同功能的类,否则可能造成OOM;应该在app全局上统一获取单例类
|
|
22
28
|
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
29
|
+
addEntitiesAlone<T extends Function>(...classess: T[]): Promise<this>;
|
|
30
|
+
/** 多个实体类来构建元数据,本次批量构建的元数据可以实现相互关联 */
|
|
25
31
|
private buildMetaData2;
|
|
26
32
|
/** 移除一个ds上的某个类实体 */
|
|
27
|
-
removeEntity<T extends Function>(clz: T):
|
|
33
|
+
removeEntity<T extends Function>(clz: T): this;
|
|
34
|
+
/** 通过用户表名或内部生成表名删除一个实体 仅限egg自定义添加的实体 */
|
|
35
|
+
removeEntityByTableName(tableName: string): this;
|
|
28
36
|
/** query方法,支持查询语句转义 :params */
|
|
29
37
|
query2<T = any>(query: string, parameters: Record<string, any>, queryRunner?: QueryRunner): Promise<T>;
|
|
30
38
|
/** 使用一个现有entity进行模型分表
|
|
31
39
|
* - 注意,同一个分表entity不应反复调用,否则产生多个相同class,造成OOM
|
|
32
40
|
* - 原始实体必须已经存在在datasource中,否则会报错
|
|
33
|
-
* - 与原始实体不同的是,它关联的toOne实体身上并未关联本实体(还是关联的原始实体),因此查询时不能使用oneToMany
|
|
41
|
+
* - 与原始实体不同的是,它关联的toOne实体身上并未关联本实体(还是关联的原始实体),因此查询时不能使用oneToMany关系关联本实体的数据。只能以本实体为主查询
|
|
42
|
+
* @param CLZ 原实体类
|
|
43
|
+
* @param tableName 新表名(或后缀)
|
|
44
|
+
* @param isSubfix 是否为后缀
|
|
34
45
|
*/
|
|
35
|
-
|
|
46
|
+
getShardingEntity<T extends Function>(CLZ: T, tableName: string, isSubfix?: boolean): Promise<T>;
|
|
36
47
|
}
|
package/lib/EggDataSource.js
CHANGED
|
@@ -13,27 +13,36 @@ class EggDataSource extends typeorm_1.DataSource {
|
|
|
13
13
|
constructor() {
|
|
14
14
|
super(...arguments);
|
|
15
15
|
this.eggCustomAddEntityCacheMap = new Map();
|
|
16
|
+
/** 手动添加的实体,使用表名map一个class */
|
|
17
|
+
this.eggCustomAddEntityTableNameKeyCacheMap = new Map();
|
|
16
18
|
/** 分表添加实体缓存map */
|
|
17
19
|
this.eggCustomAddSplitEntityCacheMap = new Map();
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
20
|
-
* 在一个typeorm连接datasource
|
|
22
|
+
* 在一个typeorm连接datasource实例上动态添加多个实体类
|
|
23
|
+
* - 适用于需要与内部实体关联(但不能实现内部关联这些新增实体,因内部实体已固定)的场景,每次调用将会很费性能(全部实体metadata重新build)
|
|
21
24
|
* - 可以实现动态分表,同一实体类的子类,改表名就能对应多个db表等场景
|
|
22
25
|
* - 注意:不能在每个请求之中重复添加相同功能的类,否则可能造成OOM;应该在app全局上统一获取单例类
|
|
23
26
|
* - 类上可定义属性name2,处理源码被压缩情况下类名丢失问题
|
|
24
27
|
*/
|
|
25
|
-
async
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
async addEntities(...classList) {
|
|
29
|
+
let classess = classList.reduce((prev, curr) => {
|
|
30
|
+
const a = Array.isArray(curr) ? curr : [curr];
|
|
31
|
+
prev.push(...a);
|
|
32
|
+
return prev;
|
|
33
|
+
}, []);
|
|
34
|
+
classess = classess.filter((item) => !this.eggCustomAddEntityCacheMap.get(item));
|
|
35
|
+
if (classess.length === 0)
|
|
28
36
|
return this;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
for (const classes of classess) {
|
|
38
|
+
// @ts-ignore name2 for 源码压缩场景,可重新定义类名
|
|
39
|
+
if (classes.name2) {
|
|
40
|
+
Object.defineProperty(classes, "name", {
|
|
41
|
+
writable: true,
|
|
42
|
+
});
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
classes.name = classes.name2;
|
|
45
|
+
}
|
|
37
46
|
}
|
|
38
47
|
// 因typeorm底层实现需要所有entities一起解析实现关联关系。因此只能全部entities重新build
|
|
39
48
|
let existedEntities = this.options.entities;
|
|
@@ -41,38 +50,73 @@ class EggDataSource extends typeorm_1.DataSource {
|
|
|
41
50
|
existedEntities = [];
|
|
42
51
|
}
|
|
43
52
|
if (Array.isArray(existedEntities)) {
|
|
44
|
-
existedEntities.push(
|
|
53
|
+
existedEntities.push(...classess);
|
|
45
54
|
}
|
|
46
55
|
else {
|
|
47
|
-
|
|
56
|
+
for (const classes of classess) {
|
|
57
|
+
existedEntities[classes.name] = classes;
|
|
58
|
+
}
|
|
48
59
|
}
|
|
49
|
-
await this.buildMetadatas(); //
|
|
60
|
+
await this.buildMetadatas(); // 与连接初始化时一致,根据所有实体类构建元数据。添加新实体后跟所有老实体一起重新构建metadata,将会很费性能,且可能由于关联关系问题报错。
|
|
50
61
|
// 不全部重新build,只单个类,但又无法实现关联关系
|
|
51
62
|
// await this.buildMetaData2(classes);
|
|
52
|
-
|
|
63
|
+
for (const classes of classess) {
|
|
64
|
+
this.eggCustomAddEntityCacheMap.set(classes, true);
|
|
65
|
+
const metadata = this.entityMetadatasMap.get(classes);
|
|
66
|
+
if (metadata) {
|
|
67
|
+
this.eggCustomAddEntityTableNameKeyCacheMap.set(metadata.givenTableName || metadata.tableName, classes);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
53
70
|
return this;
|
|
54
71
|
}
|
|
55
72
|
/**
|
|
56
|
-
* 在一个typeorm连接datasource
|
|
73
|
+
* 在一个typeorm连接datasource实例上动态添加多个实体类及其metadata,
|
|
74
|
+
* - 适用于与内部实体类无关联的场景,本次批量添加的实体类之间可以互相关联
|
|
75
|
+
* - 添加前会清除同名表的已存在实体类
|
|
76
|
+
* - 与addEntities方法不同,它不会导致全部metadata重新build,因此性能开销较小
|
|
57
77
|
*
|
|
58
78
|
* - 可以实现动态分表,同一实体类的子类,改表名就能对应多个db表等场景
|
|
59
79
|
*
|
|
60
80
|
* - 注意:不能在每个请求之中重复添加相同功能的类,否则可能造成OOM;应该在app全局上统一获取单例类
|
|
61
81
|
*/
|
|
62
|
-
async
|
|
82
|
+
async addEntitiesAlone(...classess) {
|
|
63
83
|
for (const classes of classess) {
|
|
64
|
-
|
|
84
|
+
// @ts-ignore name2 for 源码压缩场景,可重新定义类名
|
|
85
|
+
if (classes.name2) {
|
|
86
|
+
Object.defineProperty(classes, "name", {
|
|
87
|
+
writable: true,
|
|
88
|
+
});
|
|
89
|
+
// @ts-ignore
|
|
90
|
+
classes.name = classes.name2;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const connectionMetadataBuilder = new ConnectionMetadataBuilder_1.ConnectionMetadataBuilder(this);
|
|
94
|
+
const entityMetadataValidator = new EntityMetadataValidator_1.EntityMetadataValidator();
|
|
95
|
+
// build entity metadatas
|
|
96
|
+
const entityMetadatas = await connectionMetadataBuilder.buildEntityMetadatas([...classess]);
|
|
97
|
+
for (const metadata of entityMetadatas) {
|
|
98
|
+
this.removeEntityByTableName(metadata.givenTableName || metadata.tableName);
|
|
99
|
+
this.entityMetadatas.push(metadata);
|
|
100
|
+
this.entityMetadatasMap.set(metadata.target, metadata);
|
|
101
|
+
this.eggCustomAddEntityCacheMap.set(metadata.target, true);
|
|
102
|
+
this.eggCustomAddEntityTableNameKeyCacheMap.set(metadata.givenTableName || metadata.tableName, metadata.target);
|
|
103
|
+
}
|
|
104
|
+
// validate all created entity metadatas to make sure user created entities are valid and correct
|
|
105
|
+
entityMetadataValidator.validateMany(entityMetadatas, this.driver);
|
|
106
|
+
// set current data source to the entities
|
|
107
|
+
for (let entityMetadata of entityMetadatas) {
|
|
108
|
+
if (typeorm_1.InstanceChecker.isBaseEntityConstructor(entityMetadata.target)) {
|
|
109
|
+
entityMetadata.target.useDataSource(this);
|
|
110
|
+
}
|
|
65
111
|
}
|
|
66
|
-
// 不全部重新build,只单个类,但又无法实现关联关系
|
|
67
|
-
// await this.buildMetaData2(classes);
|
|
68
112
|
return this;
|
|
69
113
|
}
|
|
70
|
-
/**
|
|
71
|
-
async buildMetaData2(
|
|
114
|
+
/** 多个实体类来构建元数据,本次批量构建的元数据可以实现相互关联 */
|
|
115
|
+
async buildMetaData2(...entities) {
|
|
72
116
|
const connectionMetadataBuilder = new ConnectionMetadataBuilder_1.ConnectionMetadataBuilder(this);
|
|
73
117
|
const entityMetadataValidator = new EntityMetadataValidator_1.EntityMetadataValidator();
|
|
74
118
|
// build entity metadatas
|
|
75
|
-
const entityMetadatas = await connectionMetadataBuilder.buildEntityMetadatas([
|
|
119
|
+
const entityMetadatas = await connectionMetadataBuilder.buildEntityMetadatas([...entities]);
|
|
76
120
|
for (const metadata of entityMetadatas) {
|
|
77
121
|
this.entityMetadatas.push(metadata);
|
|
78
122
|
this.entityMetadatasMap.set(metadata.target, metadata);
|
|
@@ -90,6 +134,9 @@ class EggDataSource extends typeorm_1.DataSource {
|
|
|
90
134
|
removeEntity(clz) {
|
|
91
135
|
this.eggCustomAddEntityCacheMap.delete(clz);
|
|
92
136
|
const metadata = this.entityMetadatasMap.get(clz);
|
|
137
|
+
if (metadata) {
|
|
138
|
+
this.eggCustomAddEntityTableNameKeyCacheMap.delete(metadata.givenTableName || metadata.tableName);
|
|
139
|
+
}
|
|
93
140
|
if (metadata && typeorm_1.InstanceChecker.isBaseEntityConstructor(metadata.target)) {
|
|
94
141
|
// @ts-ignore
|
|
95
142
|
metadata.target.dataSource = null;
|
|
@@ -97,6 +144,15 @@ class EggDataSource extends typeorm_1.DataSource {
|
|
|
97
144
|
// @ts-ignore entityMetadatas 是只读属性
|
|
98
145
|
this.entityMetadatas = this.entityMetadatas.filter((item) => item.target !== clz);
|
|
99
146
|
this.entityMetadatasMap.delete(clz);
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
/** 通过用户表名或内部生成表名删除一个实体 仅限egg自定义添加的实体 */
|
|
150
|
+
removeEntityByTableName(tableName) {
|
|
151
|
+
const clz = this.eggCustomAddEntityTableNameKeyCacheMap.get(tableName);
|
|
152
|
+
if (clz) {
|
|
153
|
+
this.removeEntity(clz);
|
|
154
|
+
}
|
|
155
|
+
return this;
|
|
100
156
|
}
|
|
101
157
|
/** query方法,支持查询语句转义 :params */
|
|
102
158
|
async query2(query, parameters, queryRunner) {
|
|
@@ -106,27 +162,30 @@ class EggDataSource extends typeorm_1.DataSource {
|
|
|
106
162
|
/** 使用一个现有entity进行模型分表
|
|
107
163
|
* - 注意,同一个分表entity不应反复调用,否则产生多个相同class,造成OOM
|
|
108
164
|
* - 原始实体必须已经存在在datasource中,否则会报错
|
|
109
|
-
* - 与原始实体不同的是,它关联的toOne实体身上并未关联本实体(还是关联的原始实体),因此查询时不能使用oneToMany
|
|
165
|
+
* - 与原始实体不同的是,它关联的toOne实体身上并未关联本实体(还是关联的原始实体),因此查询时不能使用oneToMany关系关联本实体的数据。只能以本实体为主查询
|
|
166
|
+
* @param CLZ 原实体类
|
|
167
|
+
* @param tableName 新表名(或后缀)
|
|
168
|
+
* @param isSubfix 是否为后缀
|
|
110
169
|
*/
|
|
111
|
-
async
|
|
112
|
-
const meta = this.getMetadata(
|
|
170
|
+
async getShardingEntity(CLZ, tableName, isSubfix = false) {
|
|
171
|
+
const meta = this.getMetadata(CLZ);
|
|
113
172
|
if (!meta)
|
|
114
|
-
throw new Error(`entity ${
|
|
115
|
-
const name = isSubfix ? `${meta.name ||
|
|
173
|
+
throw new Error(`entity ${CLZ.name} not found in datasource ${this.name}`);
|
|
174
|
+
const name = isSubfix ? `${meta.givenTableName || meta.name || CLZ.name}_${tableName}` : tableName;
|
|
116
175
|
const CacheClasses = this.eggCustomAddSplitEntityCacheMap.get(name);
|
|
117
176
|
if (CacheClasses) {
|
|
118
177
|
return CacheClasses;
|
|
119
178
|
}
|
|
120
|
-
let Classes = class Classes extends
|
|
179
|
+
let Classes = class Classes extends CLZ {
|
|
121
180
|
};
|
|
122
181
|
Classes = tslib_1.__decorate([
|
|
123
182
|
(0, typeorm_1.Entity)({ name, comment: meta.comment || "" })
|
|
124
183
|
], Classes);
|
|
125
184
|
Classes.name2 = name;
|
|
126
|
-
await this.
|
|
185
|
+
await this.addEntities(Classes);
|
|
127
186
|
this.eggCustomAddSplitEntityCacheMap.set(name, Classes);
|
|
128
187
|
return Classes;
|
|
129
188
|
}
|
|
130
189
|
}
|
|
131
190
|
exports.EggDataSource = EggDataSource;
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ0RhdGFTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFDQUEyRTtBQUMzRSw0RkFBeUY7QUFDekYsOEZBQTJGO0FBQzNGLDBEQUEwRDtBQUUxRDs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLG9CQUFVO0lBQTdDOztRQUNTLCtCQUEwQixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQy9ELDZCQUE2QjtRQUNyQiwyQ0FBc0MsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUU3RSxrQkFBa0I7UUFDVixvQ0FBK0IsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztJQTJMdkUsQ0FBQztJQTFMQTs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFxQixHQUFHLFNBQXNCO1FBQzlELElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDbkQsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXZDLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENB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
|
package/lib/Logger.js
CHANGED
|
@@ -13,10 +13,10 @@ class EggTypeORMLogger {
|
|
|
13
13
|
this.app.coreLogger.debug(`[Egg-TypeORM logQuery] %s \r\n%j`, query, parameters);
|
|
14
14
|
}
|
|
15
15
|
logQueryError(error, query, parameters, _queryRunner) {
|
|
16
|
-
this.app.coreLogger.error(
|
|
16
|
+
this.app.coreLogger.error(`%s\r\n%s\r\n%j`, query, error, parameters);
|
|
17
17
|
}
|
|
18
18
|
logQuerySlow(time, query, parameters, _queryRunner) {
|
|
19
|
-
this.app.coreLogger.warn(`[Egg-TypeORM
|
|
19
|
+
this.app.coreLogger.warn(`[Egg-TypeORM Logger slow sql] %s \r\n%s \r\n%j`, time, query, parameters);
|
|
20
20
|
}
|
|
21
21
|
// @ts-ignore
|
|
22
22
|
logSchemaBuild(message, queryRunner) {
|
|
@@ -31,4 +31,4 @@ class EggTypeORMLogger {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
exports.default = EggTypeORMLogger;
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsTUFBcUIsZ0JBQWdCO0lBQ3BDLFlBQW9CLEdBQXdCO1FBQXhCLFFBQUcsR0FBSCxHQUFHLENBQXFCO1FBb0I1QyxjQUFTLEdBQUc7WUFDWCxHQUFHLEVBQUUsTUFBTTtZQUNYLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLE1BQU07U0FDWixDQUFDO0lBeEI2QyxDQUFDO0lBQ2hELFFBQVEsQ0FBQyxLQUFhLEVBQUUsVUFBOEIsRUFBRSxZQUFzQztRQUM3RixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBcUIsRUFBRSxLQUFhLEVBQUUsVUFBOEIsRUFBRSxZQUFzQztRQUN6SCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsVUFBOEIsRUFBRSxZQUFzQztRQUMvRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0RBQWdELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsYUFBYTtJQUNiLGNBQWMsQ0FBQyxPQUFlLEVBQUUsV0FBcUM7UUFDcEUsOENBQThDO0lBQy9DLENBQUM7SUFDRCxhQUFhO0lBQ2IsWUFBWSxDQUFDLE9BQWUsRUFBRSxXQUFxQztRQUNsRSw4Q0FBOEM7SUFDL0MsQ0FBQztJQVFELEdBQUcsQ0FBQyxLQUE4QixFQUFFLE9BQVksRUFBRSxXQUFxQztRQUN0RixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNEO0FBOUJELG1DQThCQyJ9
|
package/lib/connection.js
CHANGED
|
@@ -54,9 +54,11 @@ async function default_1(app) {
|
|
|
54
54
|
}
|
|
55
55
|
exports.default = default_1;
|
|
56
56
|
async function createTypeORMDataSources(app, datasourcesConfig, entities) {
|
|
57
|
+
// 留个外部可自定义logger的窗口app.typeorm.Logger
|
|
58
|
+
const Logger = app.typeorm.Logger || Logger_1.default;
|
|
57
59
|
// set logger if user do not provide
|
|
58
60
|
if (datasourcesConfig.logger === undefined) {
|
|
59
|
-
datasourcesConfig.logger = new
|
|
61
|
+
datasourcesConfig.logger = new Logger(app);
|
|
60
62
|
}
|
|
61
63
|
if (entities) {
|
|
62
64
|
datasourcesConfig.entities = entities;
|
|
@@ -76,4 +78,4 @@ async function createTypeORMDataSources(app, datasourcesConfig, entities) {
|
|
|
76
78
|
throw new Error(util.format(`[Egg-TypeORM] the DB %s %s %s init connection was failed after retry 3 times.`, datasourcesConfig.host, datasourcesConfig.port, datasourcesConfig.name));
|
|
77
79
|
}
|
|
78
80
|
exports.createTypeORMDataSources = createTypeORMDataSources;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkJBQTRCO0FBRzVCLHFDQUF3QztBQUN4QyxpQ0FBaUM7QUFDakMsbURBQWdEO0FBQ2hEOzs7R0FHRztBQUNZLEtBQUssb0JBQVcsR0FBd0I7SUFDdEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0lBRTlDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsNkRBQTZELENBQUMsQ0FBQztJQUU1RixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsMEJBQTBCO1FBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMscUJBQXFCO1lBQ3RFLE1BQU0sQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLDRFQUE2RSxJQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUUzSCxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxzQ0FBc0M7WUFDMUcsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFELGtCQUFrQjtZQUNsQixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakIsYUFBYTtnQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDUCx1QkFBdUI7UUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBUyxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUUzQixLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7UUFDbkMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQztZQUNKLE1BQU0sR0FBRyxHQUFHLE1BQU0sd0JBQXdCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RELEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ3BELEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxFQUFHLElBQVksQ0FBQyxJQUFJLEVBQUcsSUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUgsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDZCxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxtRUFBbUUsRUFBRyxJQUFZLENBQUMsSUFBSSxFQUFHLElBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsSixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsQ0FBQztJQUNGLENBQUM7QUFDRixDQUFDO0FBN0NELDRCQTZDQztBQUVNLEtBQUssVUFBVSx3QkFBd0IsQ0FBQyxHQUF3QixFQUFFLGlCQUFvRCxFQUFFLFFBQWdCO0lBQzlJLHNDQUFzQztJQUN0QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQWEsSUFBSSxnQkFBZ0IsQ0FBQztJQUU3RCxvQ0FBb0M7SUFDcEMsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDM0MsaUJBQXlCLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsaUJBQXlCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsTUFBTSxFQUFFLEdBQUcsSUFBSSw2QkFBYSxDQUFDLGlCQUFzQyxDQUFDLENBQUM7SUFFckUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQztZQUNKLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3RELENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3JCLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUNuQixtRUFBbUUsRUFDbEUsaUJBQXlCLENBQUMsSUFBSSxFQUM5QixpQkFBeUIsQ0FBQyxJQUFJLEVBQy9CLGlCQUFpQixDQUFDLElBQUksRUFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FDYixDQUFDO1lBQ0YsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xCLCtEQUErRCxFQUM5RCxpQkFBeUIsQ0FBQyxJQUFJLEVBQzlCLGlCQUF5QixDQUFDLElBQUksRUFDL0IsaUJBQWlCLENBQUMsSUFBSSxDQUN0QixDQUFDO1lBRUYsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDRixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDZCxJQUFJLENBQUMsTUFBTSxDQUNWLCtFQUErRSxFQUM5RSxpQkFBeUIsQ0FBQyxJQUFJLEVBQzlCLGlCQUF5QixDQUFDLElBQUksRUFDL0IsaUJBQWlCLENBQUMsSUFBSSxDQUN0QixDQUNELENBQUM7QUFDSCxDQUFDO0FBM0NELDREQTJDQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diyaner/egg-typeorm",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "egg plugin for nodejs orm freamwork typeorm.",
|
|
5
5
|
"eggPlugin": {
|
|
6
6
|
"name": "typeorm"
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"typeorm"
|
|
14
14
|
],
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"reflect-metadata": "^0.1.
|
|
17
|
-
"typeorm": "^0.3.
|
|
16
|
+
"reflect-metadata": "^0.1.14",
|
|
17
|
+
"typeorm": "^0.3.25"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@types/mocha": "^8.2.1",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"test": "npm run lint -- --fix && npm run test-local",
|
|
37
|
-
"test-local": "egg-bin test && npm run clean:js",
|
|
37
|
+
"test-local": "nvs use 20 && egg-bin test && npm run clean:js",
|
|
38
38
|
"tsc": "tsc",
|
|
39
39
|
"clean:js": "tsc -b --clean",
|
|
40
40
|
"release": "tsc && npm publish --access public && npm run clean:js",
|
package/typeorm.d.ts
CHANGED
package/typeorm.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EggDataSource = void 0;
|
|
3
|
+
exports.EggTypeORMLogger = exports.EggDataSource = void 0;
|
|
4
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
|
-
|
|
8
|
+
const Logger_1 = require("./lib/Logger");
|
|
9
|
+
exports.EggTypeORMLogger = Logger_1.default;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZW9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGVvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLGtEQUF1QjtBQUN2QixxREFBbUQ7QUFBMUMsOEdBQUEsYUFBYSxPQUFBO0FBQ3RCLHlDQUEyQztBQUNsQywyQkFERixnQkFBZ0IsQ0FDRSJ9
|