nestjs-paginate 2.4.4 → 2.5.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.
@@ -1,64 +1,47 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CatEntity = void 0;
13
3
  const typeorm_1 = require("typeorm");
14
- const paginate_1 = require("./paginate");
15
- const typeorm_2 = require("typeorm");
4
+ const index_1 = require("../index");
16
5
  const common_1 = require("@nestjs/common");
17
- let CatEntity = class CatEntity {
18
- };
19
- __decorate([
20
- (0, typeorm_2.PrimaryGeneratedColumn)(),
21
- __metadata("design:type", Number)
22
- ], CatEntity.prototype, "id", void 0);
23
- __decorate([
24
- (0, typeorm_1.Column)(),
25
- __metadata("design:type", String)
26
- ], CatEntity.prototype, "name", void 0);
27
- __decorate([
28
- (0, typeorm_1.Column)(),
29
- __metadata("design:type", String)
30
- ], CatEntity.prototype, "color", void 0);
31
- __decorate([
32
- (0, typeorm_1.Column)({ nullable: true }),
33
- __metadata("design:type", Number)
34
- ], CatEntity.prototype, "age", void 0);
35
- __decorate([
36
- (0, typeorm_2.CreateDateColumn)(),
37
- __metadata("design:type", String)
38
- ], CatEntity.prototype, "createdAt", void 0);
39
- CatEntity = __decorate([
40
- (0, typeorm_2.Entity)()
41
- ], CatEntity);
42
- exports.CatEntity = CatEntity;
6
+ const cat_entity_1 = require("./entity/cat.entity");
7
+ const cat_toy_entity_1 = require("./entity/cat-toy.entity");
8
+ const cat_home_entity_1 = require("./entity/cat-home.entity");
9
+ const lodash_1 = require("lodash");
43
10
  describe('paginate', () => {
44
11
  let connection;
45
- let repo;
12
+ let catRepo;
13
+ let catToyRepo;
14
+ let catHomeRepo;
46
15
  let cats;
16
+ let catToys;
17
+ let catHomes;
47
18
  beforeAll(async () => {
48
19
  connection = await (0, typeorm_1.createConnection)({
49
20
  type: 'sqlite',
50
21
  database: ':memory:',
51
22
  synchronize: true,
52
23
  logging: false,
53
- entities: [CatEntity],
24
+ entities: [cat_entity_1.CatEntity, cat_toy_entity_1.CatToyEntity, cat_home_entity_1.CatHomeEntity],
54
25
  });
55
- repo = connection.getRepository(CatEntity);
56
- cats = await repo.save([
57
- repo.create({ name: 'Milo', color: 'brown', age: 6 }),
58
- repo.create({ name: 'Garfield', color: 'ginger', age: 5 }),
59
- repo.create({ name: 'Shadow', color: 'black', age: 4 }),
60
- repo.create({ name: 'George', color: 'white', age: 3 }),
61
- repo.create({ name: 'Leche', color: 'white', age: null }),
26
+ catRepo = connection.getRepository(cat_entity_1.CatEntity);
27
+ catToyRepo = connection.getRepository(cat_toy_entity_1.CatToyEntity);
28
+ catHomeRepo = connection.getRepository(cat_home_entity_1.CatHomeEntity);
29
+ cats = await catRepo.save([
30
+ catRepo.create({ name: 'Milo', color: 'brown', age: 6 }),
31
+ catRepo.create({ name: 'Garfield', color: 'ginger', age: 5 }),
32
+ catRepo.create({ name: 'Shadow', color: 'black', age: 4 }),
33
+ catRepo.create({ name: 'George', color: 'white', age: 3 }),
34
+ catRepo.create({ name: 'Leche', color: 'white', age: null }),
35
+ ]);
36
+ catToys = await catToyRepo.save([
37
+ catToyRepo.create({ name: 'Fuzzy Thing', cat: cats[0] }),
38
+ catToyRepo.create({ name: 'Stuffed Mouse', cat: cats[0] }),
39
+ catToyRepo.create({ name: 'Mouse', cat: cats[0] }),
40
+ catToyRepo.create({ name: 'String', cat: cats[1] }),
41
+ ]);
42
+ catHomes = await catHomeRepo.save([
43
+ catHomeRepo.create({ name: 'Box', cat: cats[0] }),
44
+ catHomeRepo.create({ name: 'House', cat: cats[1] }),
62
45
  ]);
63
46
  });
64
47
  it('should return an instance of Paginated', async () => {
@@ -70,8 +53,8 @@ describe('paginate', () => {
70
53
  const query = {
71
54
  path: '',
72
55
  };
73
- const result = await (0, paginate_1.paginate)(query, repo, config);
74
- expect(result).toBeInstanceOf(paginate_1.Paginated);
56
+ const result = await (0, index_1.paginate)(query, catRepo, config);
57
+ expect(result).toBeInstanceOf(index_1.Paginated);
75
58
  expect(result.data).toStrictEqual(cats.slice(0, 1));
76
59
  });
77
60
  it('should accept a query builder', async () => {
@@ -83,8 +66,8 @@ describe('paginate', () => {
83
66
  const query = {
84
67
  path: '',
85
68
  };
86
- const queryBuilder = await repo.createQueryBuilder('cats');
87
- const result = await (0, paginate_1.paginate)(query, queryBuilder, config);
69
+ const queryBuilder = await catRepo.createQueryBuilder('cats');
70
+ const result = await (0, index_1.paginate)(query, queryBuilder, config);
88
71
  expect(result.data).toStrictEqual(cats.slice(0, 1));
89
72
  });
90
73
  it('should accept a query builder with custom condition', async () => {
@@ -99,9 +82,9 @@ describe('paginate', () => {
99
82
  const queryBuilder = await connection
100
83
  .createQueryBuilder()
101
84
  .select('cats')
102
- .from(CatEntity, 'cats')
85
+ .from(cat_entity_1.CatEntity, 'cats')
103
86
  .where('cats.color = :color', { color: 'white' });
104
- const result = await (0, paginate_1.paginate)(query, queryBuilder, config);
87
+ const result = await (0, index_1.paginate)(query, queryBuilder, config);
105
88
  expect(result.data).toStrictEqual(cats.slice(3, 4));
106
89
  });
107
90
  it('should default to page 1, if negative page is given', async () => {
@@ -113,7 +96,7 @@ describe('paginate', () => {
113
96
  path: '',
114
97
  page: -1,
115
98
  };
116
- const result = await (0, paginate_1.paginate)(query, repo, config);
99
+ const result = await (0, index_1.paginate)(query, catRepo, config);
117
100
  expect(result.meta.currentPage).toBe(1);
118
101
  expect(result.data).toStrictEqual(cats.slice(0, 1));
119
102
  });
@@ -128,7 +111,7 @@ describe('paginate', () => {
128
111
  page: 1,
129
112
  limit: 20,
130
113
  };
131
- const result = await (0, paginate_1.paginate)(query, repo, config);
114
+ const result = await (0, index_1.paginate)(query, catRepo, config);
132
115
  expect(result.data).toStrictEqual(cats.slice(0, 2));
133
116
  });
134
117
  it('should return correct links for some results', async () => {
@@ -140,7 +123,7 @@ describe('paginate', () => {
140
123
  page: 2,
141
124
  limit: 2,
142
125
  };
143
- const { links } = await (0, paginate_1.paginate)(query, repo, config);
126
+ const { links } = await (0, index_1.paginate)(query, catRepo, config);
144
127
  expect(links.first).toBe('?page=1&limit=2&sortBy=id:ASC');
145
128
  expect(links.previous).toBe('?page=1&limit=2&sortBy=id:ASC');
146
129
  expect(links.current).toBe('?page=2&limit=2&sortBy=id:ASC');
@@ -158,7 +141,7 @@ describe('paginate', () => {
158
141
  limit: 2,
159
142
  search: 'Pluto',
160
143
  };
161
- const { links } = await (0, paginate_1.paginate)(query, repo, config);
144
+ const { links } = await (0, index_1.paginate)(query, catRepo, config);
162
145
  expect(links.first).toBe(undefined);
163
146
  expect(links.previous).toBe(undefined);
164
147
  expect(links.current).toBe('?page=1&limit=2&sortBy=id:ASC&search=Pluto');
@@ -173,7 +156,7 @@ describe('paginate', () => {
173
156
  const query = {
174
157
  path: '',
175
158
  };
176
- const result = await (0, paginate_1.paginate)(query, repo, config);
159
+ const result = await (0, index_1.paginate)(query, catRepo, config);
177
160
  expect(result.meta.sortBy).toStrictEqual([['id', 'DESC']]);
178
161
  expect(result.data).toStrictEqual(cats.slice(0).reverse());
179
162
  });
@@ -188,7 +171,7 @@ describe('paginate', () => {
188
171
  ['name', 'ASC'],
189
172
  ],
190
173
  };
191
- const result = await (0, paginate_1.paginate)(query, repo, config);
174
+ const result = await (0, index_1.paginate)(query, catRepo, config);
192
175
  expect(result.meta.sortBy).toStrictEqual([
193
176
  ['color', 'DESC'],
194
177
  ['name', 'ASC'],
@@ -204,11 +187,110 @@ describe('paginate', () => {
204
187
  path: '',
205
188
  search: 'i',
206
189
  };
207
- const result = await (0, paginate_1.paginate)(query, repo, config);
190
+ const result = await (0, index_1.paginate)(query, catRepo, config);
208
191
  expect(result.meta.search).toStrictEqual('i');
209
192
  expect(result.data).toStrictEqual([cats[0], cats[1], cats[3], cats[4]]);
210
193
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=i');
211
194
  });
195
+ it('should return result based on search term on many-to-one relation', async () => {
196
+ const config = {
197
+ relations: ['cat'],
198
+ sortableColumns: ['id', 'name'],
199
+ searchableColumns: ['name', 'cat.name'],
200
+ };
201
+ const query = {
202
+ path: '',
203
+ search: 'Milo',
204
+ };
205
+ const result = await (0, index_1.paginate)(query, catToyRepo, config);
206
+ expect(result.meta.search).toStrictEqual('Milo');
207
+ expect(result.data).toStrictEqual([catToys[0], catToys[1], catToys[2]]);
208
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=Milo');
209
+ });
210
+ it('should return result based on search term on one-to-many relation', async () => {
211
+ const config = {
212
+ relations: ['toys'],
213
+ sortableColumns: ['id', 'name'],
214
+ searchableColumns: ['name', 'toys.name'],
215
+ };
216
+ const query = {
217
+ path: '',
218
+ search: 'Mouse',
219
+ };
220
+ const result = await (0, index_1.paginate)(query, catRepo, config);
221
+ expect(result.meta.search).toStrictEqual('Mouse');
222
+ const toy = (0, lodash_1.clone)(catToys[1]);
223
+ delete toy.cat;
224
+ const toy2 = (0, lodash_1.clone)(catToys[2]);
225
+ delete toy2.cat;
226
+ expect(result.data).toStrictEqual([Object.assign((0, lodash_1.clone)(cats[0]), { toys: [toy, toy2] })]);
227
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=Mouse');
228
+ });
229
+ it('should return result based on search term on one-to-one relation', async () => {
230
+ const config = {
231
+ relations: ['cat'],
232
+ sortableColumns: ['id', 'name', 'cat.id'],
233
+ };
234
+ const query = {
235
+ path: '',
236
+ sortBy: [['cat.id', 'DESC']],
237
+ };
238
+ const result = await (0, index_1.paginate)(query, catHomeRepo, config);
239
+ expect(result.meta.sortBy).toStrictEqual([['cat.id', 'DESC']]);
240
+ expect(result.data).toStrictEqual([catHomes[0], catHomes[1]].sort((a, b) => b.cat.id - a.cat.id));
241
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.id:DESC');
242
+ });
243
+ it('should return result based on sort and search on many-to-one relation', async () => {
244
+ const config = {
245
+ relations: ['cat'],
246
+ sortableColumns: ['id', 'name', 'cat.id'],
247
+ searchableColumns: ['name', 'cat.name'],
248
+ };
249
+ const query = {
250
+ path: '',
251
+ sortBy: [['cat.id', 'DESC']],
252
+ search: 'Milo',
253
+ };
254
+ const result = await (0, index_1.paginate)(query, catToyRepo, config);
255
+ expect(result.meta.search).toStrictEqual('Milo');
256
+ expect(result.data).toStrictEqual([catToys[0], catToys[1], catToys[2]].sort((a, b) => b.cat.id - a.cat.id));
257
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.id:DESC&search=Milo');
258
+ });
259
+ it('should return result based on sort on one-to-many relation', async () => {
260
+ const config = {
261
+ relations: ['toys'],
262
+ sortableColumns: ['id', 'name', 'toys.id'],
263
+ searchableColumns: ['name', 'toys.name'],
264
+ };
265
+ const query = {
266
+ path: '',
267
+ sortBy: [['toys.id', 'DESC']],
268
+ search: 'Mouse',
269
+ };
270
+ const result = await (0, index_1.paginate)(query, catRepo, config);
271
+ expect(result.meta.search).toStrictEqual('Mouse');
272
+ const toy1 = (0, lodash_1.clone)(catToys[1]);
273
+ delete toy1.cat;
274
+ const toy2 = (0, lodash_1.clone)(catToys[2]);
275
+ delete toy2.cat;
276
+ expect(result.data).toStrictEqual([Object.assign((0, lodash_1.clone)(cats[0]), { toys: [toy2, toy1] })]);
277
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=toys.id:DESC&search=Mouse');
278
+ });
279
+ it('should return result based on sort on one-to-one relation', async () => {
280
+ const config = {
281
+ relations: ['cat'],
282
+ sortableColumns: ['id', 'name'],
283
+ searchableColumns: ['name', 'cat.name'],
284
+ };
285
+ const query = {
286
+ path: '',
287
+ search: 'Garfield',
288
+ };
289
+ const result = await (0, index_1.paginate)(query, catHomeRepo, config);
290
+ expect(result.meta.search).toStrictEqual('Garfield');
291
+ expect(result.data).toStrictEqual([catHomes[1]]);
292
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=Garfield');
293
+ });
212
294
  it('should return result based on search term and searchBy columns', async () => {
213
295
  const config = {
214
296
  sortableColumns: ['id', 'name', 'color'],
@@ -221,7 +303,7 @@ describe('paginate', () => {
221
303
  search: searchTerm,
222
304
  searchBy: ['color'],
223
305
  };
224
- const result = await (0, paginate_1.paginate)(query, repo, config);
306
+ const result = await (0, index_1.paginate)(query, catRepo, config);
225
307
  expect(result.meta.search).toStrictEqual(searchTerm);
226
308
  expect(result.meta.searchBy).toStrictEqual(['color']);
227
309
  expect(result.data).toStrictEqual(expectedResultData);
@@ -234,7 +316,7 @@ describe('paginate', () => {
234
316
  color: 'white',
235
317
  },
236
318
  filterableColumns: {
237
- name: [paginate_1.FilterOperator.NOT],
319
+ name: [index_1.FilterOperator.NOT],
238
320
  },
239
321
  };
240
322
  const query = {
@@ -243,13 +325,86 @@ describe('paginate', () => {
243
325
  name: '$not:Leche',
244
326
  },
245
327
  };
246
- const result = await (0, paginate_1.paginate)(query, repo, config);
328
+ const result = await (0, index_1.paginate)(query, catRepo, config);
247
329
  expect(result.meta.filter).toStrictEqual({
248
330
  name: '$not:Leche',
249
331
  });
250
332
  expect(result.data).toStrictEqual([cats[3]]);
251
333
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.name=$not:Leche');
252
334
  });
335
+ it('should return result based on filter on many-to-one relation', async () => {
336
+ const config = {
337
+ relations: ['cat'],
338
+ sortableColumns: ['id', 'name'],
339
+ filterableColumns: {
340
+ 'cat.name': [index_1.FilterOperator.NOT],
341
+ },
342
+ };
343
+ const query = {
344
+ path: '',
345
+ filter: {
346
+ 'cat.name': '$not:Milo',
347
+ },
348
+ };
349
+ const result = await (0, index_1.paginate)(query, catToyRepo, config);
350
+ expect(result.meta.filter).toStrictEqual({
351
+ 'cat.name': '$not:Milo',
352
+ });
353
+ expect(result.data).toStrictEqual([catToys[3]]);
354
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.name=$not:Milo');
355
+ });
356
+ it('should return result based on filter on one-to-many relation', async () => {
357
+ const config = {
358
+ relations: ['toys'],
359
+ sortableColumns: ['id', 'name'],
360
+ filterableColumns: {
361
+ 'toys.name': [index_1.FilterOperator.NOT],
362
+ },
363
+ };
364
+ const query = {
365
+ path: '',
366
+ filter: {
367
+ 'toys.name': '$not:Stuffed Mouse',
368
+ },
369
+ };
370
+ const result = await (0, index_1.paginate)(query, catRepo, config);
371
+ const cat1 = (0, lodash_1.clone)(cats[0]);
372
+ const cat2 = (0, lodash_1.clone)(cats[1]);
373
+ const catToys1 = (0, lodash_1.clone)(catToys[0]);
374
+ const catToys2 = (0, lodash_1.clone)(catToys[2]);
375
+ const catToys3 = (0, lodash_1.clone)(catToys[3]);
376
+ delete catToys1.cat;
377
+ delete catToys2.cat;
378
+ delete catToys3.cat;
379
+ cat1.toys = [catToys1, catToys2];
380
+ cat2.toys = [catToys3];
381
+ expect(result.meta.filter).toStrictEqual({
382
+ 'toys.name': '$not:Stuffed Mouse',
383
+ });
384
+ expect(result.data).toStrictEqual([cat1, cat2]);
385
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.toys.name=$not:Stuffed Mouse');
386
+ });
387
+ it('should return result based on where config and filter on one-to-one relation', async () => {
388
+ const config = {
389
+ relations: ['cat'],
390
+ sortableColumns: ['id', 'name'],
391
+ filterableColumns: {
392
+ 'cat.name': [index_1.FilterOperator.NOT],
393
+ },
394
+ };
395
+ const query = {
396
+ path: '',
397
+ filter: {
398
+ 'cat.name': '$not:Garfield',
399
+ },
400
+ };
401
+ const result = await (0, index_1.paginate)(query, catHomeRepo, config);
402
+ expect(result.meta.filter).toStrictEqual({
403
+ 'cat.name': '$not:Garfield',
404
+ });
405
+ expect(result.data).toStrictEqual([catHomes[0]]);
406
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.name=$not:Garfield');
407
+ });
253
408
  it('should return result based on where array and filter', async () => {
254
409
  const config = {
255
410
  sortableColumns: ['id'],
@@ -262,7 +417,7 @@ describe('paginate', () => {
262
417
  },
263
418
  ],
264
419
  filterableColumns: {
265
- name: [paginate_1.FilterOperator.NOT],
420
+ name: [index_1.FilterOperator.NOT],
266
421
  },
267
422
  };
268
423
  const query = {
@@ -271,7 +426,7 @@ describe('paginate', () => {
271
426
  name: '$not:Leche',
272
427
  },
273
428
  };
274
- const result = await (0, paginate_1.paginate)(query, repo, config);
429
+ const result = await (0, index_1.paginate)(query, catRepo, config);
275
430
  expect(result.meta.filter).toStrictEqual({
276
431
  name: '$not:Leche',
277
432
  });
@@ -282,8 +437,8 @@ describe('paginate', () => {
282
437
  const config = {
283
438
  sortableColumns: ['id'],
284
439
  filterableColumns: {
285
- name: [paginate_1.FilterOperator.NOT],
286
- color: [paginate_1.FilterOperator.EQ],
440
+ name: [index_1.FilterOperator.NOT],
441
+ color: [index_1.FilterOperator.EQ],
287
442
  },
288
443
  };
289
444
  const query = {
@@ -293,7 +448,7 @@ describe('paginate', () => {
293
448
  color: 'white',
294
449
  },
295
450
  };
296
- const result = await (0, paginate_1.paginate)(query, repo, config);
451
+ const result = await (0, index_1.paginate)(query, catRepo, config);
297
452
  expect(result.meta.filter).toStrictEqual({
298
453
  name: '$not:Leche',
299
454
  color: 'white',
@@ -306,7 +461,7 @@ describe('paginate', () => {
306
461
  sortableColumns: ['id'],
307
462
  searchableColumns: ['name', 'color'],
308
463
  filterableColumns: {
309
- id: [paginate_1.FilterOperator.NOT, paginate_1.FilterOperator.IN],
464
+ id: [index_1.FilterOperator.NOT, index_1.FilterOperator.IN],
310
465
  },
311
466
  };
312
467
  const query = {
@@ -316,7 +471,7 @@ describe('paginate', () => {
316
471
  id: '$not:$in:1,2,5',
317
472
  },
318
473
  };
319
- const result = await (0, paginate_1.paginate)(query, repo, config);
474
+ const result = await (0, index_1.paginate)(query, catRepo, config);
320
475
  expect(result.meta.search).toStrictEqual('white');
321
476
  expect(result.meta.filter).toStrictEqual({ id: '$not:$in:1,2,5' });
322
477
  expect(result.data).toStrictEqual([cats[3]]);
@@ -329,7 +484,7 @@ describe('paginate', () => {
329
484
  color: (0, typeorm_1.In)(['black', 'white']),
330
485
  },
331
486
  filterableColumns: {
332
- id: [paginate_1.FilterOperator.NOT, paginate_1.FilterOperator.IN],
487
+ id: [index_1.FilterOperator.NOT, index_1.FilterOperator.IN],
333
488
  },
334
489
  };
335
490
  const query = {
@@ -338,7 +493,7 @@ describe('paginate', () => {
338
493
  id: '$not:$in:1,2,5',
339
494
  },
340
495
  };
341
- const result = await (0, paginate_1.paginate)(query, repo, config);
496
+ const result = await (0, index_1.paginate)(query, catRepo, config);
342
497
  expect(result.data).toStrictEqual([cats[2], cats[3]]);
343
498
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.id=$not:$in:1,2,5');
344
499
  });
@@ -346,7 +501,7 @@ describe('paginate', () => {
346
501
  const config = {
347
502
  sortableColumns: ['id'],
348
503
  filterableColumns: {
349
- age: [paginate_1.FilterOperator.GTE],
504
+ age: [index_1.FilterOperator.GTE],
350
505
  },
351
506
  };
352
507
  const query = {
@@ -355,7 +510,7 @@ describe('paginate', () => {
355
510
  age: '$gte:4',
356
511
  },
357
512
  };
358
- const result = await (0, paginate_1.paginate)(query, repo, config);
513
+ const result = await (0, index_1.paginate)(query, catRepo, config);
359
514
  expect(result.data).toStrictEqual([cats[0], cats[1], cats[2]]);
360
515
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.age=$gte:4');
361
516
  });
@@ -363,7 +518,7 @@ describe('paginate', () => {
363
518
  const config = {
364
519
  sortableColumns: ['id'],
365
520
  filterableColumns: {
366
- age: [paginate_1.FilterOperator.BTW],
521
+ age: [index_1.FilterOperator.BTW],
367
522
  },
368
523
  };
369
524
  const query = {
@@ -372,7 +527,7 @@ describe('paginate', () => {
372
527
  age: '$btw:4,5',
373
528
  },
374
529
  };
375
- const result = await (0, paginate_1.paginate)(query, repo, config);
530
+ const result = await (0, index_1.paginate)(query, catRepo, config);
376
531
  expect(result.data).toStrictEqual([cats[1], cats[2]]);
377
532
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.age=$btw:4,5');
378
533
  });
@@ -380,7 +535,7 @@ describe('paginate', () => {
380
535
  const config = {
381
536
  sortableColumns: ['id'],
382
537
  filterableColumns: {
383
- age: [paginate_1.FilterOperator.NULL],
538
+ age: [index_1.FilterOperator.NULL],
384
539
  },
385
540
  };
386
541
  const query = {
@@ -389,7 +544,7 @@ describe('paginate', () => {
389
544
  age: '$null',
390
545
  },
391
546
  };
392
- const result = await (0, paginate_1.paginate)(query, repo, config);
547
+ const result = await (0, index_1.paginate)(query, catRepo, config);
393
548
  expect(result.data).toStrictEqual([cats[4]]);
394
549
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.age=$null');
395
550
  });
@@ -397,7 +552,7 @@ describe('paginate', () => {
397
552
  const config = {
398
553
  sortableColumns: ['id'],
399
554
  filterableColumns: {
400
- age: [paginate_1.FilterOperator.NOT, paginate_1.FilterOperator.NULL],
555
+ age: [index_1.FilterOperator.NOT, index_1.FilterOperator.NULL],
401
556
  },
402
557
  };
403
558
  const query = {
@@ -406,7 +561,7 @@ describe('paginate', () => {
406
561
  age: '$not:$null',
407
562
  },
408
563
  };
409
- const result = await (0, paginate_1.paginate)(query, repo, config);
564
+ const result = await (0, index_1.paginate)(query, catRepo, config);
410
565
  expect(result.data).toStrictEqual([cats[0], cats[1], cats[2], cats[3]]);
411
566
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.age=$not:$null');
412
567
  });
@@ -414,7 +569,7 @@ describe('paginate', () => {
414
569
  const config = {
415
570
  sortableColumns: ['id'],
416
571
  filterableColumns: {
417
- name: [paginate_1.FilterOperator.NOT, paginate_1.FilterOperator.NULL],
572
+ name: [index_1.FilterOperator.NOT, index_1.FilterOperator.NULL],
418
573
  },
419
574
  };
420
575
  const query = {
@@ -423,7 +578,7 @@ describe('paginate', () => {
423
578
  age: '$not:$null',
424
579
  },
425
580
  };
426
- const result = await (0, paginate_1.paginate)(query, repo, config);
581
+ const result = await (0, index_1.paginate)(query, catRepo, config);
427
582
  expect(result.data).toStrictEqual(cats);
428
583
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.age=$not:$null');
429
584
  });
@@ -431,7 +586,7 @@ describe('paginate', () => {
431
586
  const config = {
432
587
  sortableColumns: ['id'],
433
588
  filterableColumns: {
434
- age: [paginate_1.FilterOperator.NOT],
589
+ age: [index_1.FilterOperator.NOT],
435
590
  },
436
591
  };
437
592
  const query = {
@@ -440,7 +595,7 @@ describe('paginate', () => {
440
595
  age: '$not:$null',
441
596
  },
442
597
  };
443
- const result = await (0, paginate_1.paginate)(query, repo, config);
598
+ const result = await (0, index_1.paginate)(query, catRepo, config);
444
599
  expect(result.data).toStrictEqual(cats);
445
600
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.age=$not:$null');
446
601
  });
@@ -452,7 +607,7 @@ describe('paginate', () => {
452
607
  path: '',
453
608
  };
454
609
  try {
455
- await (0, paginate_1.paginate)(query, repo, config);
610
+ await (0, index_1.paginate)(query, catRepo, config);
456
611
  }
457
612
  catch (err) {
458
613
  expect(err).toBeInstanceOf(common_1.HttpException);
@@ -470,7 +625,7 @@ describe('paginate', () => {
470
625
  { operator: '$not', result: true },
471
626
  { operator: '$fake', result: false },
472
627
  ])('should check operator "$operator" valid is $result', ({ operator, result }) => {
473
- expect((0, paginate_1.isOperator)(operator)).toStrictEqual(result);
628
+ expect((0, index_1.isOperator)(operator)).toStrictEqual(result);
474
629
  });
475
630
  it.each([
476
631
  { operator: '$eq', name: 'Equal' },
@@ -483,7 +638,7 @@ describe('paginate', () => {
483
638
  { operator: '$btw', name: 'Between' },
484
639
  { operator: '$not', name: 'Not' },
485
640
  ])('should get operator function $name for "$operator"', ({ operator, name }) => {
486
- const func = paginate_1.OperatorSymbolToFunction.get(operator);
641
+ const func = index_1.OperatorSymbolToFunction.get(operator);
487
642
  expect(func.name).toStrictEqual(name);
488
643
  });
489
644
  it.each([
@@ -500,7 +655,7 @@ describe('paginate', () => {
500
655
  { string: '', tokens: [null, '$eq', ''] },
501
656
  { string: '$eq:$not:$in:value', tokens: [] },
502
657
  ])('should get filter tokens for "$string"', ({ string, tokens }) => {
503
- expect((0, paginate_1.getFilterTokens)(string)).toStrictEqual(tokens);
658
+ expect((0, index_1.getFilterTokens)(string)).toStrictEqual(tokens);
504
659
  });
505
660
  });
506
661
  //# sourceMappingURL=paginate.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paginate.spec.js","sourceRoot":"","sources":["../../src/test/paginate.spec.ts"],"names":[],"mappings":"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"}