nestjs-paginate 4.9.0 → 4.9.2
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 +5 -5
- package/lib/__tests__/cat.entity.d.ts +1 -0
- package/lib/__tests__/cat.entity.js +8 -2
- package/lib/__tests__/cat.entity.js.map +1 -1
- package/lib/filter.js +2 -1
- package/lib/filter.js.map +1 -1
- package/lib/helper.d.ts +2 -1
- package/lib/helper.js +15 -4
- package/lib/helper.js.map +1 -1
- package/lib/paginate.js +6 -4
- package/lib/paginate.js.map +1 -1
- package/lib/paginate.spec.js +17 -3
- package/lib/paginate.spec.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -331,15 +331,15 @@ Multi filters are filters that can be applied to a single column with a comparat
|
|
|
331
331
|
|
|
332
332
|
`?filter.id=$gt:3&filter.id=$lt:5` where column `id` is greater than `3` **and** less than `5`
|
|
333
333
|
|
|
334
|
-
`?filter.id=$gt:3&filter.id=$or
|
|
334
|
+
`?filter.id=$gt:3&filter.id=$or:$lt:5` where column `id` is greater than `3` **or** less than `5`
|
|
335
335
|
|
|
336
|
-
`?filter.id=$gt:3&filter.id=$and
|
|
336
|
+
`?filter.id=$gt:3&filter.id=$and:$lt:5&filter.id=$or:$eq:7` where column `id` is greater than `3` **and** less than `5` **or** equal to `7`
|
|
337
337
|
|
|
338
|
-
**Note:**
|
|
338
|
+
**Note:** The `$and` comparators are not required. The above example is equivalent to:
|
|
339
339
|
|
|
340
|
-
`?filter.id=$gt:3&filter.id=$lt:5&filter.id=$or
|
|
340
|
+
`?filter.id=$gt:3&filter.id=$lt:5&filter.id=$or:$eq:7`
|
|
341
341
|
|
|
342
|
-
**Note:**
|
|
342
|
+
**Note:** The first comparator on the the first filter is ignored because the filters are grouped by the column name and chained with an `$and` to other filters.
|
|
343
343
|
|
|
344
344
|
`...&filter.id=5&filter.id=$or:7&filter.name=Milo&...`
|
|
345
345
|
|
|
@@ -8,13 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var CatEntity_1;
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
exports.CatEntity = void 0;
|
|
13
14
|
const typeorm_1 = require("typeorm");
|
|
14
15
|
const cat_toy_entity_1 = require("./cat-toy.entity");
|
|
15
16
|
const cat_home_entity_1 = require("./cat-home.entity");
|
|
16
17
|
const size_embed_1 = require("./size.embed");
|
|
17
|
-
let CatEntity = class CatEntity {
|
|
18
|
+
let CatEntity = CatEntity_1 = class CatEntity {
|
|
18
19
|
afterLoad() {
|
|
19
20
|
var _a;
|
|
20
21
|
if (this.home && !((_a = this.home) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
@@ -59,6 +60,11 @@ __decorate([
|
|
|
59
60
|
(0, typeorm_1.DeleteDateColumn)({ nullable: true }),
|
|
60
61
|
__metadata("design:type", String)
|
|
61
62
|
], CatEntity.prototype, "deletedAt", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, typeorm_1.ManyToMany)(() => CatEntity_1),
|
|
65
|
+
(0, typeorm_1.JoinTable)(),
|
|
66
|
+
__metadata("design:type", Array)
|
|
67
|
+
], CatEntity.prototype, "friends", void 0);
|
|
62
68
|
__decorate([
|
|
63
69
|
(0, typeorm_1.AfterLoad)()
|
|
64
70
|
// Fix due to typeorm bug that doesn't set entity to null
|
|
@@ -68,7 +74,7 @@ __decorate([
|
|
|
68
74
|
__metadata("design:paramtypes", []),
|
|
69
75
|
__metadata("design:returntype", void 0)
|
|
70
76
|
], CatEntity.prototype, "afterLoad", null);
|
|
71
|
-
CatEntity = __decorate([
|
|
77
|
+
CatEntity = CatEntity_1 = __decorate([
|
|
72
78
|
(0, typeorm_1.Entity)({ name: 'cat' })
|
|
73
79
|
], CatEntity);
|
|
74
80
|
exports.CatEntity = CatEntity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cat.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat.entity.ts"],"names":[],"mappings":"
|
|
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;AAGjC,IAAM,SAAS,iBAAf,MAAM,SAAS;IAoCV,SAAS;;QACb,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,EAAE,CAAA,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;SACnB;IACL,CAAC;CACJ,CAAA;AAxCG;IAAC,IAAA,gCAAsB,GAAE;;qCACf;AAEV;IAAC,IAAA,gBAAM,GAAE;;uCACG;AAEZ;IAAC,IAAA,gBAAM,GAAE;;wCACI;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACT;AAElB;IAAC,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,sBAAS,CAAC;8BAClB,sBAAS;uCAAA;AAEf;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,6BAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;;uCAClC;AAEpB;IAAC,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;AAEnB;IAAC,IAAA,0BAAgB,GAAE;;4CACF;AAEjB;IAAC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACnB;AAElB;IAAC,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,WAAS,CAAC;IAC3B,IAAA,mBAAS,GAAE;;0CACQ;AAEpB;IAAC,IAAA,mBAAS,GAAE;IACZ,yDAAyD;IACzD,mGAAmG;;;;;0CAKlG;AAxCQ,SAAS;IADrB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACX,SAAS,CAyCrB;AAzCY,8BAAS"}
|
package/lib/filter.js
CHANGED
|
@@ -46,9 +46,10 @@ function addWhereCondition(qb, column, filter) {
|
|
|
46
46
|
const columnProperties = (0, helper_1.getPropertiesByColumnName)(column);
|
|
47
47
|
const { isVirtualProperty, query: virtualQuery } = (0, helper_1.extractVirtualProperty)(qb, columnProperties);
|
|
48
48
|
const isRelation = (0, helper_1.checkIsRelation)(qb, columnProperties.propertyPath);
|
|
49
|
+
const isEmbedded = (0, helper_1.checkIsEmbedded)(qb, columnProperties.propertyPath);
|
|
49
50
|
filter[column].forEach((columnFilter, index) => {
|
|
50
51
|
const columnNamePerIteration = `${column}${index}`;
|
|
51
|
-
const alias = (0, helper_1.fixColumnAlias)(columnProperties, qb.alias, isRelation, isVirtualProperty, virtualQuery);
|
|
52
|
+
const alias = (0, helper_1.fixColumnAlias)(columnProperties, qb.alias, isRelation, isVirtualProperty, isEmbedded, virtualQuery);
|
|
52
53
|
const condition = generatePredicateCondition(qb, column, columnFilter, alias, isVirtualProperty);
|
|
53
54
|
const parameters = fixQueryParam(alias, columnNamePerIteration, columnFilter, condition, {
|
|
54
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":";;;AAAA,qCAAoE;AAGpE,
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
|
package/lib/helper.d.ts
CHANGED
|
@@ -21,5 +21,6 @@ export declare function extractVirtualProperty(qb: SelectQueryBuilder<unknown>,
|
|
|
21
21
|
query?: ColumnMetadata['query'];
|
|
22
22
|
};
|
|
23
23
|
export declare function checkIsRelation(qb: SelectQueryBuilder<unknown>, propertyPath: string): boolean;
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function checkIsEmbedded(qb: SelectQueryBuilder<unknown>, propertyPath: string): boolean;
|
|
25
|
+
export declare function fixColumnAlias(properties: ColumnProperties, alias: string, isRelation?: boolean, isVirtualProperty?: boolean, isEmbedded?: boolean, query?: ColumnMetadata['query']): string;
|
|
25
26
|
export {};
|
package/lib/helper.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fixColumnAlias = exports.checkIsRelation = exports.extractVirtualProperty = exports.getPropertiesByColumnName = exports.positiveNumberOrDefault = void 0;
|
|
3
|
+
exports.fixColumnAlias = exports.checkIsEmbedded = exports.checkIsRelation = exports.extractVirtualProperty = exports.getPropertiesByColumnName = exports.positiveNumberOrDefault = void 0;
|
|
4
4
|
const positiveNumberOrDefault = (value, defaultValue, minValue = 0) => value === undefined || value < minValue ? defaultValue : value;
|
|
5
5
|
exports.positiveNumberOrDefault = positiveNumberOrDefault;
|
|
6
6
|
function getPropertiesByColumnName(column) {
|
|
@@ -32,8 +32,16 @@ function checkIsRelation(qb, propertyPath) {
|
|
|
32
32
|
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));
|
|
33
33
|
}
|
|
34
34
|
exports.checkIsRelation = checkIsRelation;
|
|
35
|
+
function checkIsEmbedded(qb, propertyPath) {
|
|
36
|
+
var _a, _b, _c;
|
|
37
|
+
if (!qb || !propertyPath) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
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.hasEmbeddedWithPropertyPath(propertyPath));
|
|
41
|
+
}
|
|
42
|
+
exports.checkIsEmbedded = checkIsEmbedded;
|
|
35
43
|
// This function is used to fix the column alias when using relation, embedded or virtual properties
|
|
36
|
-
function fixColumnAlias(properties, alias, isRelation = false, isVirtualProperty = false, query) {
|
|
44
|
+
function fixColumnAlias(properties, alias, isRelation = false, isVirtualProperty = false, isEmbedded = false, query) {
|
|
37
45
|
if (isRelation) {
|
|
38
46
|
if (isVirtualProperty && query) {
|
|
39
47
|
return `(${query(`${alias}_${properties.propertyPath}`)})`; // () is needed to avoid parameter conflict
|
|
@@ -42,14 +50,17 @@ function fixColumnAlias(properties, alias, isRelation = false, isVirtualProperty
|
|
|
42
50
|
return `${alias}_${properties.propertyPath}_${properties.propertyName}`;
|
|
43
51
|
}
|
|
44
52
|
else {
|
|
45
|
-
return `${alias}_${properties.propertyPath}.${properties.propertyName}`;
|
|
53
|
+
return `${alias}_${properties.propertyPath}.${properties.propertyName}`;
|
|
46
54
|
}
|
|
47
55
|
}
|
|
48
56
|
else if (isVirtualProperty) {
|
|
49
57
|
return query ? `(${query(`${alias}`)})` : `${alias}_${properties.propertyName}`;
|
|
50
58
|
}
|
|
59
|
+
else if (isEmbedded) {
|
|
60
|
+
return `${alias}.${properties.propertyPath}.${properties.propertyName}`;
|
|
61
|
+
}
|
|
51
62
|
else {
|
|
52
|
-
return `${alias}.${properties.propertyName}`;
|
|
63
|
+
return `${alias}.${properties.propertyName}`;
|
|
53
64
|
}
|
|
54
65
|
}
|
|
55
66
|
exports.fixColumnAlias = fixColumnAlias;
|
package/lib/helper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAgCO,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,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC;YACI,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;YAC7B,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,4CAA4C;SAC9F;QACH,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;AAC3C,CAAC;AARD,8DAQC;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,eAAe,CAAC,EAA+B,EAAE,YAAoB;;IACjF,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE;QACtB,OAAO,KAAK,CAAA;KACf;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,oGAAoG;AACpG,SAAgB,cAAc,CAC1B,UAA4B,EAC5B,KAAa,EACb,UAAU,GAAG,KAAK,EAClB,iBAAiB,GAAG,KAAK,EACzB,KAA+B;IAE/B,IAAI,UAAU,EAAE;QACZ,IAAI,iBAAiB,IAAI,KAAK,EAAE;YAC5B,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAA,CAAC,2CAA2C;SACzG;aAAM,IAAI,iBAAiB,IAAI,CAAC,KAAK,EAAE;YACpC,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,EAAE,CAAA;SAC1E;aAAM;YACH,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,EAAE,CAAA
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
|
package/lib/paginate.js
CHANGED
|
@@ -80,8 +80,8 @@ async function paginate(query, repo, config) {
|
|
|
80
80
|
// Switch from take and skip to limit and offset
|
|
81
81
|
// due to this problem https://github.com/typeorm/typeorm/issues/5670
|
|
82
82
|
// (anyway this creates more clean query without double dinstict)
|
|
83
|
-
queryBuilder.limit(limit).offset((page - 1) * limit)
|
|
84
|
-
|
|
83
|
+
// queryBuilder.limit(limit).offset((page - 1) * limit)
|
|
84
|
+
queryBuilder.take(limit).skip((page - 1) * limit);
|
|
85
85
|
}
|
|
86
86
|
if ((_a = config.relations) === null || _a === void 0 ? void 0 : _a.length) {
|
|
87
87
|
config.relations.forEach((relation) => {
|
|
@@ -96,7 +96,8 @@ async function paginate(query, repo, config) {
|
|
|
96
96
|
const columnProperties = (0, helper_1.getPropertiesByColumnName)(order[0]);
|
|
97
97
|
const { isVirtualProperty } = (0, helper_1.extractVirtualProperty)(queryBuilder, columnProperties);
|
|
98
98
|
const isRelation = (0, helper_1.checkIsRelation)(queryBuilder, columnProperties.propertyPath);
|
|
99
|
-
const
|
|
99
|
+
const isEmbeded = (0, helper_1.checkIsEmbedded)(queryBuilder, columnProperties.propertyPath);
|
|
100
|
+
const alias = (0, helper_1.fixColumnAlias)(columnProperties, queryBuilder.alias, isRelation, isVirtualProperty, isEmbeded);
|
|
100
101
|
queryBuilder.addOrderBy(alias, order[1], nullSort);
|
|
101
102
|
}
|
|
102
103
|
if (((_b = config.select) === null || _b === void 0 ? void 0 : _b.length) > 0) {
|
|
@@ -121,7 +122,8 @@ async function paginate(query, repo, config) {
|
|
|
121
122
|
const property = (0, helper_1.getPropertiesByColumnName)(column);
|
|
122
123
|
const { isVirtualProperty, query: virtualQuery } = (0, helper_1.extractVirtualProperty)(qb, property);
|
|
123
124
|
const isRelation = (0, helper_1.checkIsRelation)(qb, property.propertyPath);
|
|
124
|
-
const
|
|
125
|
+
const isEmbeded = (0, helper_1.checkIsEmbedded)(qb, property.propertyPath);
|
|
126
|
+
const alias = (0, helper_1.fixColumnAlias)(property, qb.alias, isRelation, isVirtualProperty, isEmbeded, virtualQuery);
|
|
125
127
|
const condition = {
|
|
126
128
|
operator: 'ilike',
|
|
127
129
|
parameters: [alias, `:${column}`],
|
package/lib/paginate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate.js","sourceRoot":"","sources":["../src/paginate.ts"],"names":[],"mappings":";;;AAAA,qCAAmG;AAEnG,2CAAoE;AACpE,mCAAgC;AAChC,6CAAuC;AAEvC,
|
|
1
|
+
{"version":3,"file":"paginate.js","sourceRoot":"","sources":["../src/paginate.ts"],"names":[],"mappings":"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"}
|
package/lib/paginate.spec.js
CHANGED
|
@@ -46,6 +46,8 @@ describe('paginate', () => {
|
|
|
46
46
|
catHomeRepo.create({ name: 'Box', cat: cats[0] }),
|
|
47
47
|
catHomeRepo.create({ name: 'House', cat: cats[1] }),
|
|
48
48
|
]);
|
|
49
|
+
// add friends to Milo
|
|
50
|
+
catRepo.save(Object.assign(Object.assign({}, cats[0]), { friends: cats.slice(1) }));
|
|
49
51
|
});
|
|
50
52
|
it('should return an instance of Paginated', async () => {
|
|
51
53
|
const config = {
|
|
@@ -378,9 +380,9 @@ describe('paginate', () => {
|
|
|
378
380
|
};
|
|
379
381
|
const result = await (0, paginate_1.paginate)(query, catRepo, config);
|
|
380
382
|
expect(result.meta.search).toStrictEqual('Mouse');
|
|
381
|
-
const toy = (0, lodash_1.clone)(catToys[
|
|
383
|
+
const toy = (0, lodash_1.clone)(catToys[2]);
|
|
382
384
|
delete toy.cat;
|
|
383
|
-
const toy2 = (0, lodash_1.clone)(catToys[
|
|
385
|
+
const toy2 = (0, lodash_1.clone)(catToys[1]);
|
|
384
386
|
delete toy2.cat;
|
|
385
387
|
expect(result.data).toStrictEqual([Object.assign((0, lodash_1.clone)(cats[0]), { toys: [toy2, toy] })]);
|
|
386
388
|
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=Mouse');
|
|
@@ -667,7 +669,7 @@ describe('paginate', () => {
|
|
|
667
669
|
delete copy.cat;
|
|
668
670
|
return copy;
|
|
669
671
|
});
|
|
670
|
-
copyCats[0].toys = [copyToys[0], copyToys[
|
|
672
|
+
copyCats[0].toys = [copyToys[0], copyToys[1], copyToys[2]];
|
|
671
673
|
copyCats[1].toys = [copyToys[3]];
|
|
672
674
|
const orderedCats = [copyCats[3], copyCats[1], copyCats[2], copyCats[0], copyCats[4]];
|
|
673
675
|
expect(result.data).toStrictEqual(orderedCats);
|
|
@@ -1583,5 +1585,17 @@ describe('paginate', () => {
|
|
|
1583
1585
|
});
|
|
1584
1586
|
});
|
|
1585
1587
|
});
|
|
1588
|
+
it('should return the right amount of results if a many to many relation is involved', async () => {
|
|
1589
|
+
const config = {
|
|
1590
|
+
sortableColumns: ['id'],
|
|
1591
|
+
defaultSortBy: [['id', 'ASC']],
|
|
1592
|
+
relations: ['friends'],
|
|
1593
|
+
};
|
|
1594
|
+
const query = {
|
|
1595
|
+
path: '',
|
|
1596
|
+
};
|
|
1597
|
+
const result = await (0, paginate_1.paginate)(query, catRepo, config);
|
|
1598
|
+
expect(result.data.length).toBe(4);
|
|
1599
|
+
});
|
|
1586
1600
|
});
|
|
1587
1601
|
//# sourceMappingURL=paginate.spec.js.map
|