nestjs-paginate 11.0.1 → 11.1.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
@@ -17,6 +17,7 @@ Pagination and filtering helper method for TypeORM repositories or query builder
17
17
  - Filter using operators (`$eq`, `$not`, `$null`, `$in`, `$gt`, `$gte`, `$lt`, `$lte`, `$btw`, `$ilike`, `$sw`, `$contains`)
18
18
  - Include relations and nested relations
19
19
  - Virtual column support
20
+ - Cursor-based pagination
20
21
 
21
22
  ## Installation
22
23
 
@@ -93,6 +94,61 @@ http://localhost:3000/cats?limit=5&page=2&sortBy=color:DESC&search=i&filter.age=
93
94
  }
94
95
  ```
95
96
 
97
+ ### Example (Cursor-based Pagination)
98
+
99
+ The following code exposes a route using cursor-based pagination:
100
+
101
+ #### Endpoint
102
+
103
+ ```url
104
+ http://localhost:3000/cats?limit=5&cursor=2022-12-20T10:00:00.000Z&cursorColumn=lastVetVisit&cursorDirection=after
105
+ ```
106
+
107
+ #### Result
108
+
109
+ ```json
110
+ {
111
+ "data": [
112
+ {
113
+ "id": 3,
114
+ "name": "Shadow",
115
+ "lastVetVisit": "2022-12-21T10:00:00.000Z"
116
+ },
117
+ {
118
+ "id": 4,
119
+ "name": "Luna",
120
+ "lastVetVisit": "2022-12-22T10:00:00.000Z"
121
+ },
122
+ {
123
+ "id": 5,
124
+ "name": "Pepper",
125
+ "lastVetVisit": "2022-12-23T10:00:00.000Z"
126
+ },
127
+ {
128
+ "id": 6,
129
+ "name": "Simba",
130
+ "lastVetVisit": "2022-12-24T10:00:00.000Z"
131
+ },
132
+ {
133
+ "id": 7,
134
+ "name": "Tiger",
135
+ "lastVetVisit": "2022-12-25T10:00:00.000Z"
136
+ }
137
+ ],
138
+ "meta": {
139
+ "itemsPerPage": 5,
140
+ "cursor": "2022-12-20T10:00:00.000Z",
141
+ "firstCursor": "2022-12-21T10:00:00.000Z",
142
+ "lastCursor": "2022-12-25T10:00:00.000Z"
143
+ },
144
+ "links": {
145
+ "previous": "http://localhost:3000/cats?limit=5&sortBy=lastVetVisit:ASC&cursor=2022-12-21T10:00:00.000Z&cursorColumn=lastVetVisit&cursorDirection=before",
146
+ "current": "http://localhost:3000/cats?limit=5&sortBy=lastVetVisit:ASC&cursor=2022-12-20T10:00:00.000Z&cursorColumn=lastVetVisit&cursorDirection=after",
147
+ "next": "http://localhost:3000/cats?limit=5&sortBy=lastVetVisit:ASC&cursor=2022-12-25T10:00:00.000Z&cursorColumn=lastVetVisit&cursorDirection=after"
148
+ }
149
+ }
150
+ ```
151
+
96
152
  #### Code
97
153
 
98
154
  ```ts
