@wisemen/nestjs-typeorm 0.0.27 → 0.0.29

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.
@@ -1,10 +1,13 @@
1
1
  import { type EntityManager, type EntityTarget, FindOneOptions, FindOptionsWhere, ObjectLiteral, Repository } from 'typeorm';
2
2
  export declare class TypeOrmRepository<T extends ObjectLiteral> extends Repository<T> {
3
3
  constructor(entity: EntityTarget<T>, manager: EntityManager);
4
+ findNextBatch(options: FindOneOptions<T>, batchSize: number, lastEntity: Partial<T> | undefined): Promise<T[]>;
4
5
  findInBatches(options: FindOneOptions<T>, batchSize: number): AsyncGenerator<T[], void, void>;
5
6
  findByInBatches(where: FindOptionsWhere<T> | FindOptionsWhere<T>[], batchSize: number): AsyncGenerator<T[], void, void>;
6
7
  private addBatchingToOrder;
8
+ private addBatchingToSelect;
7
9
  private addBatchingToWhere;
8
10
  private addBatchConditionToWhereClause;
11
+ private getLastEntityEntriesForOrder;
9
12
  private getKeyCondition;
10
13
  }
@@ -4,19 +4,24 @@ export class TypeOrmRepository extends Repository {
4
4
  constructor(entity, manager) {
5
5
  super(entity, createTransactionManagerProxy(manager));
6
6
  }
7
- async *findInBatches(options, batchSize) {
7
+ async findNextBatch(options, batchSize, lastEntity) {
8
8
  const primaryKeys = this.metadata.primaryColumns.map(column => column.propertyName);
9
+ const order = this.addBatchingToOrder(options.order, primaryKeys);
10
+ const select = this.addBatchingToSelect(options.select, order);
11
+ const where = this.addBatchingToWhere(options.where, order, lastEntity);
12
+ return await this.find({
13
+ ...options,
14
+ select,
15
+ where,
16
+ order,
17
+ take: batchSize
18
+ });
19
+ }
20
+ async *findInBatches(options, batchSize) {
9
21
  let entities = [];
10
22
  let lastEntity = undefined;
11
23
  do {
12
- const order = this.addBatchingToOrder(options.order, primaryKeys);
13
- const where = this.addBatchingToWhere(options.where, order, lastEntity);
14
- entities = await this.find({
15
- ...options,
16
- where,
17
- order,
18
- take: batchSize
19
- });
24
+ entities = await this.findNextBatch(options, batchSize, lastEntity);
20
25
  if (entities.length === 0)
21
26
  return;
22
27
  yield entities;
@@ -33,6 +38,19 @@ export class TypeOrmRepository extends Repository {
33
38
  ...batchOrder
34
39
  };
35
40
  }
41
+ addBatchingToSelect(select, order) {
42
+ if (select === undefined) {
43
+ return select;
44
+ }
45
+ const keys = Object.keys(order);
46
+ if (Array.isArray(select)) {
47
+ return [...new Set([...select, ...keys])];
48
+ }
49
+ return {
50
+ ...select,
51
+ ...Object.fromEntries(keys.map(key => [key, true]))
52
+ };
53
+ }
36
54
  addBatchingToWhere(where, order, lastEntity) {
37
55
  if (lastEntity === undefined) {
38
56
  return where;
@@ -43,26 +61,35 @@ export class TypeOrmRepository extends Repository {
43
61
  return this.addBatchConditionToWhereClause(where, order, lastEntity);
44
62
  }
45
63
  addBatchConditionToWhereClause(where, order, lastEntity) {
64
+ const [keys, keysLastEntityValues] = this.getLastEntityEntriesForOrder(order, lastEntity);
46
65
  const clauses = [];
47
- const keys = Object.keys(order);
48
66
  for (let i = keys.length - 1; i >= 0; i--) {
49
67
  const key = keys[i];
50
- const keyLastValue = lastEntity[key];
68
+ const keyLastEntityValue = keysLastEntityValues[i];
51
69
  const preceedingKeys = keys.slice(0, i);
52
- const preceedingKeysLastValues = preceedingKeys.map(k => lastEntity[k]);
53
- const preceedingKeysWhere = Object.fromEntries(preceedingKeys.map((k, i) => [k, preceedingKeysLastValues[i]]));
70
+ const preceedingKeysLastEntityValues = keysLastEntityValues.slice(0, i);
71
+ const preceedingKeysWhere = Object.fromEntries(preceedingKeys.map((k, i) => [k, preceedingKeysLastEntityValues[i]]));
54
72
  const clause = {
55
73
  ...where,
56
74
  ...preceedingKeysWhere,
57
- [key]: this.getKeyCondition(where, order, key, keyLastValue)
75
+ [key]: this.getKeyCondition(where, order, key, keyLastEntityValue)
58
76
  };
59
77
  clauses.push(clause);
60
78
  }
61
79
  return clauses;
62
80
  }
63
- getKeyCondition(where, order, key, lastKeyValue) {
81
+ getLastEntityEntriesForOrder(order, lastEntity) {
82
+ const keys = Object.keys(order);
83
+ const entityKeys = Object.keys(lastEntity);
84
+ if (!keys.every(key => entityKeys.includes(key))) {
85
+ throw new Error(`entity must include at least following properties: ${keys.join(', ')}`);
86
+ }
87
+ const keysValues = keys.map(key => lastEntity[key]);
88
+ return [keys, keysValues];
89
+ }
90
+ getKeyCondition(where, order, key, keyLastEntityValue) {
64
91
  const existingCondition = where?.[key];
65
- const batchCondition = order?.[key] === 'ASC' ? MoreThan(lastKeyValue) : LessThan(lastKeyValue);
92
+ const batchCondition = order?.[key] === 'ASC' ? MoreThan(keyLastEntityValue) : LessThan(keyLastEntityValue);
66
93
  if (existingCondition === undefined) {
67
94
  return batchCondition;
68
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../lib/extensions/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../lib/extensions/repository.ts"],"names":[],"mappings":"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"}
@@ -1,90 +1,163 @@
1
1
  import { after, before, describe, it } from "node:test";
2
2
  import { expect } from 'expect';
3
3
  import { dataSource } from "./sql/datasource.js";
4
- import { UserEntity } from "./test.entity.js";
4
+ import { UserEntity } from "./sql/entities/user.entity.js";
5
5
  import { TypeOrmRepository } from "../repository.js";
6
- import { LessThan } from "typeorm";
7
- describe('Monetary calculations', () => {
8
- let repository;
6
+ import { LessThan, MoreThanOrEqual } from "typeorm";
7
+ import { MessageEntity } from "./sql/entities/message.entity.js";
8
+ describe('Repository find in batches test', () => {
9
9
  before(async () => {
10
10
  await dataSource.initialize();
11
11
  await dataSource.synchronize(true);
12
- repository = new TypeOrmRepository(UserEntity, dataSource.manager);
13
- await repository.insert([
14
- { id: 1, name: "Alice", age: 25 },
15
- { id: 2, name: "Bob", age: 30 },
16
- { id: 3, name: "Charlie", age: 28 },
17
- { id: 4, name: "Diana", age: 22 },
18
- { id: 5, name: "Eve", age: 35 }
19
- ]);
20
12
  });
21
13
  after(async () => {
22
14
  await dataSource.destroy();
23
15
  });
24
- it('finds in batches without filters or sorting', async () => {
25
- const result = repository.findInBatches({}, 2);
26
- let batches = [];
27
- for await (const batch of result) {
28
- batches.push(batch);
29
- }
30
- expect(batches).toHaveLength(3);
31
- expect(batches[0]).toHaveLength(2);
32
- expect(batches[1]).toHaveLength(2);
33
- expect(batches[2]).toHaveLength(1);
34
- expect(batches[0][0].name).toBe("Alice");
35
- expect(batches[0][1].name).toBe("Bob");
36
- expect(batches[1][0].name).toBe("Charlie");
37
- expect(batches[1][1].name).toBe("Diana");
38
- expect(batches[2][0].name).toBe("Eve");
16
+ describe('Batching with filter and sorting on at most 1 field', () => {
17
+ let repository;
18
+ before(async () => {
19
+ repository = new TypeOrmRepository(UserEntity, dataSource.manager);
20
+ await repository.insert([
21
+ { id: 1, name: "Alice", age: 25 },
22
+ { id: 2, name: "Bob", age: 30 },
23
+ { id: 3, name: "Charlie", age: 28 },
24
+ { id: 4, name: "Diana", age: 22 },
25
+ { id: 5, name: "Eve", age: 35 }
26
+ ]);
27
+ });
28
+ it('finds in batches without filters or sorting', async () => {
29
+ const result = repository.findInBatches({}, 2);
30
+ let batches = [];
31
+ for await (const batch of result) {
32
+ batches.push(batch);
33
+ }
34
+ expect(batches).toHaveLength(3);
35
+ expect(batches[0]).toHaveLength(2);
36
+ expect(batches[1]).toHaveLength(2);
37
+ expect(batches[2]).toHaveLength(1);
38
+ expect(batches[0][0].name).toBe("Alice");
39
+ expect(batches[0][1].name).toBe("Bob");
40
+ expect(batches[1][0].name).toBe("Charlie");
41
+ expect(batches[1][1].name).toBe("Diana");
42
+ expect(batches[2][0].name).toBe("Eve");
43
+ });
44
+ it('finds in batches without filters with sorting', async () => {
45
+ const result = repository.findInBatches({
46
+ order: { name: 'DESC' }
47
+ }, 2);
48
+ let batches = [];
49
+ for await (const batch of result) {
50
+ batches.push(batch);
51
+ }
52
+ expect(batches).toHaveLength(3);
53
+ expect(batches[0]).toHaveLength(2);
54
+ expect(batches[1]).toHaveLength(2);
55
+ expect(batches[2]).toHaveLength(1);
56
+ expect(batches[0][0].name).toBe("Eve");
57
+ expect(batches[0][1].name).toBe("Diana");
58
+ expect(batches[1][0].name).toBe("Charlie");
59
+ expect(batches[1][1].name).toBe("Bob");
60
+ expect(batches[2][0].name).toBe("Alice");
61
+ });
62
+ it('finds in batches with filters without sorting', async () => {
63
+ const result = repository.findInBatches({
64
+ where: { age: LessThan(30) }
65
+ }, 2);
66
+ let batches = [];
67
+ for await (const batch of result) {
68
+ batches.push(batch);
69
+ }
70
+ expect(batches).toHaveLength(2);
71
+ expect(batches[0]).toHaveLength(2);
72
+ expect(batches[1]).toHaveLength(1);
73
+ expect(batches[0][0].name).toBe('Alice');
74
+ expect(batches[0][1].name).toBe('Charlie');
75
+ expect(batches[1][0].name).toBe('Diana');
76
+ });
77
+ it('finds in batches with filters with sorting', async () => {
78
+ const result = repository.findInBatches({
79
+ where: { age: LessThan(30) },
80
+ order: { age: 'ASC' }
81
+ }, 2);
82
+ let batches = [];
83
+ for await (const batch of result) {
84
+ batches.push(batch);
85
+ }
86
+ expect(batches).toHaveLength(2);
87
+ expect(batches[0]).toHaveLength(2);
88
+ expect(batches[1]).toHaveLength(1);
89
+ expect(batches[0][0].name).toBe('Diana');
90
+ expect(batches[0][1].name).toBe('Alice');
91
+ expect(batches[1][0].name).toBe('Charlie');
92
+ });
93
+ it('finds in batches with disjunction filters with sorting', async () => {
94
+ const result = repository.findInBatches({
95
+ where: [{ age: LessThan(25) }, { age: MoreThanOrEqual(30) }],
96
+ order: { age: 'DESC' }
97
+ }, 2);
98
+ let batches = [];
99
+ for await (const batch of result) {
100
+ batches.push(batch);
101
+ }
102
+ expect(batches).toHaveLength(2);
103
+ expect(batches[0]).toHaveLength(2);
104
+ expect(batches[1]).toHaveLength(1);
105
+ expect(batches[0][0].name).toBe('Eve');
106
+ expect(batches[0][1].name).toBe('Bob');
107
+ expect(batches[1][0].name).toBe('Diana');
108
+ });
39
109
  });
40
- it('finds in batches without filters with sorting', async () => {
41
- const result = repository.findInBatches({
42
- order: { name: 'DESC' }
43
- }, 2);
44
- let batches = [];
45
- for await (const batch of result) {
46
- batches.push(batch);
47
- }
48
- expect(batches).toHaveLength(3);
49
- expect(batches[0]).toHaveLength(2);
50
- expect(batches[1]).toHaveLength(2);
51
- expect(batches[2]).toHaveLength(1);
52
- expect(batches[0][0].name).toBe("Eve");
53
- expect(batches[0][1].name).toBe("Diana");
54
- expect(batches[1][0].name).toBe("Charlie");
55
- expect(batches[1][1].name).toBe("Bob");
56
- expect(batches[2][0].name).toBe("Alice");
57
- });
58
- it('finds in batches with filters without sorting', async () => {
59
- const result = repository.findInBatches({
60
- where: { age: LessThan(30) }
61
- }, 2);
62
- let batches = [];
63
- for await (const batch of result) {
64
- batches.push(batch);
65
- }
66
- expect(batches).toHaveLength(2);
67
- expect(batches[0]).toHaveLength(2);
68
- expect(batches[1]).toHaveLength(1);
69
- expect(batches[0][0].name).toBe('Alice');
70
- expect(batches[0][1].name).toBe('Charlie');
71
- expect(batches[1][0].name).toBe('Diana');
72
- });
73
- it('finds in batches with filters with sorting', async () => {
74
- const result = repository.findInBatches({
75
- where: { age: LessThan(30) },
76
- order: { age: 'ASC' }
77
- }, 2);
78
- let batches = [];
79
- for await (const batch of result) {
80
- batches.push(batch);
81
- }
82
- expect(batches).toHaveLength(2);
83
- expect(batches[0]).toHaveLength(2);
84
- expect(batches[1]).toHaveLength(1);
85
- expect(batches[0][0].name).toBe('Diana');
86
- expect(batches[0][1].name).toBe('Alice');
87
- expect(batches[1][0].name).toBe('Charlie');
110
+ describe('Batching with filter and sorting on multiple fields', () => {
111
+ let repository;
112
+ before(async () => {
113
+ repository = new TypeOrmRepository(MessageEntity, dataSource.manager);
114
+ const now = new Date();
115
+ const past = new Date(now.getTime() - 1000);
116
+ const future = new Date(now.getTime() + 1000);
117
+ await repository.insert([
118
+ { id: 1, createdAt: now, message: "Message 1" },
119
+ { id: 2, createdAt: past, message: "Message 2" },
120
+ { id: 3, createdAt: future, message: "Message 3" },
121
+ { id: 4, createdAt: now, message: "Message 4" },
122
+ { id: 5, createdAt: past, message: "Message 5" }
123
+ ]);
124
+ });
125
+ it('finds in batches with implicit secondary sorting', async () => {
126
+ const result = repository.findInBatches({
127
+ order: { createdAt: 'DESC' }
128
+ }, 2);
129
+ let batches = [];
130
+ for await (const batch of result) {
131
+ batches.push(batch);
132
+ }
133
+ expect(batches).toHaveLength(3);
134
+ expect(batches[0]).toHaveLength(2);
135
+ expect(batches[1]).toHaveLength(2);
136
+ expect(batches[2]).toHaveLength(1);
137
+ expect(batches[0][0].id).toBe(3);
138
+ expect(batches[0][1].id).toBe(1);
139
+ expect(batches[1][0].id).toBe(4);
140
+ expect(batches[1][1].id).toBe(2);
141
+ expect(batches[2][0].id).toBe(5);
142
+ });
143
+ it('finds in batches with explicit secondary sorting', async () => {
144
+ const result = repository.findInBatches({
145
+ order: { createdAt: 'DESC', id: 'DESC' }
146
+ }, 2);
147
+ let batches = [];
148
+ for await (const batch of result) {
149
+ batches.push(batch);
150
+ }
151
+ expect(batches).toHaveLength(3);
152
+ expect(batches[0]).toHaveLength(2);
153
+ expect(batches[1]).toHaveLength(2);
154
+ expect(batches[2]).toHaveLength(1);
155
+ expect(batches[0][0].id).toBe(3);
156
+ expect(batches[0][1].id).toBe(4);
157
+ expect(batches[1][0].id).toBe(1);
158
+ expect(batches[1][1].id).toBe(5);
159
+ expect(batches[2][0].id).toBe(2);
160
+ });
88
161
  });
89
162
  });
90
163
  //# sourceMappingURL=repository-find-in-batches.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository-find-in-batches.test.js","sourceRoot":"","sources":["../../../lib/extensions/tests/repository-find-in-batches.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository-find-in-batches.test.js","sourceRoot":"","sources":["../../../lib/extensions/tests/repository-find-in-batches.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class MessageEntity {
2
+ id: number;
3
+ createdAt: Date;
4
+ message: string;
5
+ }
@@ -0,0 +1,32 @@
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 { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
11
+ let MessageEntity = class MessageEntity {
12
+ id;
13
+ createdAt;
14
+ message;
15
+ };
16
+ __decorate([
17
+ PrimaryGeneratedColumn(),
18
+ __metadata("design:type", Number)
19
+ ], MessageEntity.prototype, "id", void 0);
20
+ __decorate([
21
+ Column({ type: 'timestamp' }),
22
+ __metadata("design:type", Date)
23
+ ], MessageEntity.prototype, "createdAt", void 0);
24
+ __decorate([
25
+ Column({ type: 'varchar' }),
26
+ __metadata("design:type", String)
27
+ ], MessageEntity.prototype, "message", void 0);
28
+ MessageEntity = __decorate([
29
+ Entity()
30
+ ], MessageEntity);
31
+ export { MessageEntity };
32
+ //# sourceMappingURL=message.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.entity.js","sourceRoot":"","sources":["../../../../../lib/extensions/tests/sql/entities/message.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAG1D,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,EAAE,CAAQ;IAGV,SAAS,CAAM;IAGf,OAAO,CAAQ;CAChB,CAAA;AAPC;IADC,sBAAsB,EAAE;;yCACf;AAGV;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BACnB,IAAI;gDAAA;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;8CACb;AARJ,aAAa;IADzB,MAAM,EAAE;GACI,aAAa,CASzB"}
@@ -29,4 +29,4 @@ UserEntity = __decorate([
29
29
  Entity()
30
30
  ], UserEntity);
31
31
  export { UserEntity };
32
- //# sourceMappingURL=test.entity.js.map
32
+ //# sourceMappingURL=user.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../../../../lib/extensions/tests/sql/entities/user.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAG1D,IAAM,UAAU,GAAhB,MAAM,UAAU;IAErB,EAAE,CAAQ;IAGV,IAAI,CAAQ;IAGZ,GAAG,CAAQ;CACZ,CAAA;AAPC;IADC,sBAAsB,EAAE;;sCACf;AAGV;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;wCAChB;AAGZ;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;uCACb;AARA,UAAU;IADtB,MAAM,EAAE;GACI,UAAU,CAStB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/nestjs-typeorm",
3
- "version": "0.0.27",
3
+ "version": "0.0.29",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.entity.js","sourceRoot":"","sources":["../../../lib/extensions/tests/test.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAG1D,IAAM,UAAU,GAAhB,MAAM,UAAU;IAErB,EAAE,CAAQ;IAGV,IAAI,CAAQ;IAGZ,GAAG,CAAQ;CACZ,CAAA;AAPC;IADC,sBAAsB,EAAE;;sCACf;AAGV;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;wCAChB;AAGZ;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;uCACb;AARA,UAAU;IADtB,MAAM,EAAE;GACI,UAAU,CAStB"}