@hugo.ye/common 1.0.66 → 1.0.68

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.
@@ -2,15 +2,42 @@ import { Logger } from '@nestjs/common';
2
2
  import { AbstractEntity } from '../index.js';
3
3
  import { EntityManager, InsertResult, Repository, type DeepPartial, type EntityTarget, type FindOptionsOrder, type FindOptionsRelations, type FindOptionsWhere, type ObjectLiteral } from 'typeorm';
4
4
  import type { QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity.js';
5
+ interface Stats {
6
+ totalAttempted: number;
7
+ totalInserted: number;
8
+ batchCount: number;
9
+ ids: number[];
10
+ firstId: number;
11
+ lastId: number;
12
+ duration: string;
13
+ speed: string;
14
+ }
5
15
  export declare abstract class AbstractRepository<T extends AbstractEntity<T>> {
6
16
  private readonly entityManager;
7
17
  private readonly entityRepository;
8
18
  protected abstract logger: Logger;
9
19
  constructor(entityManager: EntityManager, entityRepository: Repository<T>);
10
- insert<T extends ObjectLiteral>(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T> | QueryDeepPartialEntity<T>[]): Promise<InsertResult>;
11
- insertOne<T extends ObjectLiteral>(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T>): Promise<InsertResult>;
12
- insertMany<T extends ObjectLiteral>(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T>[]): Promise<InsertResult>;
13
- batchInsert<T extends ObjectLiteral>(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T>[], batchSize?: number): Promise<InsertResult[]>;
20
+ private calculateStats;
21
+ insert<T extends ObjectLiteral>(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T> | QueryDeepPartialEntity<T>[]): Promise<{
22
+ result: InsertResult;
23
+ stats: Stats;
24
+ }>;
25
+ insertOne<T extends ObjectLiteral>(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T>): Promise<{
26
+ result: InsertResult;
27
+ stats: Stats;
28
+ }>;
29
+ insertMany<T extends ObjectLiteral>(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T>[]): Promise<{
30
+ result: InsertResult;
31
+ stats: Stats;
32
+ }>;
33
+ bulkInsert(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T>[], options?: {
34
+ batchSize?: number;
35
+ useTransaction?: boolean;
36
+ }): Promise<{
37
+ result: InsertResult[];
38
+ stats: Stats;
39
+ }>;
40
+ insertWithTransaction<T extends ObjectLiteral>(entity: EntityTarget<T>, data: QueryDeepPartialEntity<T> | QueryDeepPartialEntity<T>[]): Promise<InsertResult>;
14
41
  create(entity: T): Promise<T>;
15
42
  findOne(where: FindOptionsWhere<T> | FindOptionsWhere<T>[], relations?: FindOptionsRelations<T>): Promise<T>;
16
43
  findOneAndUpdate(where: FindOptionsWhere<T>, partialEntity: QueryDeepPartialEntity<T>): Promise<T>;
@@ -19,4 +46,5 @@ export declare abstract class AbstractRepository<T extends AbstractEntity<T>> {
19
46
  save(entity: DeepPartial<T>): Promise<DeepPartial<T> & T>;
20
47
  getRepository(): Repository<T>;
21
48
  }
49
+ export {};
22
50
  //# sourceMappingURL=abstract.repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.repository.d.ts","sourceRoot":"","sources":["../../src/database/abstract.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAE1F,8BAAsB,kBAAkB,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC;IAIhE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAJnC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGf,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;IAO5C,MAAM,CAAC,CAAC,SAAS,aAAa,EAClC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,EAAE,GAC5D,OAAO,CAAC,YAAY,CAAC;IAIlB,SAAS,CAAC,CAAC,SAAS,aAAa,EACrC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC;IAIlB,UAAU,CAAC,CAAC,SAAS,aAAa,EACtC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,GAChC,OAAO,CAAC,YAAY,CAAC;IAIlB,WAAW,CAAC,CAAC,SAAS,aAAa,EACvC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,EACjC,SAAS,GAAE,MAAY,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;IASpB,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI7B,OAAO,CACX,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAClD,SAAS,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC;IAWP,gBAAgB,CACpB,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC1B,aAAa,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,CAAC,CAAC;IAYP,IAAI,CACR,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAClD,SAAS,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,EACnC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IASvB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAI3C,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAIjC,aAAa;CAGd"}
1
+ {"version":3,"file":"abstract.repository.d.ts","sourceRoot":"","sources":["../../src/database/abstract.repository.ts"],"names":[],"mappings":"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"}
@@ -8,31 +8,82 @@ export class AbstractRepository {
8
8
  this.entityManager = entityManager;
9
9
  this.entityRepository = entityRepository;
10
10
  }
11
+ calculateStats(results, totalAttempted, // 总数据数
12
+ startTime) {
13
+ const resultArray = Array.isArray(results) ? results : [results];
14
+ const totalInserted = resultArray.reduce((sum, r) => sum + r.identifiers.length, 0);
15
+ const allIds = resultArray.flatMap((r) => r.identifiers.map((item) => item.id));
16
+ const duration = Date.now() - startTime;
17
+ return {
18
+ totalAttempted,
19
+ totalInserted,
20
+ batchCount: resultArray.length,
21
+ ids: allIds,
22
+ firstId: allIds[0],
23
+ lastId: allIds[allIds.length - 1],
24
+ duration: `${duration}ms`,
25
+ speed: totalInserted > 0 && duration > 0
26
+ ? `${Math.round(totalInserted / (duration / 1000))} records/sec`
27
+ : 'N/A',
28
+ };
29
+ }
11
30
  // InsertResult 返回的数据格式
12
31
  // identifiers: [{ id: 1 }],
13
32
  // generatedMaps: [{ id: 1, createdAt: '2024-01-01T00:00:00.000Z' }],
14
33
  // raw: { insertId: 1, affectedRows: 1 }
15
34
  // 一次插入1条或多条数据
16
35
  async insert(entity, data) {
17
- return await this.entityManager.insert(entity, data);
36
+ const startTime = Date.now();
37
+ const result = await this.entityManager.insert(entity, data);
38
+ const stats = this.calculateStats(result, Array.isArray(result) ? result.length : 1, startTime);
39
+ return { result, stats };
18
40
  }
19
41
  // 一次插入1条数据
20
42
  async insertOne(entity, data) {
21
- return await this.entityManager.insert(entity, data);
43
+ const startTime = Date.now();
44
+ const result = await this.entityManager.insert(entity, data);
45
+ const stats = this.calculateStats(result, 1, startTime);
46
+ return { result, stats };
22
47
  }
23
48
  // 一次插入多条数据
24
49
  async insertMany(entity, data) {
25
- return await this.entityManager.insert(entity, data);
50
+ const startTime = Date.now();
51
+ const result = await this.entityManager.insert(entity, data);
52
+ const stats = this.calculateStats(result, data.length, startTime);
53
+ return { result, stats };
26
54
  }
27
55
  // 分批插入,当数据多时使用, batch一次插入多少条
28
- async batchInsert(entity, data, batchSize = 100) {
56
+ // < 1000条 直接使用 insert()
57
+ // 1000-10万条 → 分批 insert() + 事务
58
+ // > 10万条 → 分批 insert() 不使用事务
59
+ async bulkInsert(entity, data, options = {}) {
60
+ const { batchSize = 1000, useTransaction = false } = options;
29
61
  const results = [];
30
- for (let i = 0; i < data.length; i += batchSize) {
31
- const batch = data.slice(i, i + batchSize);
32
- const result = await this.entityManager.insert(entity, batch);
33
- results.push(result);
62
+ const startTime = Date.now();
63
+ if (useTransaction) {
64
+ this.entityManager.transaction(async (manager) => {
65
+ for (let i = 0; i < data.length; i += batchSize) {
66
+ const batch = data.slice(i, i + batchSize);
67
+ const result = await manager.insert(entity, batch);
68
+ results.push(result);
69
+ }
70
+ });
71
+ }
72
+ else {
73
+ for (let i = 0; i < data.length; i += batchSize) {
74
+ const batch = data.slice(i, i + batchSize);
75
+ const result = await this.entityManager.insert(entity, batch);
76
+ results.push(result);
77
+ }
34
78
  }
35
- return results;
79
+ const stats = this.calculateStats(results, data.length, startTime);
80
+ return { result: results, stats };
81
+ }
82
+ // 事务插入
83
+ async insertWithTransaction(entity, data) {
84
+ return this.entityManager.transaction(async (manager) => {
85
+ return await manager.insert(entity, data);
86
+ });
36
87
  }
37
88
  async create(entity) {
38
89
  return await this.entityManager.save(entity);
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.repository.js","sourceRoot":"","sources":["../../src/database/abstract.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract.repository.js","sourceRoot":"","sources":["../../src/database/abstract.repository.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hugo.ye/common",
3
- "version": "1.0.66",
3
+ "version": "1.0.68",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",