nestjs-paginate 13.2.0 → 13.4.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 +50 -0
- package/lib/__tests__/cat.entity.d.ts +2 -0
- package/lib/__tests__/cat.entity.js +8 -0
- package/lib/__tests__/cat.entity.js.map +1 -1
- package/lib/decorator.d.ts +1 -1
- package/lib/decorator.js +2 -1
- package/lib/decorator.js.map +1 -1
- package/lib/decorator.spec.js +10 -0
- package/lib/decorator.spec.js.map +1 -1
- package/lib/filter.d.ts +2 -2
- package/lib/filter.js +19 -3
- package/lib/filter.js.map +1 -1
- package/lib/helper.d.ts +1 -1
- package/lib/paginate.d.ts +1 -0
- package/lib/paginate.js +60 -3
- package/lib/paginate.js.map +1 -1
- package/lib/paginate.spec.js +121 -8
- package/lib/paginate.spec.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -315,6 +315,16 @@ const paginateConfig: PaginateConfig<CatEntity> {
|
|
|
315
315
|
*/
|
|
316
316
|
filterableColumns: { age: [FilterOperator.EQ, FilterOperator.IN] },
|
|
317
317
|
|
|
318
|
+
/**
|
|
319
|
+
* Required: false
|
|
320
|
+
* Type: boolean
|
|
321
|
+
* Default: false
|
|
322
|
+
* Description: Throw a 400 error when a request uses an unknown filter column
|
|
323
|
+
* or a non-whitelisted filter operator/suffix. When disabled, invalid filters
|
|
324
|
+
* are silently ignored.
|
|
325
|
+
*/
|
|
326
|
+
throwOnInvalidFilter: false,
|
|
327
|
+
|
|
318
328
|
/**
|
|
319
329
|
* Required: false
|
|
320
330
|
* Type: RelationColumn<CatEntity>
|
|
@@ -630,9 +640,49 @@ const config: PaginateConfig<CatEntity> = {
|
|
|
630
640
|
const result = await paginate<CatEntity>(query, catRepo, config)
|
|
631
641
|
```
|
|
632
642
|
|
|
643
|
+
## Polymorphic sorting
|
|
644
|
+
|
|
645
|
+
Sometimes the value you want to sort on can come from one of several columns — for
|
|
646
|
+
example a record that links to one of two relations and you want to order by
|
|
647
|
+
whichever one is set. Join columns into a single sort term with `~` and the rows
|
|
648
|
+
are ordered by the `COALESCE` of those columns (the first non-`null` value per row).
|
|
649
|
+
|
|
650
|
+
### Endpoint
|
|
651
|
+
|
|
652
|
+
```
|
|
653
|
+
http://localhost:3000/cats?sortBy=bestFriend.age~nemesis.age:DESC
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
This orders by `COALESCE(bestFriend.age, nemesis.age)` — a cat's best friend's age,
|
|
657
|
+
or its nemesis's age when it has no best friend.
|
|
658
|
+
|
|
659
|
+
### Code
|
|
660
|
+
|
|
661
|
+
```typescript
|
|
662
|
+
const config: PaginateConfig<CatEntity> = {
|
|
663
|
+
// Every column used in a group must be listed in sortableColumns.
|
|
664
|
+
sortableColumns: ['id', 'bestFriend.age', 'nemesis.age'],
|
|
665
|
+
relations: ['bestFriend', 'nemesis'],
|
|
666
|
+
}
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
Notes and limitations:
|
|
670
|
+
|
|
671
|
+
- The grouped columns must be **type-compatible** (e.g. all numbers, or all dates).
|
|
672
|
+
Mixing incompatible types lets the database raise its own error; types are not
|
|
673
|
+
coerced for you.
|
|
674
|
+
- A group is only applied when **every** column in it is listed in `sortableColumns`;
|
|
675
|
+
otherwise the term is ignored.
|
|
676
|
+
- Only **plain** and **relation** columns are supported in a group. Embedded, virtual,
|
|
677
|
+
and JSONB-path columns are rejected.
|
|
678
|
+
- Polymorphic groups are **not supported with cursor pagination** (the COALESCE value
|
|
679
|
+
cannot be encoded into a cursor) and will throw.
|
|
680
|
+
|
|
633
681
|
## Filters
|
|
634
682
|
|
|
635
683
|
Filter operators must be whitelisted per column in `PaginateConfig`.
|
|
684
|
+
By default, unknown filter columns and invalid filter operators are ignored. Set
|
|
685
|
+
`throwOnInvalidFilter: true` to return `400 Bad Request` instead.
|
|
636
686
|
|
|
637
687
|
### Examples
|
|
638
688
|
|
|
@@ -90,6 +90,14 @@ __decorate([
|
|
|
90
90
|
(0, typeorm_1.ManyToMany)(() => CatEntity, (cat) => cat.friends),
|
|
91
91
|
__metadata("design:type", Array)
|
|
92
92
|
], CatEntity.prototype, "friendOf", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
(0, typeorm_1.ManyToOne)(() => CatEntity, { nullable: true }),
|
|
95
|
+
__metadata("design:type", CatEntity)
|
|
96
|
+
], CatEntity.prototype, "bestFriend", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, typeorm_1.ManyToOne)(() => CatEntity, { nullable: true }),
|
|
99
|
+
__metadata("design:type", CatEntity)
|
|
100
|
+
], CatEntity.prototype, "nemesis", void 0);
|
|
93
101
|
__decorate([
|
|
94
102
|
(0, typeorm_1.Column)({ type: 'decimal', precision: 5, scale: 2, nullable: true }),
|
|
95
103
|
__metadata("design:type", Number)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cat.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"cat.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAagB;AAChB,uDAAiD;AACjD,qDAA+C;AAC/C,mDAAuE;AACvE,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;IA0DV,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;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA,CAAC,gDAAgD;QAClG,CAAC;IACL,CAAC;CACJ,CAAA;AAnEY,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,kCAAkB,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,EAAC,iCAAiB,CAAC;;4CACnB;AAGjB;IADC,IAAA,0BAAgB,EAAC,kCAAkB,CAAC;;4CACnB;AAIlB;IAFC,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClD,IAAA,mBAAS,GAAE;;0CACQ;AAGpB;IADC,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;;2CAC7B;AAKrB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACnC,SAAS;6CAAO;AAG5B;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACtC,SAAS;0CAAO;AAGzB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACzC;AAKnB;IAHP,IAAA,mBAAS,GAAE;IACZ,yDAAyD;IACzD,mGAAmG;;;;;0CASlG;oBAlEQ,SAAS;IADrB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACX,SAAS,CAmErB"}
|
package/lib/decorator.d.ts
CHANGED
package/lib/decorator.js
CHANGED
|
@@ -44,6 +44,7 @@ function parseIntParam(v) {
|
|
|
44
44
|
return result;
|
|
45
45
|
}
|
|
46
46
|
exports.Paginate = (0, common_1.createParamDecorator)((_data, ctx) => {
|
|
47
|
+
var _a;
|
|
47
48
|
let path;
|
|
48
49
|
let query;
|
|
49
50
|
switch (ctx.getType()) {
|
|
@@ -71,7 +72,7 @@ exports.Paginate = (0, common_1.createParamDecorator)((_data, ctx) => {
|
|
|
71
72
|
break;
|
|
72
73
|
}
|
|
73
74
|
const searchBy = parseParam(query.searchBy, singleSplit);
|
|
74
|
-
const sortBy = parseParam(query.sortBy, multipleSplit);
|
|
75
|
+
const sortBy = (_a = parseParam(query.sortBy, multipleSplit)) === null || _a === void 0 ? void 0 : _a.map(([column, order]) => [column.includes('~') ? column.split('~') : column, order]);
|
|
75
76
|
const select = parseParam(query.select, multipleAndCommaSplit);
|
|
76
77
|
const filter = (0, lodash_1.mapKeys)((0, lodash_1.pickBy)(query, (param, name) => name.includes('filter.') &&
|
|
77
78
|
((0, lodash_1.isString)(param) || (Array.isArray(param) && param.every((p) => (0, lodash_1.isString)(p))))), (_param, name) => name.replace('filter.', ''));
|
package/lib/decorator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AAGvE,mCAA8D;AAC9D,qCAAgC;AAEhC,SAAS,QAAQ,CAAC,IAAa;IAC3B,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC5E,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACtC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,CAAA;AACjE,CAAC;AAeD,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAElE,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,GAAU,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,KAAyB,CAAC,CAAA;IACvC,CAAC;AACL,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAE,GAAU,EAAE,EAAE;IACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7C,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACzC,CAAC,CAAA;AAED,SAAS,UAAU,CAAI,UAAmB,EAAE,WAAgD;IACxF,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;QACrE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;AACvC,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC7B,IAAI,IAAA,cAAK,EAAC,CAAC,CAAC,EAAE,CAAC;QACX,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IAEhD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAA;IACpB,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAEY,QAAA,QAAQ,GAAG,IAAA,6BAAoB,EAAC,CAAC,KAAc,EAAE,GAAqB,EAAiB,EAAE
|
|
1
|
+
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":"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"}
|
package/lib/decorator.spec.js
CHANGED
|
@@ -161,6 +161,16 @@ describe('Decorator', () => {
|
|
|
161
161
|
cursor: 'abc123',
|
|
162
162
|
});
|
|
163
163
|
});
|
|
164
|
+
it('should parse polymorphic (~) sort groups into column arrays', () => {
|
|
165
|
+
const context = expressContextFactory({
|
|
166
|
+
sortBy: ['bestFriend.age~nemesis.age:ASC', 'name:DESC'],
|
|
167
|
+
});
|
|
168
|
+
const result = decoratorfactory(null, context);
|
|
169
|
+
expect(result.sortBy).toStrictEqual([
|
|
170
|
+
[['bestFriend.age', 'nemesis.age'], 'ASC'],
|
|
171
|
+
['name', 'DESC'],
|
|
172
|
+
]);
|
|
173
|
+
});
|
|
164
174
|
it('should handle fastify defined query fields', () => {
|
|
165
175
|
const context = fastifyContextFactory({
|
|
166
176
|
page: '1',
|
|
@@ -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
|
@@ -94,7 +94,7 @@ export declare function addWhereCondition<T>(qb: SelectQueryBuilder<T>, column:
|
|
|
94
94
|
export declare function parseFilterToken(raw?: string): FilterToken | null;
|
|
95
95
|
export declare function parseFilter<T>(query: PaginateQuery, filterableColumns?: {
|
|
96
96
|
[column: string]: (FilterOperator | FilterSuffix | FilterQuantifier | FilterComparator)[] | true;
|
|
97
|
-
}, qb?: SelectQueryBuilder<T
|
|
97
|
+
}, qb?: SelectQueryBuilder<T>, throwOnInvalidFilter?: boolean): ColumnFilters;
|
|
98
98
|
/**
|
|
99
99
|
* Retrieves the relation path for a given column name within the provided metadata.
|
|
100
100
|
*
|
|
@@ -126,7 +126,7 @@ export interface AddFilterOptions {
|
|
|
126
126
|
}
|
|
127
127
|
export declare function addFilter<T>(qb: SelectQueryBuilder<T>, query: PaginateQuery, filterableColumns?: {
|
|
128
128
|
[column: string]: (FilterOperator | FilterSuffix | FilterQuantifier | FilterComparator)[] | true;
|
|
129
|
-
}, opts?: AddFilterOptions): ColumnJoinMethods;
|
|
129
|
+
}, opts?: AddFilterOptions, throwOnInvalidFilter?: boolean): ColumnJoinMethods;
|
|
130
130
|
export declare function addDirectFilters<T>(qb: SelectQueryBuilder<T>, filter: ColumnFilters): void;
|
|
131
131
|
/**
|
|
132
132
|
* Adds correlated EXISTS subqueries to `qb` for all to-many relationship filters in `filter`.
|
package/lib/filter.js
CHANGED
|
@@ -16,6 +16,7 @@ exports.addFilter = addFilter;
|
|
|
16
16
|
exports.addDirectFilters = addDirectFilters;
|
|
17
17
|
exports.addToManySubFilters = addToManySubFilters;
|
|
18
18
|
exports.createSubFilter = createSubFilter;
|
|
19
|
+
const common_1 = require("@nestjs/common");
|
|
19
20
|
const lodash_1 = require("lodash");
|
|
20
21
|
const typeorm_1 = require("typeorm");
|
|
21
22
|
const helper_1 = require("./helper");
|
|
@@ -244,13 +245,16 @@ function fixColumnFilterValue(column, qb, isJsonb = false) {
|
|
|
244
245
|
return value;
|
|
245
246
|
};
|
|
246
247
|
}
|
|
247
|
-
function parseFilter(query, filterableColumns, qb) {
|
|
248
|
+
function parseFilter(query, filterableColumns, qb, throwOnInvalidFilter = false) {
|
|
248
249
|
const filter = {};
|
|
249
250
|
if (!filterableColumns || !query.filter) {
|
|
250
251
|
return {};
|
|
251
252
|
}
|
|
252
253
|
for (const column of Object.keys(query.filter)) {
|
|
253
254
|
if (!(column in filterableColumns)) {
|
|
255
|
+
if (throwOnInvalidFilter) {
|
|
256
|
+
throw new common_1.BadRequestException(`Column '${column}' is not filterable`);
|
|
257
|
+
}
|
|
254
258
|
continue;
|
|
255
259
|
}
|
|
256
260
|
const allowedOperators = filterableColumns[column];
|
|
@@ -263,9 +267,15 @@ function parseFilter(query, filterableColumns, qb) {
|
|
|
263
267
|
}
|
|
264
268
|
if (allowedOperators === true) {
|
|
265
269
|
if (token.operator && !isOperator(token.operator)) {
|
|
270
|
+
if (throwOnInvalidFilter) {
|
|
271
|
+
throw new common_1.BadRequestException(`Invalid filter operator '${token.operator}' for column '${column}'`);
|
|
272
|
+
}
|
|
266
273
|
continue;
|
|
267
274
|
}
|
|
268
275
|
if (token.suffix && !isSuffix(token.suffix)) {
|
|
276
|
+
if (throwOnInvalidFilter) {
|
|
277
|
+
throw new common_1.BadRequestException(`Invalid filter suffix '${token.suffix}' for column '${column}'`);
|
|
278
|
+
}
|
|
269
279
|
continue;
|
|
270
280
|
}
|
|
271
281
|
}
|
|
@@ -273,9 +283,15 @@ function parseFilter(query, filterableColumns, qb) {
|
|
|
273
283
|
if (token.operator &&
|
|
274
284
|
token.operator !== FilterOperator.EQ &&
|
|
275
285
|
!allowedOperators.includes(token.operator)) {
|
|
286
|
+
if (throwOnInvalidFilter) {
|
|
287
|
+
throw new common_1.BadRequestException(`Filter operator '${token.operator}' is not allowed for column '${column}'`);
|
|
288
|
+
}
|
|
276
289
|
continue;
|
|
277
290
|
}
|
|
278
291
|
if (token.suffix && !allowedOperators.includes(token.suffix)) {
|
|
292
|
+
if (throwOnInvalidFilter) {
|
|
293
|
+
throw new common_1.BadRequestException(`Filter suffix '${token.suffix}' is not allowed for column '${column}'`);
|
|
294
|
+
}
|
|
279
295
|
continue;
|
|
280
296
|
}
|
|
281
297
|
if (token.quantifier !== FilterQuantifier.ANY && !allowedOperators.includes(token.quantifier)) {
|
|
@@ -462,9 +478,9 @@ function findFirstToManyRelationship(columnName, metadata) {
|
|
|
462
478
|
relation: relationPath[firstToMany][1],
|
|
463
479
|
};
|
|
464
480
|
}
|
|
465
|
-
function addFilter(qb, query, filterableColumns, opts = {}) {
|
|
481
|
+
function addFilter(qb, query, filterableColumns, opts = {}, throwOnInvalidFilter = false) {
|
|
466
482
|
const mainMetadata = qb.expressionMap.mainAlias.metadata;
|
|
467
|
-
const filter = parseFilter(query, filterableColumns, qb);
|
|
483
|
+
const filter = parseFilter(query, filterableColumns, qb, throwOnInvalidFilter);
|
|
468
484
|
addDirectFilters(qb, filter);
|
|
469
485
|
addToManySubFilters(qb, filter, query, filterableColumns, opts);
|
|
470
486
|
// Direct filters require to be joined, so pass the join information back up to the main pagination builder
|
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
|
@@ -34,7 +34,7 @@ export type Column<T, D extends number = 2> = [D] extends [never] ? never : T ex
|
|
|
34
34
|
export type RelationColumn<T> = Extract<Column<T>, {
|
|
35
35
|
[K in Column<T>]: K extends `${infer R}.${string}` ? R : never;
|
|
36
36
|
}[Column<T>]>;
|
|
37
|
-
export type Order<T> = [Column<T
|
|
37
|
+
export type Order<T> = [Column<T> | Column<T>[], 'ASC' | 'DESC'];
|
|
38
38
|
export type SortBy<T> = Order<T>[];
|
|
39
39
|
export type MappedColumns<T, S> = {
|
|
40
40
|
[key in Column<T> | (string & {})]: S;
|
package/lib/paginate.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export interface PaginateConfig<T> {
|
|
|
56
56
|
defaultJoinMethod?: JoinMethod;
|
|
57
57
|
joinMethods?: Partial<MappedColumns<T, JoinMethod>>;
|
|
58
58
|
buildCountQuery?: (qb: SelectQueryBuilder<T>) => SelectQueryBuilder<any>;
|
|
59
|
+
throwOnInvalidFilter?: boolean;
|
|
59
60
|
}
|
|
60
61
|
export declare enum PaginationLimit {
|
|
61
62
|
NO_PAGINATION = -1,
|
package/lib/paginate.js
CHANGED
|
@@ -302,7 +302,18 @@ async function paginate(query, repo, config) {
|
|
|
302
302
|
const sortBy = [];
|
|
303
303
|
if (query.sortBy) {
|
|
304
304
|
for (const order of query.sortBy) {
|
|
305
|
-
|
|
305
|
+
const [column, direction] = order;
|
|
306
|
+
if (!['ASC', 'DESC'].includes(direction)) {
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
// A polymorphic group (e.g. `colA~colB`) is valid only when every
|
|
310
|
+
// column in the group is sortable.
|
|
311
|
+
if (Array.isArray(column)) {
|
|
312
|
+
if (column.length > 0 && column.every((c) => (0, helper_1.isEntityKey)(config.sortableColumns, c))) {
|
|
313
|
+
sortBy.push(order);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
else if ((0, helper_1.isEntityKey)(config.sortableColumns, column)) {
|
|
306
317
|
sortBy.push(order);
|
|
307
318
|
}
|
|
308
319
|
}
|
|
@@ -310,6 +321,12 @@ async function paginate(query, repo, config) {
|
|
|
310
321
|
if (!sortBy.length) {
|
|
311
322
|
sortBy.push(...(config.defaultSortBy || [[config.sortableColumns[0], 'ASC']]));
|
|
312
323
|
}
|
|
324
|
+
// Polymorphic sort groups rely on a COALESCE expression in the SELECT/ORDER BY,
|
|
325
|
+
// which cannot be encoded into a cursor token. Reject the combination explicitly
|
|
326
|
+
// rather than producing silently-wrong cursors.
|
|
327
|
+
if (config.paginationType === PaginationType.CURSOR && sortBy.some(([column]) => Array.isArray(column))) {
|
|
328
|
+
logAndThrowException('Polymorphic sort groups (using "~") are not supported with cursor pagination.');
|
|
329
|
+
}
|
|
313
330
|
const searchBy = [];
|
|
314
331
|
let [items, totalItems] = [[], 0];
|
|
315
332
|
const queryBuilder = (0, helper_1.isRepository)(repo) ? repo.createQueryBuilder('__root') : repo;
|
|
@@ -429,6 +446,8 @@ async function paginate(query, repo, config) {
|
|
|
429
446
|
}
|
|
430
447
|
};
|
|
431
448
|
const cursorExpressions = sortBy.map(([column, direction]) => {
|
|
449
|
+
// Polymorphic sort groups are rejected for cursor pagination above,
|
|
450
|
+
// so every column here is a plain string.
|
|
432
451
|
const columnProperties = (0, helper_1.getPropertiesByColumnName)(column);
|
|
433
452
|
const { isVirtualProperty, query: virtualQuery } = (0, helper_1.extractVirtualProperty)(queryBuilder, columnProperties);
|
|
434
453
|
const isRelation = (0, helper_1.checkIsRelation)(queryBuilder, columnProperties.propertyPath);
|
|
@@ -484,7 +503,7 @@ async function paginate(query, repo, config) {
|
|
|
484
503
|
if (query.filter) {
|
|
485
504
|
filterJoinMethods = (0, filter_1.addFilter)(queryBuilder, query, config.filterableColumns, {
|
|
486
505
|
maxAndValues: config.maxAndValues,
|
|
487
|
-
});
|
|
506
|
+
}, config.throwOnInvalidFilter);
|
|
488
507
|
}
|
|
489
508
|
const joinMethods = Object.assign(Object.assign({}, filterJoinMethods), config.joinMethods);
|
|
490
509
|
// Add the relations specified by the config, or used in the currently
|
|
@@ -504,7 +523,45 @@ async function paginate(query, repo, config) {
|
|
|
504
523
|
}
|
|
505
524
|
}
|
|
506
525
|
for (const order of sortBy) {
|
|
507
|
-
const
|
|
526
|
+
const [sortColumn, sortDirection] = order;
|
|
527
|
+
// Polymorphic sort: `colA~colB` sorts by COALESCE(colA, colB) — the first
|
|
528
|
+
// non-null value per row. The grouped columns must be type-compatible.
|
|
529
|
+
if (Array.isArray(sortColumn)) {
|
|
530
|
+
const escape = (identifier) => queryBuilder.connection.driver.escape(identifier);
|
|
531
|
+
const coalesceExpr = `COALESCE(${sortColumn
|
|
532
|
+
.map((column) => {
|
|
533
|
+
const props = (0, helper_1.getPropertiesByColumnName)(column);
|
|
534
|
+
const { isVirtualProperty } = (0, helper_1.extractVirtualProperty)(queryBuilder, props);
|
|
535
|
+
const isEmbedded = (0, helper_1.checkIsEmbedded)(queryBuilder, props.propertyPath);
|
|
536
|
+
if (isVirtualProperty || isEmbedded || (0, helper_1.resolveJsonbPath)(queryBuilder, props.column).isJsonb) {
|
|
537
|
+
logAndThrowException(`Polymorphic sort groups (using "~") support only plain and relation columns, not "${column}".`);
|
|
538
|
+
}
|
|
539
|
+
const isRelation = (0, helper_1.checkIsRelation)(queryBuilder, props.propertyPath);
|
|
540
|
+
// For plain and relation columns fixColumnAlias returns `<alias>.<column>`
|
|
541
|
+
// with a single dot. Escape each identifier so camel-cased columns work
|
|
542
|
+
// on case-folding drivers (e.g. Postgres), since this raw expression is
|
|
543
|
+
// added to the SELECT list and is not escaped by the query builder.
|
|
544
|
+
const ref = (0, helper_1.fixColumnAlias)(props, queryBuilder.alias, isRelation, false, false, undefined, queryBuilder);
|
|
545
|
+
const separator = ref.indexOf('.');
|
|
546
|
+
return `${escape(ref.slice(0, separator))}.${escape(ref.slice(separator + 1))}`;
|
|
547
|
+
})
|
|
548
|
+
.join(', ')})`;
|
|
549
|
+
const polymorphAlias = `_polymorph_${sortColumn.join('_').replace(/[^a-zA-Z0-9]/g, '_')}`.toLowerCase();
|
|
550
|
+
queryBuilder.addSelect(coalesceExpr, polymorphAlias);
|
|
551
|
+
if (isMySqlOrMariaDb) {
|
|
552
|
+
if (nullSort) {
|
|
553
|
+
const selectionAliasName = `${polymorphAlias}IsNull`;
|
|
554
|
+
queryBuilder.addSelect(`${coalesceExpr} ${nullSort}`, selectionAliasName);
|
|
555
|
+
queryBuilder.addOrderBy(selectionAliasName);
|
|
556
|
+
}
|
|
557
|
+
queryBuilder.addOrderBy(polymorphAlias, sortDirection);
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
queryBuilder.addOrderBy(polymorphAlias, sortDirection, nullSort);
|
|
561
|
+
}
|
|
562
|
+
continue;
|
|
563
|
+
}
|
|
564
|
+
const columnProperties = (0, helper_1.getPropertiesByColumnName)(sortColumn);
|
|
508
565
|
const { isVirtualProperty, query: virtualQuery } = (0, helper_1.extractVirtualProperty)(queryBuilder, columnProperties);
|
|
509
566
|
const isRelation = (0, helper_1.checkIsRelation)(queryBuilder, columnProperties.propertyPath);
|
|
510
567
|
const isEmbedded = (0, helper_1.checkIsEmbedded)(queryBuilder, columnProperties.propertyPath);
|