@@ -232,6 +288,17 @@ const paginateConfig: PaginateConfig<CatEntity> {
232
288
  */
233
289
  filterableColumns: { age: [FilterOperator.EQ, FilterOperator.IN] },
234
290
 
291
+ /**
292
+ * Required: false
293
+ * Type: (keyof CatEntity)[]
294
+ * Default: None
295
+ * Description: Columns that can be used as cursors for cursor-based pagination.
296
+ * Typically used with date or unique & sequential columns like 'lastVetVisit' or 'id'.
297
+ * If `cursorColumn` is not provided in the query, the first column in this array is used as the default.
298
+ * If `cursorDirection` is not provided in the query, 'before' is used as the default direction.
299
+ */
300
+ cursorableColumns: ['lastVetVisit'],
301
+
235
302
  /**
236
303
  * Required: false
237
304
  * Type: RelationColumn<CatEntity>
@@ -259,8 +326,10 @@ const paginateConfig: PaginateConfig<CatEntity> {
259
326
  /**
260
327
  * Required: false
261
328
  * Type: string
262
- * Description: Allow user to choose between limit/offset and take/skip.
329
+ * Description: Allow user to choose between limit/offset and take/skip, or cursor-based pagination.
263
330
  * Default: PaginationType.TAKE_AND_SKIP
331
+ * Options: PaginationType.LIMIT_AND_OFFSET, PaginationType.TAKE_AND_SKIP, PaginationType.CURSOR
332
+ * Note: CURSOR requires `cursorableColumns` to be defined.
264
333
  *
265
334
  * However, using limit/offset can cause problems with relations.
266
335
  */
@@ -297,6 +366,22 @@ const paginateConfig: PaginateConfig<CatEntity> {
297
366
  */
298
367
  ignoreSelectInQueryParam: true,
299
368
 
369
+ /**
370
+ * Required: false
371
+ * Type: 'leftJoinAndSelect' | 'innerJoinAndSelect'
372
+ * Default: 'leftJoinAndSelect'
373
+ * Description: Relationships will be joined with either LEFT JOIN or INNER JOIN, and their columns selected. Can be specified per column with `joinMethods` configuration.
374
+ */
375
+ defaultJoinMethod: 'leftJoinAndSelect'
376
+
377
+ /**
378
+ * Required: false
379
+ * Type: MappedColumns<T, JoinMethod>
380
+ * Default: false
381
+ * Description: Overrides the join method per relationship.
382
+ */
383
+ joinMethods: {age: 'innerJoinAndSelect', size: 'leftJoinAndSelect'}
384
+
300
385
  /**
301
386
  * Required: false
302
387
  * Type: boolean
@@ -0,0 +1,5 @@
1
+ export declare class CatHomePillowBrandEntity {
2
+ id: number;
3
+ name: string;
4
+ quality: string;
5
+ }
@@ -0,0 +1,32 @@
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.CatHomePillowBrandEntity = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ let CatHomePillowBrandEntity = class CatHomePillowBrandEntity {
15
+ };
16
+ exports.CatHomePillowBrandEntity = CatHomePillowBrandEntity;
17
+ __decorate([
18
+ (0, typeorm_1.PrimaryGeneratedColumn)(),
19
+ __metadata("design:type", Number)
20
+ ], CatHomePillowBrandEntity.prototype, "id", void 0);
21
+ __decorate([
22
+ (0, typeorm_1.Column)(),
23
+ __metadata("design:type", String)
24
+ ], CatHomePillowBrandEntity.prototype, "name", void 0);
25
+ __decorate([
26
+ (0, typeorm_1.Column)({ nullable: true }),
27
+ __metadata("design:type", String)
28
+ ], CatHomePillowBrandEntity.prototype, "quality", void 0);
29
+ exports.CatHomePillowBrandEntity = CatHomePillowBrandEntity = __decorate([
30
+ (0, typeorm_1.Entity)()
31
+ ], CatHomePillowBrandEntity);
32
+ //# sourceMappingURL=cat-home-pillow-brand.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cat-home-pillow-brand.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-home-pillow-brand.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAgE;AAGzD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;CASpC,CAAA;AATY,4DAAwB;AAEjC;IADC,IAAA,gCAAsB,GAAE;;oDACf;AAGV;IADC,IAAA,gBAAM,GAAE;;sDACG;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACZ;mCARN,wBAAwB;IADpC,IAAA,gBAAM,GAAE;GACI,wBAAwB,CASpC"}
@@ -1,7 +1,9 @@
1
1
  import { CatHomeEntity } from './cat-home.entity';
2
+ import { CatHomePillowBrandEntity } from './cat-home-pillow-brand.entity';
2
3
  export declare class CatHomePillowEntity {
3
4
  id: number;
4
5
  home: CatHomeEntity;
5
6
  color: string;
7
+ brand: CatHomePillowBrandEntity;
6
8
  createdAt: string;
7
9
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CatHomePillowEntity = void 0;
13
13
  const typeorm_1 = require("typeorm");
14
14
  const cat_home_entity_1 = require("./cat-home.entity");
15
+ const cat_home_pillow_brand_entity_1 = require("./cat-home-pillow-brand.entity");
15
16
  let CatHomePillowEntity = class CatHomePillowEntity {
16
17
  };
17
18
  exports.CatHomePillowEntity = CatHomePillowEntity;
@@ -27,6 +28,10 @@ __decorate([
27
28
  (0, typeorm_1.Column)(),
28
29
  __metadata("design:type", String)
29
30
  ], CatHomePillowEntity.prototype, "color", void 0);
31
+ __decorate([
32
+ (0, typeorm_1.ManyToOne)(() => cat_home_pillow_brand_entity_1.CatHomePillowBrandEntity),
33
+ __metadata("design:type", cat_home_pillow_brand_entity_1.CatHomePillowBrandEntity)
34
+ ], CatHomePillowEntity.prototype, "brand", void 0);
30
35
  __decorate([
31
36
  (0, typeorm_1.CreateDateColumn)(),
32
37
  __metadata("design:type", String)
@@ -1 +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;AAZY,kDAAmB;AAE5B;IADC,IAAA,gCAAsB,GAAE;;+CACf;AAGV;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,+BAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;8BACjD,+BAAa;iDAAA;AAGnB;IADC,IAAA,gBAAM,GAAE;;kDACI;AAGb;IADC,IAAA,0BAAgB,GAAE;;sDACF;8BAXR,mBAAmB;IAD/B,IAAA,gBAAM,GAAE;GACI,mBAAmB,CAY/B"}
1
+ {"version":3,"file":"cat-home-pillow.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-home-pillow.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA6F;AAC7F,uDAAiD;AACjD,iFAAyE;AAGlE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAe/B,CAAA;AAfY,kDAAmB;AAE5B;IADC,IAAA,gCAAsB,GAAE;;+CACf;AAGV;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,+BAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;8BACjD,+BAAa;iDAAA;AAGnB;IADC,IAAA,gBAAM,GAAE;;kDACI;AAGb;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,uDAAwB,CAAC;8BACnC,uDAAwB;kDAAA;AAG/B;IADC,IAAA,0BAAgB,GAAE;;sDACF;8BAdR,mBAAmB;IAD/B,IAAA,gBAAM,GAAE;GACI,mBAAmB,CAe/B"}
@@ -3,8 +3,10 @@ import { CatEntity } from './cat.entity';
3
3
  export declare class CatHomeEntity {
4
4
  id: number;
5
5
  name: string;
6
+ street: string | null;
6
7
  cat: CatEntity;
7
8
  pillows: CatHomePillowEntity[];
9
+ naptimePillow: CatHomePillowEntity | null;
8
10
  createdAt: string;
9
11
  countCat: number;
10
12
  }
@@ -24,6 +24,10 @@ __decorate([
24
24
  (0, typeorm_1.Column)(),
25
25
  __metadata("design:type", String)
26
26
  ], CatHomeEntity.prototype, "name", void 0);
27
+ __decorate([
28
+ (0, typeorm_1.Column)({ nullable: true }),
29
+ __metadata("design:type", String)
30
+ ], CatHomeEntity.prototype, "street", void 0);
27
31
  __decorate([
28
32
  (0, typeorm_1.OneToOne)(() => cat_entity_1.CatEntity, (cat) => cat.home),
29
33
  __metadata("design:type", cat_entity_1.CatEntity)
@@ -32,6 +36,10 @@ __decorate([
32
36
  (0, typeorm_1.OneToMany)(() => cat_home_pillow_entity_1.CatHomePillowEntity, (pillow) => pillow.home),
33
37
  __metadata("design:type", Array)
34
38
  ], CatHomeEntity.prototype, "pillows", void 0);
39
+ __decorate([
40
+ (0, typeorm_1.ManyToOne)(() => cat_home_pillow_entity_1.CatHomePillowEntity, { nullable: true }),
41
+ __metadata("design:type", cat_home_pillow_entity_1.CatHomePillowEntity)
42
+ ], CatHomeEntity.prototype, "naptimePillow", void 0);
35
43
  __decorate([
36
44
  (0, typeorm_1.CreateDateColumn)(),
37
45
  __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,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"}
1
+ {"version":3,"file":"cat-home.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-home.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCASgB;AAChB,qEAA8D;AAC9D,6CAAwC;AAGjC,IAAM,aAAa,GAAnB,MAAM,aAAa;CA6BzB,CAAA;AA7BY,sCAAa;AAEtB;IADC,IAAA,gCAAsB,GAAE;;yCACf;AAGV;IADC,IAAA,gBAAM,GAAE;;2CACG;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACN;AAGrB;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,mBAAS,EAAC,GAAG,EAAE,CAAC,4CAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAC1C,4CAAmB;oDAAO;AAGzC;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;wBA5BP,aAAa;IADzB,IAAA,gBAAM,GAAE;GACI,aAAa,CA6BzB"}
@@ -1,5 +1,5 @@
1
- import { CatToyEntity } from './cat-toy.entity';
2
1
  import { CatHomeEntity } from './cat-home.entity';
2
+ import { CatToyEntity } from './cat-toy.entity';
3
3
  import { SizeEmbed } from './size.embed';
4
4
  export declare enum CutenessLevel {
5
5
  LOW = "low",
@@ -11,8 +11,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CatEntity = exports.CutenessLevel = void 0;
13
13
  const typeorm_1 = require("typeorm");
14
- const cat_toy_entity_1 = require("./cat-toy.entity");
15
14
  const cat_home_entity_1 = require("./cat-home.entity");
15
+ const cat_toy_entity_1 = require("./cat-toy.entity");
16
16
  const size_embed_1 = require("./size.embed");
17
17
  var CutenessLevel;
18
18
  (function (CutenessLevel) {
@@ -1 +1 @@
1
- {"version":3,"file":"cat.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAYgB;AAChB,qDAA+C;AAC/C,uDAAiD;AACjD,6CAAwC;AAExC,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,kCAAiB,CAAA;IACjB,8BAAa,CAAA;AACjB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAGM,IAAM,SAAS,GAAf,MAAM,SAAS;IA4CV,SAAS;;QACb,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,EAAE,CAAA,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;IACL,CAAC;CACJ,CAAA;AAjDY,8BAAS;AAElB;IADC,IAAA,gCAAsB,GAAE;;qCACf;AAGV;IADC,IAAA,gBAAM,GAAE;;uCACG;AAGZ;IADC,IAAA,gBAAM,GAAE;;wCACI;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACT;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,yFAAyF;;;gDACvF;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACb,IAAI;+CAAO;AAGzB;IADC,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,sBAAS,CAAC;8BAClB,sBAAS;uCAAA;AAKf;IAHC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,6BAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE;QACnD,KAAK,EAAE,IAAI;KACd,CAAC;;uCACkB;AAIpB;IAFC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,+BAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3E,IAAA,oBAAU,GAAE;8BACP,+BAAa;uCAAA;AAGnB;IADC,IAAA,0BAAgB,GAAE;;4CACF;AAGjB;IADC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACnB;AAIlB;IAFC,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC;IAC3B,IAAA,mBAAS,GAAE;;0CACQ;AAKZ;IAHP,IAAA,mBAAS,GAAE;IACZ,yDAAyD;IACzD,mGAAmG;;;;;0CAKlG;oBAhDQ,SAAS;IADrB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACX,SAAS,CAiDrB"}
1
+ {"version":3,"file":"cat.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAYgB;AAChB,uDAAiD;AACjD,qDAA+C;AAC/C,6CAAwC;AAExC,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,kCAAiB,CAAA;IACjB,8BAAa,CAAA;AACjB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAGM,IAAM,SAAS,GAAf,MAAM,SAAS;IA4CV,SAAS;;QACb,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,EAAE,CAAA,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;IACL,CAAC;CACJ,CAAA;AAjDY,8BAAS;AAElB;IADC,IAAA,gCAAsB,GAAE;;qCACf;AAGV;IADC,IAAA,gBAAM,GAAE;;uCACG;AAGZ;IADC,IAAA,gBAAM,GAAE;;wCACI;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACT;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,yFAAyF;;;gDACvF;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACb,IAAI;+CAAO;AAGzB;IADC,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,sBAAS,CAAC;8BAClB,sBAAS;uCAAA;AAKf;IAHC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,6BAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE;QACnD,KAAK,EAAE,IAAI;KACd,CAAC;;uCACkB;AAIpB;IAFC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,+BAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3E,IAAA,oBAAU,GAAE;8BACP,+BAAa;uCAAA;AAGnB;IADC,IAAA,0BAAgB,GAAE;;4CACF;AAGjB;IADC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACnB;AAIlB;IAFC,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC;IAC3B,IAAA,mBAAS,GAAE;;0CACQ;AAKZ;IAHP,IAAA,mBAAS,GAAE;IACZ,yDAAyD;IACzD,mGAAmG;;;;;0CAKlG;oBAhDQ,SAAS;IADrB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACX,SAAS,CAiDrB"}
@@ -8,6 +8,9 @@ export interface PaginateQuery {
8
8
  [column: string]: string | string[];
9
9
  };
10
10
  select?: string[];
11
+ cursor?: string;
12
+ cursorColumn?: string;
13
+ cursorDirection?: 'before' | 'after';
11
14
  path: string;
12
15
  }
13
16
  export declare const Paginate: (...dataOrPipes: unknown[]) => ParameterDecorator;
package/lib/decorator.js CHANGED
@@ -72,6 +72,9 @@ exports.Paginate = (0, common_1.createParamDecorator)((_data, ctx) => {
72
72
  searchBy,
73
73
  filter: Object.keys(filter).length ? filter : undefined,
74
74
  select,
75
+ cursor: query.cursor ? query.cursor.toString() : undefined,
76
+ cursorColumn: query.cursorColumn ? query.cursorColumn.toString() : undefined,
77
+ cursorDirection: query.cursorDirection === 'after' || query.cursorDirection === 'before' ? query.cursorDirection : undefined,
75
78
  path,
76
79
  };
77
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,9 @@ describe('Decorator', () => {
108
108
  searchBy: undefined,
109
109
  filter: undefined,
110
110
  select: undefined,
111
+ cursor: undefined,
112
+ cursorColumn: undefined,
113
+ cursorDirection: undefined,
111
114
  path: 'http://localhost/items',
112
115
  });
113
116
  });
@@ -122,6 +125,9 @@ describe('Decorator', () => {
122
125
  searchBy: undefined,
123
126
  filter: undefined,
124
127
  select: undefined,
128
+ cursor: undefined,
129
+ cursorColumn: undefined,
130
+ cursorDirection: undefined,
125
131
  path: 'http://localhost/items',
126
132
  });
127
133
  });
@@ -134,6 +140,9 @@ describe('Decorator', () => {
134
140
  'filter.name': '$not:$eq:Kitty',
135
141
  'filter.createdAt': ['$gte:2020-01-01', '$lte:2020-12-31'],
136
142
  select: ['name', 'createdAt'],
143
+ cursor: 'abc123',
144
+ cursorColumn: 'id',
145
+ cursorDirection: 'after',
137
146
  });
138
147
  const result = decoratorfactory(null, context);
139
148
  expect(result).toStrictEqual({
@@ -151,6 +160,9 @@ describe('Decorator', () => {
151
160
  name: '$not:$eq:Kitty',
152
161
  createdAt: ['$gte:2020-01-01', '$lte:2020-12-31'],
153
162
  },
163
+ cursor: 'abc123',
164
+ cursorColumn: 'id',
165
+ cursorDirection: 'after',
154
166
  });
155
167
  });
156
168
  it('should handle fastify defined query fields', () => {
@@ -162,6 +174,9 @@ describe('Decorator', () => {
162
174
  'filter.name': '$not:$eq:Kitty',
163
175
  'filter.createdAt': ['$gte:2020-01-01', '$lte:2020-12-31'],
164
176
  select: ['name', 'createdAt'],
177
+ cursor: 'abc123',
178
+ cursorColumn: 'id',
179
+ cursorDirection: 'after',
165
180
  });
166
181
  const result = decoratorfactory(null, context);
167
182
  expect(result).toStrictEqual({
@@ -179,6 +194,9 @@ describe('Decorator', () => {
179
194
  createdAt: ['$gte:2020-01-01', '$lte:2020-12-31'],
180
195
  },
181
196
  select: ['name', 'createdAt'],
197
+ cursor: 'abc123',
198
+ cursorColumn: 'id',
199
+ cursorDirection: 'after',
182
200
  });
183
201
  });
184
202
  });
@@ -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.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { FindOperator, SelectQueryBuilder } from 'typeorm';
2
2
  import { WherePredicateOperator } from 'typeorm/query-builder/WhereClause';
3
3
  import { PaginateQuery } from './decorator';
4
+ import { JoinMethod } from './helper';
4
5
  export declare enum FilterOperator {
5
6
  EQ = "$eq",
6
7
  GT = "$gt",
@@ -29,9 +30,12 @@ type Filter = {
29
30
  comparator: FilterComparator;
30
31
  findOperator: FindOperator<string>;
31
32
  };
32
- type ColumnsFilters = {
33
+ type ColumnFilters = {
33
34
  [columnName: string]: Filter[];
34
35
  };
36
+ type ColumnJoinMethods = {
37
+ [columnName: string]: JoinMethod;
38
+ };
35
39
  export interface FilterToken {
36
40
  comparator: FilterComparator;
37
41
  suffix?: FilterSuffix;
@@ -44,12 +48,12 @@ export declare function fixQueryParam(alias: string, column: string, filter: Fil
44
48
  [key: string]: string;
45
49
  };
46
50
  export declare function generatePredicateCondition(qb: SelectQueryBuilder<unknown>, column: string, filter: Filter, alias: string, isVirtualProperty?: boolean): WherePredicateOperator;
47
- export declare function addWhereCondition<T>(qb: SelectQueryBuilder<T>, column: string, filter: ColumnsFilters): void;
51
+ export declare function addWhereCondition<T>(qb: SelectQueryBuilder<T>, column: string, filter: ColumnFilters): void;
48
52
  export declare function parseFilterToken(raw?: string): FilterToken | null;
49
53
  export declare function parseFilter<T>(query: PaginateQuery, filterableColumns?: {
50
54
  [column: string]: (FilterOperator | FilterSuffix)[] | true;
51
- }, qb?: SelectQueryBuilder<T>): ColumnsFilters;
55
+ }, qb?: SelectQueryBuilder<T>): ColumnFilters;
52
56
  export declare function addFilter<T>(qb: SelectQueryBuilder<T>, query: PaginateQuery, filterableColumns?: {
53
57
  [column: string]: (FilterOperator | FilterSuffix)[] | true;
54
- }): SelectQueryBuilder<T>;
58
+ }): ColumnJoinMethods;
55
59
  export {};
package/lib/filter.js CHANGED
@@ -277,6 +277,16 @@ function addFilter(qb, query, filterableColumns) {
277
277
  addWhereCondition(qb, column, filter);
278
278
  }));
279
279
  }
280
- return qb;
280
+ // Set the join type of every relationship used in a filter to `innerJoinAndSelect`
281
+ // so that records without that relationships don't show up in filters on their columns.
282
+ return Object.fromEntries(filterEntries
283
+ .map(([key]) => [key, (0, helper_1.getPropertiesByColumnName)(key)])
284
+ .filter(([, properties]) => properties.propertyPath)
285
+ .flatMap(([, properties]) => {
286
+ const nesting = properties.column.split('.');
287
+ return Array.from({ length: nesting.length - 1 }, (_, i) => nesting.slice(0, i + 1).join('.'))
288
+ .filter((relation) => (0, helper_1.checkIsNestedRelation)(qb, relation))
289
+ .map((relation) => [relation, 'innerJoinAndSelect']);
290
+ }));
281
291
  }
282
292
  //# sourceMappingURL=filter.js.map
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/helper.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { FindOperator, Repository, SelectQueryBuilder } from 'typeorm';
1
+ import { FindOperator, FindOptionsRelationByString, FindOptionsRelations, Repository, SelectQueryBuilder } from 'typeorm';
2
2
  import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata';
3
3
  /**
4
4
  * Joins 2 keys as `K`, `K.P`, `K.(P` or `K.P)`
@@ -36,6 +36,14 @@ export type RelationColumn<T> = Extract<Column<T>, {
36
36
  }[Column<T>]>;
37
37
  export type Order<T> = [Column<T>, 'ASC' | 'DESC'];
38
38
  export type SortBy<T> = Order<T>[];
39
+ export type MappedColumns<T, S> = {
40
+ [key in Column<T> | (string & {})]: S;
41
+ };
42
+ export type JoinMethod = 'leftJoinAndSelect' | 'innerJoinAndSelect';
43
+ export type RelationSchemaInput<T = any> = FindOptionsRelations<T> | RelationColumn<T>[] | FindOptionsRelationByString;
44
+ export type RelationSchema<T = any> = {
45
+ [relation in Column<T> | (string & {})]: true;
46
+ };
39
47
  export declare function isEntityKey<T>(entityColumns: Column<T>[], column: string): column is Column<T>;
40
48
  export declare const positiveNumberOrDefault: (value: number | undefined, defaultValue: number, minValue?: 0 | 1) => number;
41
49
  export type ColumnProperties = {
@@ -49,6 +57,7 @@ export declare function extractVirtualProperty(qb: SelectQueryBuilder<unknown>,
49
57
  export declare function includesAllPrimaryKeyColumns(qb: SelectQueryBuilder<unknown>, propertyPath: string[]): boolean;
50
58
  export declare function hasColumnWithPropertyPath(qb: SelectQueryBuilder<unknown>, columnProperties: ColumnProperties): boolean;
51
59
  export declare function checkIsRelation(qb: SelectQueryBuilder<unknown>, propertyPath: string): boolean;
60
+ export declare function checkIsNestedRelation(qb: SelectQueryBuilder<unknown>, propertyPath: string): boolean;
52
61
  export declare function checkIsEmbedded(qb: SelectQueryBuilder<unknown>, propertyPath: string): boolean;
53
62
  export declare function checkIsArray(qb: SelectQueryBuilder<unknown>, propertyName: string): boolean;
54
63
  export declare function checkIsJsonb(qb: SelectQueryBuilder<unknown>, propertyName: string): boolean;
@@ -60,4 +69,6 @@ export declare function getQueryUrlComponents(path: string): {
60
69
  export declare function isISODate(str: string): boolean;
61
70
  export declare function isRepository<T>(repo: unknown | Repository<T>): repo is Repository<T>;
62
71
  export declare function isFindOperator<T>(value: unknown | FindOperator<T>): value is FindOperator<T>;
72
+ export declare function createRelationSchema<T>(configurationRelations: RelationSchemaInput<T>): RelationSchema<T>;
73
+ export declare function mergeRelationSchema(...schemas: RelationSchema[]): any;
63
74
  export {};
package/lib/helper.js CHANGED
@@ -7,6 +7,7 @@ exports.extractVirtualProperty = extractVirtualProperty;
7
7
  exports.includesAllPrimaryKeyColumns = includesAllPrimaryKeyColumns;
8
8
  exports.hasColumnWithPropertyPath = hasColumnWithPropertyPath;
9
9
  exports.checkIsRelation = checkIsRelation;
10
+ exports.checkIsNestedRelation = checkIsNestedRelation;
10
11
  exports.checkIsEmbedded = checkIsEmbedded;
11
12
  exports.checkIsArray = checkIsArray;
12
13
  exports.checkIsJsonb = checkIsJsonb;
@@ -15,7 +16,11 @@ exports.getQueryUrlComponents = getQueryUrlComponents;
15
16
  exports.isISODate = isISODate;
16
17
  exports.isRepository = isRepository;
17
18
  exports.isFindOperator = isFindOperator;
19
+ exports.createRelationSchema = createRelationSchema;
20
+ exports.mergeRelationSchema = mergeRelationSchema;
18
21
  const typeorm_1 = require("typeorm");
22
+ const OrmUtils_1 = require("typeorm/util/OrmUtils");
23
+ const lodash_1 = require("lodash");
19
24
  function isEntityKey(entityColumns, column) {
20
25
  return !!entityColumns.find((c) => c === column);
21
26
  }
@@ -72,6 +77,18 @@ function checkIsRelation(qb, propertyPath) {
72
77
  }
73
78
  return !!((_c = (_b = (_a = qb === null || qb === void 0 ? void 0 : qb.expressionMap) === null || _a === void 0 ? void 0 : _a.mainAlias) === null || _b === void 0 ? void 0 : _b.metadata) === null || _c === void 0 ? void 0 : _c.hasRelationWithPropertyPath(propertyPath));
74
79
  }
80
+ function checkIsNestedRelation(qb, propertyPath) {
81
+ var _a, _b;
82
+ let metadata = (_b = (_a = qb === null || qb === void 0 ? void 0 : qb.expressionMap) === null || _a === void 0 ? void 0 : _a.mainAlias) === null || _b === void 0 ? void 0 : _b.metadata;
83
+ for (const relationName of propertyPath.split('.')) {
84
+ const relation = metadata === null || metadata === void 0 ? void 0 : metadata.relations.find((relation) => relation.propertyPath === relationName);
85
+ if (!relation) {
86
+ return false;
87
+ }
88
+ metadata = relation.inverseEntityMetadata;
89
+ }
90
+ return true;
91
+ }
75
92
  function checkIsEmbedded(qb, propertyPath) {
76
93
  var _a, _b, _c;
77
94
  if (!qb || !propertyPath) {
@@ -174,4 +191,13 @@ function isFindOperator(value) {
174
191
  return false;
175
192
  }
176
193
  }
194
+ function createRelationSchema(configurationRelations) {
195
+ return Array.isArray(configurationRelations)
196
+ ? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(configurationRelations)
197
+ : configurationRelations;
198
+ }
199
+ function mergeRelationSchema(...schemas) {
200
+ const noTrueOverride = (obj, source) => (source === true && obj !== undefined ? obj : undefined);
201
+ return (0, lodash_1.mergeWith)({}, ...schemas, noTrueOverride);
202
+ }
177
203
  //# sourceMappingURL=helper.js.map
package/lib/helper.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}