nestjs-paginate 4.9.3 → 4.11.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/README.md CHANGED
@@ -13,6 +13,7 @@ Pagination and filtering helper method for TypeORM repositories or query builder
13
13
  - Pagination conforms to [JSON:API](https://jsonapi.org/)
14
14
  - Sort by multiple columns
15
15
  - Search across columns
16
+ - Select columns
16
17
  - Filter using operators (`$eq`, `$not`, `$null`, `$in`, `$gt`, `$gte`, `$lt`, `$lte`, `$btw`, `$ilike`, `$sw`)
17
18
  - Include relations
18
19
  - Virtual column support
@@ -32,7 +33,7 @@ The following code exposes a route that can be utilized like so:
32
33
  #### Endpoint
33
34
 
34
35
  ```url
35
- http://localhost:3000/cats?limit=5&page=2&sortBy=color:DESC&search=i&filter.age=$gte:3
36
+ http://localhost:3000/cats?limit=5&page=2&sortBy=color:DESC&search=i&filter.age=$gte:3&select=id,name,color,age
36
37
  ```
37
38
 
38
39
  #### Result
@@ -0,0 +1,7 @@
1
+ import { CatHomeEntity } from './cat-home.entity';
2
+ export declare class CatHomePillowEntity {
3
+ id: number;
4
+ home: CatHomeEntity;
5
+ color: string;
6
+ createdAt: string;
7
+ }
@@ -0,0 +1,37 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CatHomePillowEntity = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const cat_home_entity_1 = require("./cat-home.entity");
15
+ let CatHomePillowEntity = class CatHomePillowEntity {
16
+ };
17
+ __decorate([
18
+ (0, typeorm_1.PrimaryGeneratedColumn)(),
19
+ __metadata("design:type", Number)
20
+ ], CatHomePillowEntity.prototype, "id", void 0);
21
+ __decorate([
22
+ (0, typeorm_1.ManyToOne)(() => cat_home_entity_1.CatHomeEntity, (home) => home.pillows),
23
+ __metadata("design:type", cat_home_entity_1.CatHomeEntity)
24
+ ], CatHomePillowEntity.prototype, "home", void 0);
25
+ __decorate([
26
+ (0, typeorm_1.Column)(),
27
+ __metadata("design:type", String)
28
+ ], CatHomePillowEntity.prototype, "color", void 0);
29
+ __decorate([
30
+ (0, typeorm_1.CreateDateColumn)(),
31
+ __metadata("design:type", String)
32
+ ], CatHomePillowEntity.prototype, "createdAt", void 0);
33
+ CatHomePillowEntity = __decorate([
34
+ (0, typeorm_1.Entity)()
35
+ ], CatHomePillowEntity);
36
+ exports.CatHomePillowEntity = CatHomePillowEntity;
37
+ //# sourceMappingURL=cat-home-pillow.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cat-home-pillow.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-home-pillow.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA6F;AAC7F,uDAAiD;AAG1C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAY/B,CAAA;AAXG;IAAC,IAAA,gCAAsB,GAAE;;+CACf;AAEV;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,+BAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;8BACjD,+BAAa;iDAAA;AAEnB;IAAC,IAAA,gBAAM,GAAE;;kDACI;AAEb;IAAC,IAAA,0BAAgB,GAAE;;sDACF;AAXR,mBAAmB;IAD/B,IAAA,gBAAM,GAAE;GACI,mBAAmB,CAY/B;AAZY,kDAAmB"}
@@ -1,8 +1,10 @@
1
1
  import { CatEntity } from './cat.entity';
2
+ import { CatHomePillowEntity } from './cat-home-pillow.entity';
2
3
  export declare class CatHomeEntity {
3
4
  id: number;
4
5
  name: string;
5
6
  cat: CatEntity;
7
+ pillows: CatHomePillowEntity[];
6
8
  createdAt: string;
7
9
  countCat: number;
8
10
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CatHomeEntity = void 0;
13
13
  const typeorm_1 = require("typeorm");
14
14
  const cat_entity_1 = require("./cat.entity");
15
+ const cat_home_pillow_entity_1 = require("./cat-home-pillow.entity");
15
16
  let CatHomeEntity = class CatHomeEntity {
16
17
  };
17
18
  __decorate([
@@ -26,6 +27,10 @@ __decorate([
26
27
  (0, typeorm_1.OneToOne)(() => cat_entity_1.CatEntity, (cat) => cat.home),
27
28
  __metadata("design:type", cat_entity_1.CatEntity)
28
29
  ], CatHomeEntity.prototype, "cat", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.OneToMany)(() => cat_home_pillow_entity_1.CatHomePillowEntity, (pillow) => pillow.home),
32
+ __metadata("design:type", Array)
33
+ ], CatHomeEntity.prototype, "pillows", void 0);
29
34
  __decorate([
30
35
  (0, typeorm_1.CreateDateColumn)(),
31
36
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"cat-home.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-home.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA2G;AAC3G,6CAAwC;AAGjC,IAAM,aAAa,GAAnB,MAAM,aAAa;CAiBzB,CAAA;AAhBG;IAAC,IAAA,gCAAsB,GAAE;;yCACf;AAEV;IAAC,IAAA,gBAAM,GAAE;;2CACG;AAEZ;IAAC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,sBAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;8BACxC,sBAAS;0CAAA;AAEd;IAAC,IAAA,0BAAgB,GAAE;;gDACF;AAEjB;IAAC,IAAA,uBAAa,EAAC;QACX,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,mEAAmE,KAAK,KAAK;KAClG,CAAC;;+CACc;AAhBP,aAAa;IADzB,IAAA,gBAAM,GAAE;GACI,aAAa,CAiBzB;AAjBY,sCAAa"}
1
+ {"version":3,"file":"cat-home.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-home.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAsH;AACtH,6CAAwC;AACxC,qEAA8D;AAGvD,IAAM,aAAa,GAAnB,MAAM,aAAa;CAoBzB,CAAA;AAnBG;IAAC,IAAA,gCAAsB,GAAE;;yCACf;AAEV;IAAC,IAAA,gBAAM,GAAE;;2CACG;AAEZ;IAAC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,sBAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;8BACxC,sBAAS;0CAAA;AAEd;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,4CAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;;8CAChC;AAE9B;IAAC,IAAA,0BAAgB,GAAE;;gDACF;AAEjB;IAAC,IAAA,uBAAa,EAAC;QACX,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,mEAAmE,KAAK,KAAK;KAClG,CAAC;;+CACc;AAnBP,aAAa;IADzB,IAAA,gBAAM,GAAE;GACI,aAAa,CAoBzB;AApBY,sCAAa"}
@@ -7,6 +7,7 @@ export interface PaginateQuery {
7
7
  filter?: {
8
8
  [column: string]: string | string[];
9
9
  };
10
+ select?: string[];
10
11
  path: string;
11
12
  }
12
13
  export declare const Paginate: (...dataOrPipes: unknown[]) => ParameterDecorator;
package/lib/decorator.js CHANGED
@@ -3,6 +3,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Paginate = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const lodash_1 = require("lodash");
6
+ const singleSplit = (param, res) => res.push(param);
7
+ const multipleSplit = (param, res) => {
8
+ const items = param.split(':');
9
+ if (items.length === 2) {
10
+ res.push(items);
11
+ }
12
+ };
13
+ const multipleAndCommaSplit = (param, res) => {
14
+ const set = new Set(param.split(','));
15
+ set.forEach((item) => res.push(item));
16
+ };
17
+ function parseParam(queryParam, parserLogic) {
18
+ const res = [];
19
+ if (queryParam) {
20
+ const params = !Array.isArray(queryParam) ? [queryParam] : queryParam;
21
+ for (const param of params) {
22
+ if ((0, lodash_1.isString)(param)) {
23
+ parserLogic(param, res);
24
+ }
25
+ }
26
+ }
27
+ return res.length ? res : undefined;
28
+ }
6
29
  exports.Paginate = (0, common_1.createParamDecorator)((_data, ctx) => {
7
30
  const request = ctx.switchToHttp().getRequest();
8
31
  const { query } = request;
@@ -16,36 +39,19 @@ exports.Paginate = (0, common_1.createParamDecorator)((_data, ctx) => {
16
39
  }
17
40
  const urlParts = new URL(originalUrl);
18
41
  const path = urlParts.protocol + '//' + urlParts.host + urlParts.pathname;
19
- const sortBy = [];
20
- const searchBy = [];
21
- if (query.sortBy) {
22
- const params = !Array.isArray(query.sortBy) ? [query.sortBy] : query.sortBy;
23
- for (const param of params) {
24
- if ((0, lodash_1.isString)(param)) {
25
- const items = param.split(':');
26
- if (items.length === 2) {
27
- sortBy.push(items);
28
- }
29
- }
30
- }
31
- }
32
- if (query.searchBy) {
33
- const params = !Array.isArray(query.searchBy) ? [query.searchBy] : query.searchBy;
34
- for (const param of params) {
35
- if ((0, lodash_1.isString)(param)) {
36
- searchBy.push(param);
37
- }
38
- }
39
- }
42
+ const searchBy = parseParam(query.searchBy, singleSplit);
43
+ const sortBy = parseParam(query.sortBy, multipleSplit);
44
+ const select = parseParam(query.select, multipleAndCommaSplit);
40
45
  const filter = (0, lodash_1.mapKeys)((0, lodash_1.pickBy)(query, (param, name) => name.includes('filter.') &&
41
46
  ((0, lodash_1.isString)(param) || (Array.isArray(param) && param.every((p) => (0, lodash_1.isString)(p))))), (_param, name) => name.replace('filter.', ''));
42
47
  return {
43
48
  page: query.page ? parseInt(query.page.toString(), 10) : undefined,
44
49
  limit: query.limit ? parseInt(query.limit.toString(), 10) : undefined,
45
- sortBy: sortBy.length ? sortBy : undefined,
50
+ sortBy,
46
51
  search: query.search ? query.search.toString() : undefined,
47
- searchBy: searchBy.length ? searchBy : undefined,
52
+ searchBy,
48
53
  filter: Object.keys(filter).length ? filter : undefined,
54
+ select,
49
55
  path,
50
56
  };
51
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AAEvE,mCAA8D;AAYjD,QAAA,QAAQ,GAAG,IAAA,6BAAoB,EAAC,CAAC,KAAc,EAAE,GAAqB,EAAiB,EAAE;IAClG,MAAM,OAAO,GAAY,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAA;IACxD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAEzB,6GAA6G;IAC7G,IAAI,WAAW,CAAA;IACf,IAAI,OAAO,CAAC,WAAW,EAAE;QACrB,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAA;KACrF;SAAM;QACH,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAA;KAC1E;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAA;IAEzE,MAAM,MAAM,GAAuB,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,IAAI,KAAK,CAAC,MAAM,EAAE;QACd,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAC3E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;gBACjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpB,MAAM,CAAC,IAAI,CAAC,KAAyB,CAAC,CAAA;iBACzC;aACJ;SACJ;KACJ;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE;QAChB,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;QACjF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;gBACjB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACvB;SACJ;KACJ;IAED,MAAM,MAAM,GAAG,IAAA,gBAAO,EAClB,IAAA,eAAM,EACF,KAAK,EACL,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACZ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxB,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAK,KAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/D,EAClC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAChD,CAAA;IAED,OAAO;QACH,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACrE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QAC1D,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAChD,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvD,IAAI;KACP,CAAA;AACL,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,7 @@ describe('Decorator', () => {
68
68
  search: undefined,
69
69
  searchBy: undefined,
70
70
  filter: undefined,
71
+ select: undefined,
71
72
  path: 'http://localhost/items',
72
73
  });
73
74
  });
@@ -81,6 +82,7 @@ describe('Decorator', () => {
81
82
  search: undefined,
82
83
  searchBy: undefined,
83
84
  filter: undefined,
85
+ select: undefined,
84
86
  path: 'http://localhost/items',
85
87
  });
86
88
  });
@@ -92,6 +94,7 @@ describe('Decorator', () => {
92
94
  search: 'white',
93
95
  'filter.name': '$not:$eq:Kitty',
94
96
  'filter.createdAt': ['$gte:2020-01-01', '$lte:2020-12-31'],
97
+ select: ['name', 'createdAt'],
95
98
  });
96
99
  const result = decoratorfactory(null, context);
97
100
  expect(result).toStrictEqual({
@@ -103,6 +106,7 @@ describe('Decorator', () => {
103
106
  ],
104
107
  search: 'white',
105
108
  searchBy: undefined,
109
+ select: ['name', 'createdAt'],
106
110
  path: 'http://localhost/items',
107
111
  filter: {
108
112
  name: '$not:$eq:Kitty',
@@ -118,6 +122,7 @@ describe('Decorator', () => {
118
122
  search: 'white',
119
123
  'filter.name': '$not:$eq:Kitty',
120
124
  'filter.createdAt': ['$gte:2020-01-01', '$lte:2020-12-31'],
125
+ select: ['name', 'createdAt'],
121
126
  });
122
127
  const result = decoratorfactory(null, context);
123
128
  expect(result).toStrictEqual({
@@ -134,6 +139,7 @@ describe('Decorator', () => {
134
139
  name: '$not:$eq:Kitty',
135
140
  createdAt: ['$gte:2020-01-01', '$lte:2020-12-31'],
136
141
  },
142
+ select: ['name', 'createdAt'],
137
143
  });
138
144
  });
139
145
  });
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.spec.js","sourceRoot":"","sources":["../src/decorator.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorator.spec.js","sourceRoot":"","sources":["../src/decorator.spec.ts"],"names":[],"mappings":"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"}
package/lib/filter.js CHANGED
@@ -47,9 +47,9 @@ function addWhereCondition(qb, column, filter) {
47
47
  const { isVirtualProperty, query: virtualQuery } = (0, helper_1.extractVirtualProperty)(qb, columnProperties);
48
48
  const isRelation = (0, helper_1.checkIsRelation)(qb, columnProperties.propertyPath);
49
49
  const isEmbedded = (0, helper_1.checkIsEmbedded)(qb, columnProperties.propertyPath);
50
+ const alias = (0, helper_1.fixColumnAlias)(columnProperties, qb.alias, isRelation, isVirtualProperty, isEmbedded, virtualQuery);
50
51
  filter[column].forEach((columnFilter, index) => {
51
52
  const columnNamePerIteration = `${column}${index}`;
52
- const alias = (0, helper_1.fixColumnAlias)(columnProperties, qb.alias, isRelation, isVirtualProperty, isEmbedded, virtualQuery);
53
53
  const condition = generatePredicateCondition(qb, column, columnFilter, alias, isVirtualProperty);
54
54
  const parameters = fixQueryParam(alias, columnNamePerIteration, columnFilter, condition, {
55
55
  [columnNamePerIteration]: columnFilter.findOperator.value,
package/lib/filter.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
package/lib/paginate.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Repository, SelectQueryBuilder, FindOptionsWhere, ObjectLiteral } from 'typeorm';
1
+ import { Repository, SelectQueryBuilder, FindOptionsWhere, FindOptionsRelations, ObjectLiteral } from 'typeorm';
2
2
  import { PaginateQuery } from './decorator';
3
3
  import { Column, RelationColumn, SortBy } from './helper';
4
4
  import { FilterOperator, FilterSuffix } from './operator';
@@ -25,7 +25,7 @@ export declare class Paginated<T> {
25
25
  };
26
26
  }
27
27
  export interface PaginateConfig<T> {
28
- relations?: RelationColumn<T>[];
28
+ relations?: FindOptionsRelations<T> | RelationColumn<T>[];
29
29
  sortableColumns: Column<T>[];
30
30
  nullSort?: 'first' | 'last';
31
31
  searchableColumns?: Column<T>[];
package/lib/paginate.js CHANGED
@@ -15,7 +15,6 @@ exports.DEFAULT_MAX_LIMIT = 100;
15
15
  exports.DEFAULT_LIMIT = 20;
16
16
  exports.NO_PAGINATION = 0;
17
17
  async function paginate(query, repo, config) {
18
- var _a, _b;
19
18
  const page = (0, helper_1.positiveNumberOrDefault)(query.page, 1, 1);
20
19
  const defaultLimit = config.defaultLimit || exports.DEFAULT_LIMIT;
21
20
  const maxLimit = (0, helper_1.positiveNumberOrDefault)(config.maxLimit, exports.DEFAULT_MAX_LIMIT);
@@ -75,7 +74,7 @@ async function paginate(query, repo, config) {
75
74
  }
76
75
  }
77
76
  let [items, totalItems] = [[], 0];
78
- const queryBuilder = repo instanceof typeorm_1.Repository ? repo.createQueryBuilder('e') : repo;
77
+ const queryBuilder = repo instanceof typeorm_1.Repository ? repo.createQueryBuilder('__root') : repo;
79
78
  if (isPaginated) {
80
79
  // Switch from take and skip to limit and offset
81
80
  // due to this problem https://github.com/typeorm/typeorm/issues/5670
@@ -83,10 +82,27 @@ async function paginate(query, repo, config) {
83
82
  // queryBuilder.limit(limit).offset((page - 1) * limit)
84
83
  queryBuilder.take(limit).skip((page - 1) * limit);
85
84
  }
86
- if ((_a = config.relations) === null || _a === void 0 ? void 0 : _a.length) {
87
- config.relations.forEach((relation) => {
88
- queryBuilder.leftJoinAndSelect(`${queryBuilder.alias}.${relation}`, `${queryBuilder.alias}_${relation}`);
89
- });
85
+ if (config.relations) {
86
+ // relations: ["relation"]
87
+ if (Array.isArray(config.relations)) {
88
+ config.relations.forEach((relation) => {
89
+ queryBuilder.leftJoinAndSelect(`${queryBuilder.alias}.${relation}`, `${queryBuilder.alias}_${relation}`);
90
+ });
91
+ }
92
+ else {
93
+ // relations: {relation:true}
94
+ const createQueryBuilderRelations = (prefix, relations, alias) => {
95
+ Object.keys(relations).forEach((relationName) => {
96
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
97
+ const relationSchema = relations[relationName];
98
+ queryBuilder.leftJoinAndSelect(`${alias !== null && alias !== void 0 ? alias : prefix}.${relationName}`, `${alias !== null && alias !== void 0 ? alias : prefix}_${relationName}`);
99
+ if (typeof relationSchema === 'object') {
100
+ createQueryBuilderRelations(relationName, relationSchema, `${prefix}_${relationName}`);
101
+ }
102
+ });
103
+ };
104
+ createQueryBuilderRelations(queryBuilder.alias, config.relations);
105
+ }
90
106
  }
91
107
  let nullSort = undefined;
92
108
  if (config.nullSort) {
@@ -100,15 +116,21 @@ async function paginate(query, repo, config) {
100
116
  const alias = (0, helper_1.fixColumnAlias)(columnProperties, queryBuilder.alias, isRelation, isVirtualProperty, isEmbeded);
101
117
  queryBuilder.addOrderBy(alias, order[1], nullSort);
102
118
  }
103
- if (((_b = config.select) === null || _b === void 0 ? void 0 : _b.length) > 0) {
104
- const mappedSelect = config.select.map((col) => {
105
- if (col.includes('.')) {
106
- const [rel, relCol] = col.split('.');
107
- return `${queryBuilder.alias}_${rel}.${relCol}`;
119
+ // When we partial select the columns (main or relation) we must add the primary key column otherwise
120
+ // typeorm will not be able to map the result TODO: write it in the docs
121
+ const selectParams = config.select || query.select;
122
+ if ((selectParams === null || selectParams === void 0 ? void 0 : selectParams.length) > 0) {
123
+ const cols = selectParams.reduce((cols, currentCol) => {
124
+ var _a, _b;
125
+ if ((_b = (_a = query.select) === null || _a === void 0 ? void 0 : _a.includes(currentCol)) !== null && _b !== void 0 ? _b : true) {
126
+ const columnProperties = (0, helper_1.getPropertiesByColumnName)(currentCol);
127
+ const isRelation = (0, helper_1.checkIsRelation)(queryBuilder, columnProperties.propertyPath);
128
+ // here we can avoid to manually fix and add the query of virtual columns
129
+ cols.push((0, helper_1.fixColumnAlias)(columnProperties, queryBuilder.alias, isRelation));
108
130
  }
109
- return `${queryBuilder.alias}.${col}`;
110
- });
111
- queryBuilder.select(mappedSelect);
131
+ return cols;
132
+ }, []);
133
+ queryBuilder.select(cols);
112
134
  }
113
135
  if (config.where) {
114
136
  queryBuilder.andWhere(new typeorm_1.Brackets((qb) => qb.andWhere(config.where)));
@@ -1 +1 @@
1
- {"version":3,"file":"paginate.js","sourceRoot":"","sources":["../src/paginate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paginate.js","sourceRoot":"","sources":["../src/paginate.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ const common_1 = require("@nestjs/common");
6
6
  const cat_entity_1 = require("./__tests__/cat.entity");
7
7
  const cat_toy_entity_1 = require("./__tests__/cat-toy.entity");
8
8
  const cat_home_entity_1 = require("./__tests__/cat-home.entity");
9
+ const cat_home_pillow_entity_1 = require("./__tests__/cat-home-pillow.entity");
9
10
  const lodash_1 = require("lodash");
10
11
  const operator_1 = require("./operator");
11
12
  const filter_1 = require("./filter");
@@ -14,21 +15,24 @@ describe('paginate', () => {
14
15
  let catRepo;
15
16
  let catToyRepo;
16
17
  let catHomeRepo;
18
+ let catHomePillowRepo;
17
19
  let cats;
18
20
  let catToys;
19
21
  let catHomes;
22
+ let catHomePillows;
20
23
  beforeAll(async () => {
21
24
  dataSource = new typeorm_1.DataSource({
22
25
  type: 'sqlite',
23
26
  database: ':memory:',
24
27
  synchronize: true,
25
28
  logging: false,
26
- entities: [cat_entity_1.CatEntity, cat_toy_entity_1.CatToyEntity, cat_home_entity_1.CatHomeEntity],
29
+ entities: [cat_entity_1.CatEntity, cat_toy_entity_1.CatToyEntity, cat_home_entity_1.CatHomeEntity, cat_home_pillow_entity_1.CatHomePillowEntity],
27
30
  });
28
31
  await dataSource.initialize();
29
32
  catRepo = dataSource.getRepository(cat_entity_1.CatEntity);
30
33
  catToyRepo = dataSource.getRepository(cat_toy_entity_1.CatToyEntity);
31
34
  catHomeRepo = dataSource.getRepository(cat_home_entity_1.CatHomeEntity);
35
+ catHomePillowRepo = dataSource.getRepository(cat_home_pillow_entity_1.CatHomePillowEntity);
32
36
  cats = await catRepo.save([
33
37
  catRepo.create({ name: 'Milo', color: 'brown', age: 6, size: { height: 25, width: 10, length: 40 } }),
34
38
  catRepo.create({ name: 'Garfield', color: 'ginger', age: 5, size: { height: 30, width: 15, length: 45 } }),
@@ -46,6 +50,14 @@ describe('paginate', () => {
46
50
  catHomeRepo.create({ name: 'Box', cat: cats[0] }),
47
51
  catHomeRepo.create({ name: 'House', cat: cats[1] }),
48
52
  ]);
53
+ catHomePillows = await catHomePillowRepo.save([
54
+ catHomePillowRepo.create({ color: 'red', home: catHomes[0] }),
55
+ catHomePillowRepo.create({ color: 'yellow', home: catHomes[0] }),
56
+ catHomePillowRepo.create({ color: 'blue', home: catHomes[0] }),
57
+ catHomePillowRepo.create({ color: 'pink', home: catHomes[1] }),
58
+ catHomePillowRepo.create({ color: 'purple', home: catHomes[1] }),
59
+ catHomePillowRepo.create({ color: 'teal', home: catHomes[1] }),
60
+ ]);
49
61
  // add friends to Milo
50
62
  catRepo.save(Object.assign(Object.assign({}, cats[0]), { friends: cats.slice(1) }));
51
63
  });
@@ -457,6 +469,49 @@ describe('paginate', () => {
457
469
  expect(result.data).toStrictEqual([catHomesClone]);
458
470
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=Garfield');
459
471
  });
472
+ it('should load nested relations', async () => {
473
+ const config = {
474
+ relations: { home: { pillows: true } },
475
+ sortableColumns: ['id', 'name'],
476
+ searchableColumns: ['name'],
477
+ };
478
+ const query = {
479
+ path: '',
480
+ search: 'Garfield',
481
+ };
482
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
483
+ const cat = (0, lodash_1.clone)(cats[1]);
484
+ const catHomesClone = (0, lodash_1.clone)(catHomes[1]);
485
+ const catHomePillowsClone3 = (0, lodash_1.clone)(catHomePillows[3]);
486
+ delete catHomePillowsClone3.home;
487
+ const catHomePillowsClone4 = (0, lodash_1.clone)(catHomePillows[4]);
488
+ delete catHomePillowsClone4.home;
489
+ const catHomePillowsClone5 = (0, lodash_1.clone)(catHomePillows[5]);
490
+ delete catHomePillowsClone5.home;
491
+ catHomesClone.countCat = cats.filter((cat) => cat.id === catHomesClone.cat.id).length;
492
+ catHomesClone.pillows = [catHomePillowsClone3, catHomePillowsClone4, catHomePillowsClone5];
493
+ cat.home = catHomesClone;
494
+ delete cat.home.cat;
495
+ expect(result.meta.search).toStrictEqual('Garfield');
496
+ expect(result.data).toStrictEqual([cat]);
497
+ expect(result.data[0].home).toBeDefined();
498
+ expect(result.data[0].home.pillows).toStrictEqual(cat.home.pillows);
499
+ });
500
+ it('should throw an error when nonexistent relation loaded', async () => {
501
+ const config = {
502
+ relations: ['homee'],
503
+ sortableColumns: ['id'],
504
+ };
505
+ const query = {
506
+ path: '',
507
+ };
508
+ try {
509
+ await (0, paginate_1.paginate)(query, catRepo, config);
510
+ }
511
+ catch (err) {
512
+ expect(err).toBeInstanceOf(typeorm_1.TypeORMError);
513
+ }
514
+ });
460
515
  it('should return result based on search term and searchBy columns', async () => {
461
516
  const config = {
462
517
  sortableColumns: ['id', 'name', 'color'],
@@ -1585,6 +1640,33 @@ describe('paginate', () => {
1585
1640
  });
1586
1641
  });
1587
1642
  });
1643
+ it('should return selected columns', async () => {
1644
+ const config = {
1645
+ sortableColumns: ['id', 'name'],
1646
+ select: ['id', 'name', 'toys.name', 'toys.size.height', 'toys.size.length'],
1647
+ relations: ['toys'],
1648
+ };
1649
+ const query = {
1650
+ path: '',
1651
+ select: ['id', 'toys.size.height'],
1652
+ };
1653
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
1654
+ result.data.forEach((cat) => {
1655
+ expect(cat.id).toBeDefined();
1656
+ expect(cat.name).not.toBeDefined();
1657
+ });
1658
+ result.data.forEach((cat) => {
1659
+ if (cat.id === 1 || cat.id === 2) {
1660
+ const toy = cat.toys[0];
1661
+ expect(toy.name).not.toBeDefined();
1662
+ expect(toy.id).not.toBeDefined();
1663
+ expect(toy.size.height).toBeDefined();
1664
+ }
1665
+ else {
1666
+ expect(cat.toys).toHaveLength(0);
1667
+ }
1668
+ });
1669
+ });
1588
1670
  it('should return the right amount of results if a many to many relation is involved', async () => {
1589
1671
  const config = {
1590
1672
  sortableColumns: ['id'],