nestjs-paginate 8.6.2 → 9.0.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
@@ -205,7 +205,7 @@ const paginateConfig: PaginateConfig<CatEntity> {
205
205
  * Type: number
206
206
  * Default: 100
207
207
  * Description: The maximum amount of entities to return per page.
208
- * Set it to 0, in conjunction with limit=0 on query param, to disable pagination.
208
+ * Set it to -1, in conjunction with limit=-1 on query param, to disable pagination.
209
209
  */
210
210
  maxLimit: 20,
211
211
 
@@ -1,5 +1,5 @@
1
- import { CatEntity } from './cat.entity';
2
1
  import { CatHomePillowEntity } from './cat-home-pillow.entity';
2
+ import { CatEntity } from './cat.entity';
3
3
  export declare class CatHomeEntity {
4
4
  id: number;
5
5
  name: string;
@@ -11,8 +11,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CatHomeEntity = void 0;
13
13
  const typeorm_1 = require("typeorm");
14
- const cat_entity_1 = require("./cat.entity");
15
14
  const cat_home_pillow_entity_1 = require("./cat-home-pillow.entity");
15
+ const cat_entity_1 = require("./cat.entity");
16
16
  let CatHomeEntity = class CatHomeEntity {
17
17
  };
18
18
  exports.CatHomeEntity = CatHomeEntity;
@@ -38,7 +38,10 @@ __decorate([
38
38
  ], CatHomeEntity.prototype, "createdAt", void 0);
39
39
  __decorate([
40
40
  (0, typeorm_1.VirtualColumn)({
41
- query: (alias) => `SELECT CAST(COUNT(*) AS INT) FROM "cat" WHERE "cat"."homeId" = ${alias}.id`,
41
+ query: (alias) => {
42
+ const tck = process.env.DB === 'mariadb' ? '`' : '"';
43
+ return `SELECT CAST(COUNT(*) AS INT) FROM ${tck}cat${tck} WHERE ${tck}cat${tck}.${tck}homeId${tck} = ${alias}.id`;
44
+ },
42
45
  }),
43
46
  __metadata("design:type", Number)
44
47
  ], CatHomeEntity.prototype, "countCat", void 0);
@@ -1 +1 @@
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;AApBY,sCAAa;AAEtB;IADC,IAAA,gCAAsB,GAAE;;yCACf;AAGV;IADC,IAAA,gBAAM,GAAE;;2CACG;AAGZ;IADC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,sBAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;8BACxC,sBAAS;0CAAA;AAGd;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,4CAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;;8CAChC;AAG9B;IADC,IAAA,0BAAgB,GAAE;;gDACF;AAKjB;IAHC,IAAA,uBAAa,EAAC;QACX,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,mEAAmE,KAAK,KAAK;KAClG,CAAC;;+CACc;wBAnBP,aAAa;IADzB,IAAA,gBAAM,GAAE;GACI,aAAa,CAoBzB"}
1
+ {"version":3,"file":"cat-home.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-home.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAsH;AACtH,qEAA8D;AAC9D,6CAAwC;AAGjC,IAAM,aAAa,GAAnB,MAAM,aAAa;CAuBzB,CAAA;AAvBY,sCAAa;AAEtB;IADC,IAAA,gCAAsB,GAAE;;yCACf;AAGV;IADC,IAAA,gBAAM,GAAE;;2CACG;AAGZ;IADC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,sBAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;8BACxC,sBAAS;0CAAA;AAGd;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,4CAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;;8CAChC;AAG9B;IADC,IAAA,0BAAgB,GAAE;;gDACF;AAQjB;IANC,IAAA,uBAAa,EAAC;QACX,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;YACpD,OAAO,qCAAqC,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,KAAK,KAAK,CAAA;QACrH,CAAC;KACJ,CAAC;;+CACc;wBAtBP,aAAa;IADzB,IAAA,gBAAM,GAAE;GACI,aAAa,CAuBzB"}
package/lib/helper.d.ts CHANGED
@@ -1,11 +1,35 @@
1
1
  import { SelectQueryBuilder } from 'typeorm';
2
2
  import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata';
3
+ /**
4
+ * Joins 2 keys as `K`, `K.P`, `K.(P` or `K.P)`
5
+ * The parenthesis notation is included for embedded columns
6
+ */
3
7
  type Join<K, P> = K extends string ? P extends string ? `${K}${'' extends P ? '' : '.'}${P | `(${P}` | `${P})`}` : never : never;
8
+ /**
9
+ * Get the previous number between 0 and 10. Examples:
10
+ * Prev[3] = 2
11
+ * Prev[0] = never.
12
+ * Prev[20] = 0
13
+ */
4
14
  type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...0[]];
15
+ /**
16
+ * Unwrap Promise<T> to T
17
+ */
5
18
  type UnwrapPromise<T> = T extends Promise<infer U> ? UnwrapPromise<U> : T;
19
+ /**
20
+ * Unwrap Array<T> to T
21
+ */
6
22
  type UnwrapArray<T> = T extends Array<infer U> ? UnwrapArray<U> : T;
23
+ /**
24
+ * Find all the dotted path properties for a given column.
25
+ *
26
+ * T: The column
27
+ * D: max depth
28
+ */
7
29
  export type Column<T, D extends number = 2> = [D] extends [never] ? never : T extends Record<string, any> ? {
8
- [K in keyof T]-?: K extends string ? T[K] extends Date ? `${K}` : T[K] extends Array<infer U> ? `${K}` | Join<K, Column<UnwrapArray<U>, Prev[D]>> : T[K] extends Promise<infer U> ? U extends Array<infer V> ? `${K}` | Join<K, Column<UnwrapArray<V>, Prev[D]>> : `${K}` | Join<K, Column<UnwrapPromise<U>, Prev[D]>> : `${K}` | Join<K, Column<T[K], Prev[D]>> : never;
30
+ [K in keyof T]-?: K extends string ? T[K] extends string | number ? `${K}` : T[K] extends Date ? `${K}` : T[K] extends Array<infer U> ? // yes, unwrap it, and recurse deeper
31
+ `${K}` | Join<K, Column<UnwrapArray<U>, Prev[D]>> : T[K] extends Promise<infer U> ? U extends Array<infer V> ? `${K}` | Join<K, Column<UnwrapArray<V>, Prev[D]>> : `${K}` | Join<K, Column<UnwrapPromise<U>, Prev[D]>> : // no, we have no more special cases, so treat it as an
32
+ `${K}` | Join<K, Column<T[K], Prev[D]>> : never;
9
33
  }[keyof T] : '';
10
34
  export type RelationColumn<T> = Extract<Column<T>, {
11
35
  [K in Column<T>]: K extends `${infer R}.${string}` ? R : never;
package/lib/helper.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AA8CA,SAAgB,WAAW,CAAI,aAA0B,EAAE,MAAc;IACrE,OAAO,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;AACpD,CAAC;AAFD,kCAEC;AAEM,MAAM,uBAAuB,GAAG,CAAC,KAAyB,EAAE,YAAoB,EAAE,WAAkB,CAAC,EAAE,EAAE,CAC5G,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAA;AADrD,QAAA,uBAAuB,2BAC8B;AAIlE,SAAgB,yBAAyB,CAAC,MAAc;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9C,IAAI,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAE7C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,QAAQ,GAAG,IAAI,CAAA;QACnB,CAAC;QAED,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAE7D,OAAO;YACH,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;YAC7B,YAAY,EAAE,4CAA4C;YAC1D,QAAQ;YACR,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE;SAC/C,CAAA;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IACtF,CAAC;AACL,CAAC;AAtBD,8DAsBC;AAED,SAAgB,sBAAsB,CAClC,EAA+B,EAC/B,gBAAkC;;IAElC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY;QAC1C,CAAC,CAAC,MAAA,MAAA,MAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,0CAAE,SAAS,0CAAE,QAAQ,0CAAE,0BAA0B,CAAC,gBAAgB,CAAC,YAAY,CAAC,0CAC3F,gBAAgB,0CAAE,cAAc,CAAC,cAAc;QACvD,CAAC,CAAC,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,0CAAE,SAAS,0CAAE,QAAQ,CAAA;IAC5C,OAAO,CACH,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,gBAAgB,CAAC,YAAY,CAAC,KAAI;QAC1F,iBAAiB,EAAE,KAAK;QACxB,KAAK,EAAE,SAAS;KACnB,CACJ,CAAA;AACL,CAAC;AAdD,wDAcC;AAED,SAAgB,4BAA4B,CAAC,EAA+B,EAAE,YAAsB;;IAChG,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,MAAA,MAAA,EAAE,CAAC,aAAa,CAAC,SAAS,0CAAE,QAAQ,0CAAE,cAAc,CACtD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EACnC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AACzD,CAAC;AAPD,oEAOC;AAED,SAAgB,yBAAyB,CACrC,EAA+B,EAC/B,gBAAkC;;IAElC,IAAI,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,CAAA,MAAA,MAAA,EAAE,CAAC,aAAa,CAAC,SAAS,0CAAE,QAAQ,0CAAE,yBAAyB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA,CAAA;AAC3G,CAAC;AARD,8DAQC;AAED,SAAgB,eAAe,CAAC,EAA+B,EAAE,YAAoB;;IACjF,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,CAAA,MAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,0CAAE,SAAS,0CAAE,QAAQ,0CAAE,2BAA2B,CAAC,YAAY,CAAC,CAAA,CAAA;AAC9F,CAAC;AALD,0CAKC;AAED,SAAgB,eAAe,CAAC,EAA+B,EAAE,YAAoB;;IACjF,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,CAAA,MAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,0CAAE,SAAS,0CAAE,QAAQ,0CAAE,2BAA2B,CAAC,YAAY,CAAC,CAAA,CAAA;AAC9F,CAAC;AALD,0CAKC;AAED,SAAgB,YAAY,CAAC,EAA+B,EAAE,YAAoB;;IAC9E,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,CAAA,MAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,0CAAE,SAAS,0CAAE,QAAQ,CAAC,0BAA0B,CAAC,YAAY,CAAC,0CAAE,OAAO,CAAA,CAAA;AACrG,CAAC;AALD,oCAKC;AAED,oGAAoG;AACpG,SAAgB,cAAc,CAC1B,UAA4B,EAC5B,KAAa,EACb,UAAU,GAAG,KAAK,EAClB,iBAAiB,GAAG,KAAK,EACzB,UAAU,GAAG,KAAK,EAClB,KAA+B;IAE/B,IAAI,UAAU,EAAE,CAAC;QACb,IAAI,iBAAiB,IAAI,KAAK,EAAE,CAAC;YAC7B,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,MAAM,CAAC,GAAG,CAAA,CAAC,2CAA2C;QAC9G,CAAC;aAAM,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC9D,IAAI,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACvD,MAAM,eAAe,GAAG,YAAY;qBAC/B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;qBACtB,IAAI,CAAC,GAAG,CAAC,CAAA;gBACd,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAEvD,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,QAAQ,eAAe,IAAI,SAAS,EAAE,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,QAAQ,UAAU,CAAC,YAAY,EAAE,CAAA;YAC/E,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,QAAQ,UAAU,CAAC,YAAY,EAAE,CAAA;QAC/E,CAAC;IACL,CAAC;SAAM,IAAI,iBAAiB,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,EAAE,CAAA;IACnF,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACpB,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,EAAE,CAAA;IAC3E,CAAC;SAAM,CAAC;QACJ,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,EAAE,CAAA;IAChD,CAAC;AACL,CAAC;AAlCD,wCAkCC;AAED,SAAgB,qBAAqB,CAAC,IAAY;IAC9C,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;IAC7C,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;QACzB,WAAW,GAAG,GAAG,CAAC,MAAM,CAAA;QACxB,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC5B,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,IAAI,CAAA;IACpB,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;AACrC,CAAC;AAZD,sDAYC;AAED,MAAM,aAAa,GAAG,IAAI,MAAM,CAC5B,gNAAgN,CACnN,CAAA;AAED,SAAgB,SAAS,CAAC,GAAW;IACjC,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
package/lib/paginate.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { FindOptionsRelationByString, FindOptionsRelations, FindOptionsWhere, ObjectLiteral, Repository, SelectQueryBuilder } from 'typeorm';
2
2
  import { PaginateQuery } from './decorator';
3
- import { Column, RelationColumn, SortBy } from './helper';
4
3
  import { FilterOperator, FilterSuffix } from './filter';
4
+ import { Column, RelationColumn, SortBy } from './helper';
5
5
  export { FilterOperator, FilterSuffix };
6
6
  export declare class Paginated<T> {
7
7
  data: T[];
@@ -35,13 +35,13 @@ export interface PaginateConfig<T> {
35
35
  sortableColumns: Column<T>[];
36
36
  nullSort?: 'first' | 'last';
37
37
  searchableColumns?: Column<T>[];
38
- select?: Column<T>[] | string[];
38
+ select?: (Column<T> | (string & {}))[];
39
39
  maxLimit?: number;
40
40
  defaultSortBy?: SortBy<T>;
41
41
  defaultLimit?: number;
42
42
  where?: FindOptionsWhere<T> | FindOptionsWhere<T>[];
43
43
  filterableColumns?: {
44
- [key in Column<T> | string]?: (FilterOperator | FilterSuffix)[] | true;
44
+ [key in Column<T> | (string & {})]?: (FilterOperator | FilterSuffix)[] | true;
45
45
  };
46
46
  loadEagerRelations?: boolean;
47
47
  withDeleted?: boolean;
@@ -51,7 +51,10 @@ export interface PaginateConfig<T> {
51
51
  ignoreSearchByInQueryParam?: boolean;
52
52
  ignoreSelectInQueryParam?: boolean;
53
53
  }
54
- export declare const DEFAULT_MAX_LIMIT = 100;
55
- export declare const DEFAULT_LIMIT = 20;
56
- export declare const NO_PAGINATION = 0;
54
+ export declare enum PaginationLimit {
55
+ NO_PAGINATION = -1,
56
+ COUNTER_ONLY = 0,
57
+ DEFAULT_LIMIT = 20,
58
+ DEFAULT_MAX_LIMIT = 100
59
+ }
57
60
  export declare function paginate<T extends ObjectLiteral>(query: PaginateQuery, repo: Repository<T> | SelectQueryBuilder<T>, config: PaginateConfig<T>): Promise<Paginated<T>>;
package/lib/paginate.js CHANGED
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.paginate = exports.NO_PAGINATION = exports.DEFAULT_LIMIT = exports.DEFAULT_MAX_LIMIT = exports.PaginationType = exports.Paginated = exports.FilterSuffix = exports.FilterOperator = void 0;
4
- const typeorm_1 = require("typeorm");
3
+ exports.paginate = exports.PaginationLimit = exports.PaginationType = exports.Paginated = exports.FilterSuffix = exports.FilterOperator = void 0;
5
4
  const common_1 = require("@nestjs/common");
6
5
  const lodash_1 = require("lodash");
7
6
  const querystring_1 = require("querystring");
8
- const helper_1 = require("./helper");
7
+ const typeorm_1 = require("typeorm");
8
+ const OrmUtils_1 = require("typeorm/util/OrmUtils");
9
9
  const filter_1 = require("./filter");
10
10
  Object.defineProperty(exports, "FilterOperator", { enumerable: true, get: function () { return filter_1.FilterOperator; } });
11
11
  Object.defineProperty(exports, "FilterSuffix", { enumerable: true, get: function () { return filter_1.FilterSuffix; } });
12
- const OrmUtils_1 = require("typeorm/util/OrmUtils");
12
+ const helper_1 = require("./helper");
13
13
  const logger = new common_1.Logger('nestjs-paginate');
14
14
  class Paginated {
15
15
  }
@@ -19,9 +19,13 @@ var PaginationType;
19
19
  PaginationType["LIMIT_AND_OFFSET"] = "limit";
20
20
  PaginationType["TAKE_AND_SKIP"] = "take";
21
21
  })(PaginationType || (exports.PaginationType = PaginationType = {}));
22
- exports.DEFAULT_MAX_LIMIT = 100;
23
- exports.DEFAULT_LIMIT = 20;
24
- exports.NO_PAGINATION = 0;
22
+ var PaginationLimit;
23
+ (function (PaginationLimit) {
24
+ PaginationLimit[PaginationLimit["NO_PAGINATION"] = -1] = "NO_PAGINATION";
25
+ PaginationLimit[PaginationLimit["COUNTER_ONLY"] = 0] = "COUNTER_ONLY";
26
+ PaginationLimit[PaginationLimit["DEFAULT_LIMIT"] = 20] = "DEFAULT_LIMIT";
27
+ PaginationLimit[PaginationLimit["DEFAULT_MAX_LIMIT"] = 100] = "DEFAULT_MAX_LIMIT";
28
+ })(PaginationLimit || (exports.PaginationLimit = PaginationLimit = {}));
25
29
  function generateWhereStatement(queryBuilder, obj) {
26
30
  const toTransform = Array.isArray(obj) ? obj : [obj];
27
31
  return toTransform.map((item) => flattenWhereAndTransform(queryBuilder, item).join(' AND ')).join(' OR ');
@@ -76,13 +80,19 @@ function flattenWhereAndTransform(queryBuilder, obj, separator = '.', parentKey
76
80
  });
77
81
  }
78
82
  async function paginate(query, repo, config) {
79
- var _a;
83
+ var _a, _b;
80
84
  const page = (0, helper_1.positiveNumberOrDefault)(query.page, 1, 1);
81
- const defaultLimit = config.defaultLimit || exports.DEFAULT_LIMIT;
82
- const maxLimit = (0, helper_1.positiveNumberOrDefault)(config.maxLimit, exports.DEFAULT_MAX_LIMIT);
83
- const queryLimit = (0, helper_1.positiveNumberOrDefault)(query.limit, defaultLimit);
84
- const isPaginated = !(queryLimit === exports.NO_PAGINATION && maxLimit === exports.NO_PAGINATION);
85
- const limit = isPaginated ? Math.min(queryLimit || defaultLimit, maxLimit || exports.DEFAULT_MAX_LIMIT) : exports.NO_PAGINATION;
85
+ const defaultLimit = config.defaultLimit || PaginationLimit.DEFAULT_LIMIT;
86
+ const maxLimit = config.maxLimit || PaginationLimit.DEFAULT_MAX_LIMIT;
87
+ const isPaginated = !(query.limit === PaginationLimit.COUNTER_ONLY ||
88
+ (query.limit === PaginationLimit.NO_PAGINATION && maxLimit === PaginationLimit.NO_PAGINATION));
89
+ const limit = query.limit === PaginationLimit.COUNTER_ONLY
90
+ ? PaginationLimit.COUNTER_ONLY
91
+ : isPaginated
92
+ ? query.limit === PaginationLimit.NO_PAGINATION || maxLimit === PaginationLimit.NO_PAGINATION
93
+ ? defaultLimit
94
+ : Math.min((_a = query.limit) !== null && _a !== void 0 ? _a : defaultLimit, maxLimit)
95
+ : defaultLimit;
86
96
  const sortBy = [];
87
97
  const searchBy = [];
88
98
  let [items, totalItems] = [[], 0];
@@ -118,9 +128,17 @@ async function paginate(query, repo, config) {
118
128
  };
119
129
  createQueryBuilderRelations(queryBuilder.alias, relations);
120
130
  }
121
- let nullSort = undefined;
131
+ const dbType = (repo instanceof typeorm_1.Repository ? repo.manager : repo).connection.options.type;
132
+ const isMariaDbOrMySql = (dbType) => dbType === 'mariadb' || dbType === 'mysql';
133
+ const isMMDb = isMariaDbOrMySql(dbType);
134
+ let nullSort;
122
135
  if (config.nullSort) {
123
- nullSort = config.nullSort === 'last' ? 'NULLS LAST' : 'NULLS FIRST';
136
+ if (isMMDb) {
137
+ nullSort = config.nullSort === 'last' ? 'IS NULL' : 'IS NOT NULL';
138
+ }
139
+ else {
140
+ nullSort = config.nullSort === 'last' ? 'NULLS LAST' : 'NULLS FIRST';
141
+ }
124
142
  }
125
143
  if (config.sortableColumns.length < 1) {
126
144
  const message = "Missing required 'sortableColumns' config.";
@@ -143,10 +161,21 @@ async function paginate(query, repo, config) {
143
161
  const isRelation = (0, helper_1.checkIsRelation)(queryBuilder, columnProperties.propertyPath);
144
162
  const isEmbeded = (0, helper_1.checkIsEmbedded)(queryBuilder, columnProperties.propertyPath);
145
163
  let alias = (0, helper_1.fixColumnAlias)(columnProperties, queryBuilder.alias, isRelation, isVirtualProperty, isEmbeded);
146
- if (isVirtualProperty) {
147
- alias = `"${alias}"`;
164
+ if (isMMDb) {
165
+ if (isVirtualProperty) {
166
+ alias = `\`${alias}\``;
167
+ }
168
+ if (nullSort) {
169
+ queryBuilder.addOrderBy(`${alias} ${nullSort}`);
170
+ }
171
+ queryBuilder.addOrderBy(alias, order[1]);
172
+ }
173
+ else {
174
+ if (isVirtualProperty) {
175
+ alias = `"${alias}"`;
176
+ }
177
+ queryBuilder.addOrderBy(alias, order[1], nullSort);
148
178
  }
149
- queryBuilder.addOrderBy(alias, order[1], nullSort);
150
179
  }
151
180
  // When we partial select the columns (main or relation) we must add the primary key column otherwise
152
181
  // typeorm will not be able to map the result.
@@ -208,7 +237,10 @@ async function paginate(query, repo, config) {
208
237
  if (query.filter) {
209
238
  (0, filter_1.addFilter)(queryBuilder, query, config.filterableColumns);
210
239
  }
211
- if (isPaginated) {
240
+ if (query.limit === PaginationLimit.COUNTER_ONLY) {
241
+ totalItems = await queryBuilder.getCount();
242
+ }
243
+ else if (isPaginated) {
212
244
  ;
213
245
  [items, totalItems] = await queryBuilder.getManyAndCount();
214
246
  }
@@ -232,7 +264,7 @@ async function paginate(query, repo, config) {
232
264
  ? searchBy.map((column) => `&searchBy=${column}`).join('')
233
265
  : '';
234
266
  // Only expose select in meta data if query select differs from config select
235
- const isQuerySelected = (selectParams === null || selectParams === void 0 ? void 0 : selectParams.length) !== ((_a = config.select) === null || _a === void 0 ? void 0 : _a.length);
267
+ const isQuerySelected = (selectParams === null || selectParams === void 0 ? void 0 : selectParams.length) !== ((_b = config.select) === null || _b === void 0 ? void 0 : _b.length);
236
268
  const selectQuery = isQuerySelected ? `&select=${selectParams.join(',')}` : '';
237
269
  const filterQuery = query.filter
238
270
  ? '&' +
@@ -244,8 +276,8 @@ async function paginate(query, repo, config) {
244
276
  const results = {
245
277
  data: items,
246
278
  meta: {
247
- itemsPerPage: isPaginated ? limit : items.length,
248
- totalItems: isPaginated ? totalItems : items.length,
279
+ itemsPerPage: limit === PaginationLimit.COUNTER_ONLY ? totalItems : isPaginated ? limit : items.length,
280
+ totalItems: limit === PaginationLimit.COUNTER_ONLY || isPaginated ? totalItems : items.length,
249
281
  currentPage: page,
250
282
  totalPages,
251
283
  sortBy,
@@ -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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"}
@@ -11,19 +11,19 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- const typeorm_1 = require("typeorm");
15
- const paginate_1 = require("./paginate");
16
14
  const common_1 = require("@nestjs/common");
17
- const cat_entity_1 = require("./__tests__/cat.entity");
18
- const cat_toy_entity_1 = require("./__tests__/cat-toy.entity");
19
- const cat_home_entity_1 = require("./__tests__/cat-home.entity");
20
- const cat_home_pillow_entity_1 = require("./__tests__/cat-home-pillow.entity");
21
15
  const lodash_1 = require("lodash");
22
- const filter_1 = require("./filter");
23
- const toy_shop_entity_1 = require("./__tests__/toy-shop.entity");
24
- const toy_shop_address_entity_1 = require("./__tests__/toy-shop-address.entity");
25
16
  const process = require("process");
17
+ const typeorm_1 = require("typeorm");
26
18
  const cat_hair_entity_1 = require("./__tests__/cat-hair.entity");
19
+ const cat_home_pillow_entity_1 = require("./__tests__/cat-home-pillow.entity");
20
+ const cat_home_entity_1 = require("./__tests__/cat-home.entity");
21
+ const cat_toy_entity_1 = require("./__tests__/cat-toy.entity");
22
+ const cat_entity_1 = require("./__tests__/cat.entity");
23
+ const toy_shop_address_entity_1 = require("./__tests__/toy-shop-address.entity");
24
+ const toy_shop_entity_1 = require("./__tests__/toy-shop.entity");
25
+ const filter_1 = require("./filter");
26
+ const paginate_1 = require("./paginate");
27
27
  const isoStringToDate = (isoString) => new Date(isoString);
28
28
  describe('paginate', () => {
29
29
  let dataSource;
@@ -43,19 +43,11 @@ describe('paginate', () => {
43
43
  let catHomePillows;
44
44
  let catHairs = [];
45
45
  beforeAll(async () => {
46
- dataSource = new typeorm_1.DataSource(Object.assign(Object.assign({}, (process.env.DB === 'postgres'
47
- ? {
48
- type: 'postgres',
49
- host: process.env.DB_HOST || 'localhost',
50
- port: +process.env.DB_PORT || 5432,
51
- username: process.env.DB_USERNAME || 'root',
52
- password: process.env.DB_PASSWORD || 'pass',
53
- database: process.env.DB_DATABASE || 'test',
54
- }
55
- : {
56
- type: 'sqlite',
57
- database: ':memory:',
58
- })), { synchronize: true, logging: ['error'], entities: [
46
+ const dbOptions = {
47
+ dropSchema: true,
48
+ synchronize: true,
49
+ logging: ['error'],
50
+ entities: [
59
51
  cat_entity_1.CatEntity,
60
52
  cat_toy_entity_1.CatToyEntity,
61
53
  toy_shop_address_entity_1.ToyShopAddressEntity,
@@ -63,7 +55,21 @@ describe('paginate', () => {
63
55
  cat_home_pillow_entity_1.CatHomePillowEntity,
64
56
  toy_shop_entity_1.ToyShopEntity,
65
57
  process.env.DB === 'postgres' ? cat_hair_entity_1.CatHairEntity : undefined,
66
- ] }));
58
+ ],
59
+ };
60
+ switch (process.env.DB) {
61
+ case 'postgres':
62
+ dataSource = new typeorm_1.DataSource(Object.assign(Object.assign({}, dbOptions), { type: 'postgres', host: process.env.DB_HOST || 'localhost', port: +process.env.POSTGRESS_DB_PORT || 5432, username: process.env.DB_USERNAME || 'root', password: process.env.DB_PASSWORD || 'pass', database: process.env.DB_DATABASE || 'test' }));
63
+ break;
64
+ case 'mariadb':
65
+ dataSource = new typeorm_1.DataSource(Object.assign(Object.assign({}, dbOptions), { type: 'mariadb', host: process.env.DB_HOST || 'localhost', port: +process.env.MARIA_DB_PORT || 3306, username: process.env.DB_USERNAME || 'root', password: process.env.DB_PASSWORD || 'pass', database: process.env.DB_DATABASE || 'test' }));
66
+ break;
67
+ case 'sqlite':
68
+ dataSource = new typeorm_1.DataSource(Object.assign(Object.assign({}, dbOptions), { type: 'sqlite', database: ':memory:' }));
69
+ break;
70
+ default:
71
+ throw new Error('Invalid DB');
72
+ }
67
73
  await dataSource.initialize();
68
74
  catRepo = dataSource.getRepository(cat_entity_1.CatEntity);
69
75
  catToyRepo = dataSource.getRepository(cat_toy_entity_1.CatToyEntity);
@@ -261,7 +267,7 @@ describe('paginate', () => {
261
267
  };
262
268
  const query = {
263
269
  path: '',
264
- limit: paginate_1.NO_PAGINATION,
270
+ limit: paginate_1.PaginationLimit.NO_PAGINATION,
265
271
  };
266
272
  const result = await (0, paginate_1.paginate)(query, catRepo, config);
267
273
  expect(result.data).toStrictEqual(cats.slice(0, 1));
@@ -269,33 +275,33 @@ describe('paginate', () => {
269
275
  it('should return all cats', async () => {
270
276
  const config = {
271
277
  sortableColumns: ['id'],
272
- maxLimit: paginate_1.NO_PAGINATION,
278
+ maxLimit: paginate_1.PaginationLimit.NO_PAGINATION,
273
279
  defaultLimit: 1,
274
280
  };
275
281
  const query = {
276
282
  path: '',
277
- limit: paginate_1.NO_PAGINATION,
283
+ limit: paginate_1.PaginationLimit.NO_PAGINATION,
278
284
  };
279
285
  const result = await (0, paginate_1.paginate)(query, catRepo, config);
280
286
  expect(result.data).toStrictEqual(cats);
281
287
  });
282
- it('should limit to defaultLimit, if limit is negative', async () => {
288
+ it('should limit to defaultLimit, if limit is differt FROM NO_PAGINATION ecc....', async () => {
283
289
  const config = {
284
290
  sortableColumns: ['id'],
285
- maxLimit: paginate_1.NO_PAGINATION,
291
+ maxLimit: paginate_1.PaginationLimit.NO_PAGINATION,
286
292
  defaultLimit: 1,
287
293
  };
288
294
  const query = {
289
295
  path: '',
290
- limit: -1,
296
+ limit: -2,
291
297
  };
292
298
  const result = await (0, paginate_1.paginate)(query, catRepo, config);
293
299
  expect(result.data).toStrictEqual(cats.slice(0, 1));
294
300
  });
295
- it('should default to limit defaultLimit, if maxLimit is 0', async () => {
301
+ it('should default to limit defaultLimit, if maxLimit is NO_PAGINATION', async () => {
296
302
  const config = {
297
303
  sortableColumns: ['id'],
298
- maxLimit: paginate_1.NO_PAGINATION,
304
+ maxLimit: paginate_1.PaginationLimit.NO_PAGINATION,
299
305
  defaultLimit: 1,
300
306
  };
301
307
  const query = {
@@ -331,6 +337,54 @@ describe('paginate', () => {
331
337
  const result = await (0, paginate_1.paginate)(query, catRepo, config);
332
338
  expect(result.data).toStrictEqual(cats.slice(0, 2));
333
339
  });
340
+ it('maxLimit should limit defaultLimit', async () => {
341
+ const config = {
342
+ sortableColumns: ['id'],
343
+ maxLimit: 1,
344
+ defaultLimit: 2,
345
+ };
346
+ const query = {
347
+ path: '',
348
+ };
349
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
350
+ expect(result.data).toStrictEqual(cats.slice(0, 1));
351
+ });
352
+ it('limit should bypass defaultLimit', async () => {
353
+ const config = {
354
+ sortableColumns: ['id'],
355
+ defaultLimit: 1,
356
+ };
357
+ const query = {
358
+ path: '',
359
+ limit: 2,
360
+ };
361
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
362
+ expect(result.data).toStrictEqual(cats.slice(0, 2));
363
+ });
364
+ it('DEFAULT_LIMIT should be used as the limit if limit is set to NO_PAGINATION and maxLimit is not specified.', async () => {
365
+ const config = {
366
+ sortableColumns: ['id'],
367
+ };
368
+ const query = {
369
+ path: '',
370
+ limit: paginate_1.PaginationLimit.NO_PAGINATION,
371
+ };
372
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
373
+ expect(result.data).toStrictEqual(cats.slice(0, paginate_1.PaginationLimit.DEFAULT_LIMIT));
374
+ });
375
+ it('should return the count without data ignoring maxLimit if limit is COUNTER_ONLY', async () => {
376
+ const config = {
377
+ sortableColumns: ['id'],
378
+ maxLimit: paginate_1.PaginationLimit.NO_PAGINATION,
379
+ };
380
+ const query = {
381
+ path: '',
382
+ limit: 0,
383
+ };
384
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
385
+ expect(result.data).toStrictEqual([]);
386
+ expect(result.meta.totalItems).toBe(5);
387
+ });
334
388
  it('should return correct result for limited one-to-many relations', async () => {
335
389
  const config = {
336
390
  relations: ['toys'],
@@ -2490,31 +2544,6 @@ describe('paginate', () => {
2490
2544
  expect(result.data).toStrictEqual(expectedResult);
2491
2545
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.home.countCat=$gt:0');
2492
2546
  });
2493
- it('should return result sorted by a virtual column', async () => {
2494
- const config = {
2495
- sortableColumns: ['home.countCat'],
2496
- relations: ['home'],
2497
- };
2498
- const query = {
2499
- path: '',
2500
- sortBy: [['home.countCat', 'ASC']],
2501
- };
2502
- const result = await (0, paginate_1.paginate)(query, catRepo, config);
2503
- const expectedResult = [2, 3, 4, 0, 1].map((i) => {
2504
- const ret = (0, lodash_1.clone)(cats[i]);
2505
- if (i == 0 || i == 1) {
2506
- ret.home = (0, lodash_1.clone)(catHomes[i]);
2507
- ret.home.countCat = cats.filter((cat) => cat.id === ret.home.cat.id).length;
2508
- delete ret.home.cat;
2509
- }
2510
- else {
2511
- ret.home = null;
2512
- }
2513
- return ret;
2514
- });
2515
- expect(result.data).toStrictEqual(expectedResult);
2516
- expect(result.links.current).toBe('?page=1&limit=20&sortBy=home.countCat:ASC');
2517
- });
2518
2547
  it('should return result sorted and filter by a virtual column in main entity', async () => {
2519
2548
  const config = {
2520
2549
  sortableColumns: ['countCat'],