nestjs-paginate 4.13.0 → 4.14.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 +26 -1
- package/lib/filter.js +2 -2
- package/lib/filter.js.map +1 -1
- package/lib/helper.d.ts +3 -1
- package/lib/helper.js +17 -6
- package/lib/helper.js.map +1 -1
- package/lib/paginate.d.ts +2 -2
- package/lib/paginate.js +2 -2
- package/lib/paginate.js.map +1 -1
- package/lib/paginate.spec.js +91 -43
- package/lib/paginate.spec.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -11
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ Pagination and filtering helper method for TypeORM repositories or query builder
|
|
|
15
15
|
- Search across columns
|
|
16
16
|
- Select columns
|
|
17
17
|
- Filter using operators (`$eq`, `$not`, `$null`, `$in`, `$gt`, `$gte`, `$lt`, `$lte`, `$btw`, `$ilike`, `$sw`)
|
|
18
|
-
- Include relations
|
|
18
|
+
- Include relations and nested relations
|
|
19
19
|
- Virtual column support
|
|
20
20
|
|
|
21
21
|
## Installation
|
|
@@ -351,6 +351,31 @@ const config: PaginateConfig<CatEntity> = {
|
|
|
351
351
|
const result = await paginate<CatEntity>(query, catRepo, config)
|
|
352
352
|
```
|
|
353
353
|
|
|
354
|
+
## Usage with nested Relations
|
|
355
|
+
|
|
356
|
+
Similar as with relations, you can specify nested relations for sorting, filtering, search and relations:
|
|
357
|
+
|
|
358
|
+
### Example
|
|
359
|
+
|
|
360
|
+
#### Endpoint
|
|
361
|
+
|
|
362
|
+
```url
|
|
363
|
+
http://localhost:3000/cats?filter.home.pillows.color=$eq:ping,String
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
#### Code
|
|
367
|
+
|
|
368
|
+
```typescript
|
|
369
|
+
const config: PaginateConfig<CatEntity> = {
|
|
370
|
+
relations: { home: { pillows: true } },
|
|
371
|
+
sortableColumns: ['id', 'name', 'home.pillows.color'],
|
|
372
|
+
searchableColumns: ['name', 'home.pillows.color'],
|
|
373
|
+
filterableColumns: { 'home.pillows.color': [FilterOperator.EQ] },
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
const result = await paginate<CatEntity>(query, catRepo, config)
|
|
377
|
+
```
|
|
378
|
+
|
|
354
379
|
## Usage of pagination type
|
|
355
380
|
|
|
356
381
|
You can use either `limit`/`offset` or `take`/`skip` to return paginated results.
|
package/lib/filter.js
CHANGED
|
@@ -49,8 +49,8 @@ function addWhereCondition(qb, column, filter) {
|
|
|
49
49
|
const isEmbedded = (0, helper_1.checkIsEmbedded)(qb, columnProperties.propertyPath);
|
|
50
50
|
const alias = (0, helper_1.fixColumnAlias)(columnProperties, qb.alias, isRelation, isVirtualProperty, isEmbedded, virtualQuery);
|
|
51
51
|
filter[column].forEach((columnFilter, index) => {
|
|
52
|
-
const columnNamePerIteration = `${column}${index}`;
|
|
53
|
-
const condition = generatePredicateCondition(qb, column, columnFilter, alias, isVirtualProperty);
|
|
52
|
+
const columnNamePerIteration = `${columnProperties.column}${index}`;
|
|
53
|
+
const condition = generatePredicateCondition(qb, columnProperties.column, columnFilter, alias, isVirtualProperty);
|
|
54
54
|
const parameters = fixQueryParam(alias, columnNamePerIteration, columnFilter, condition, {
|
|
55
55
|
[columnNamePerIteration]: columnFilter.findOperator.value,
|
|
56
56
|
});
|
package/lib/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":";;;AAAA,qCAAoE;AAGpE,qCAMiB;AACjB,yCAQmB;AAanB,uGAAuG;AACvG,oFAAoF;AACpF,SAAgB,aAAa,CACzB,KAAa,EACb,MAAc,EACd,MAAc,EACd,SAAiC,EACjC,UAAqC;IAErC,MAAM,aAAa,GAAI,SAAS,CAAC,QAAmB,KAAK,KAAK,CAAA;IAE9D,MAAM,cAAc,GAAG,CACnB,KAAa,EACb,MAAc,EACd,MAAc,EACd,QAA4C,EAC5C,UAAqC,EACC,EAAE;QACxC,IAAI,gBAAgB,GAAQ,SAAS,CAAA;QACrC,IAAI,MAAM,GAAG,UAAU,CAAA;QACvB,QAAQ,QAAQ,EAAE;YACd,KAAK,SAAS;gBACV,gBAAgB,GAAG,CAAC,KAAK,EAAE,IAAI,MAAM,OAAO,EAAE,IAAI,MAAM,KAAK,CAAC,CAAA;gBAC9D,MAAM,GAAG;oBACL,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChD,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;iBACjD,CAAA;gBACD,MAAK;YACT,KAAK,IAAI;gBACL,gBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,MAAM,EAAE,CAAC,CAAA;gBAC3C,MAAK;YACT;gBACI,gBAAgB,GAAG,CAAC,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC,CAAA;gBACxC,MAAK;SACZ;QACD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAA;IACvC,CAAC,CAAA;IAED,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,cAAc,CAC/C,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EACvE,UAAU,CACb,CAAA;IAED,IAAI,aAAa,EAAE;QACf,SAAS,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAA;KAC1D;SAAM;QACH,SAAS,CAAC,UAAU,GAAG,gBAAgB,CAAA;KAC1C;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AAnDD,sCAmDC;AAED,SAAgB,0BAA0B,CACtC,EAA+B,EAC/B,MAAc,EACd,MAAc,EACd,KAAa,EACb,iBAAiB,GAAG,KAAK;IAEzB,OAAO,EAAE,CAAC,4BAA4B,CAAC,CACnC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAClC,MAAM,CAAC,YAAY,CACI,CAAA;AAC/B,CAAC;AAXD,gEAWC;AAED,SAAgB,iBAAiB,CAAI,EAAyB,EAAE,MAAc,EAAE,MAAsB;IAClG,MAAM,gBAAgB,GAAG,IAAA,kCAAyB,EAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAA,+BAAsB,EAAC,EAAE,EAAE,gBAAgB,CAAC,CAAA;IAC/F,MAAM,UAAU,GAAG,IAAA,wBAAe,EAAC,EAAE,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACrE,MAAM,UAAU,GAAG,IAAA,wBAAe,EAAC,EAAE,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACrE,MAAM,KAAK,GAAG,IAAA,uBAAc,EAAC,gBAAgB,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;IACjH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,YAAoB,EAAE,KAAa,EAAE,EAAE;QAC3D,MAAM,sBAAsB,GAAG,GAAG,MAAM,GAAG,KAAK,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
|
package/lib/helper.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SelectQueryBuilder } from 'typeorm';
|
|
2
2
|
import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata';
|
|
3
|
-
type Join<K, P> = K extends string ?
|
|
3
|
+
type Join<K, P> = K extends string ? P extends string ? `${K}${'' extends P ? '' : '.'}${P | `(${P}` | `${P})`}` : never : never;
|
|
4
4
|
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...0[]];
|
|
5
5
|
export type Column<T, D extends number = 2> = [D] extends [never] ? never : T extends Record<string, any> ? {
|
|
6
6
|
[K in keyof T]-?: K extends string ? T[K] extends Date ? `${K}` : T[K] extends Array<infer U> ? `${K}` | Join<K, Column<U, Prev[D]>> : `${K}` | Join<K, Column<T[K], Prev[D]>> : never;
|
|
@@ -14,6 +14,8 @@ export declare const positiveNumberOrDefault: (value: number | undefined, defaul
|
|
|
14
14
|
export type ColumnProperties = {
|
|
15
15
|
propertyPath?: string;
|
|
16
16
|
propertyName: string;
|
|
17
|
+
isEmbedded: boolean;
|
|
18
|
+
column: string;
|
|
17
19
|
};
|
|
18
20
|
export declare function getPropertiesByColumnName(column: string): ColumnProperties;
|
|
19
21
|
export declare function extractVirtualProperty(qb: SelectQueryBuilder<unknown>, columnProperties: ColumnProperties): {
|
package/lib/helper.js
CHANGED
|
@@ -5,12 +5,23 @@ const positiveNumberOrDefault = (value, defaultValue, minValue = 0) => value ===
|
|
|
5
5
|
exports.positiveNumberOrDefault = positiveNumberOrDefault;
|
|
6
6
|
function getPropertiesByColumnName(column) {
|
|
7
7
|
const propertyPath = column.split('.');
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
if (propertyPath.length > 1) {
|
|
9
|
+
const propertyNamePath = propertyPath.slice(1);
|
|
10
|
+
let isEmbedded = false, propertyName = propertyNamePath.join('.');
|
|
11
|
+
if (!propertyName.startsWith('(') && propertyNamePath.length > 1) {
|
|
12
|
+
isEmbedded = true;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
+
propertyName = propertyName.replace('(', '').replace(')', '');
|
|
15
|
+
return {
|
|
16
|
+
propertyPath: propertyPath[0],
|
|
17
|
+
propertyName,
|
|
18
|
+
isEmbedded,
|
|
19
|
+
column: `${propertyPath[0]}.${propertyName}`,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return { propertyName: propertyPath[0], isEmbedded: false, column: propertyPath[0] };
|
|
24
|
+
}
|
|
14
25
|
}
|
|
15
26
|
exports.getPropertiesByColumnName = getPropertiesByColumnName;
|
|
16
27
|
function extractVirtualProperty(qb, columnProperties) {
|
|
@@ -62,7 +73,7 @@ function fixColumnAlias(properties, alias, isRelation = false, isVirtualProperty
|
|
|
62
73
|
if (isVirtualProperty && query) {
|
|
63
74
|
return `(${query(`${alias}_${properties.propertyPath}`)})`; // () is needed to avoid parameter conflict
|
|
64
75
|
}
|
|
65
|
-
else if (isVirtualProperty && !query) {
|
|
76
|
+
else if ((isVirtualProperty && !query) || properties.isEmbedded) {
|
|
66
77
|
return `${alias}_${properties.propertyPath}_${properties.propertyName}`;
|
|
67
78
|
}
|
|
68
79
|
else {
|
package/lib/helper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAoCO,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;QACzB,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9C,IAAI,UAAU,GAAG,KAAK,EAClB,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;YAC9D,UAAU,GAAG,IAAI,CAAA;SACpB;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;YACZ,UAAU;YACV,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE;SAC/C,CAAA;KACJ;SAAM;QACH,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;KACvF;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;QACtB,OAAO,KAAK,CAAA;KACf;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;QAC1B,OAAO,KAAK,CAAA;KACf;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;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,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,UAAU,GAAG,KAAK,EAClB,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,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE;YAC/D,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;SAC1E;KACJ;SAAM,IAAI,iBAAiB,EAAE;QAC1B,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,EAAE,CAAA;KAClF;SAAM,IAAI,UAAU,EAAE;QACnB,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,EAAE,CAAA;KAC1E;SAAM;QACH,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,YAAY,EAAE,CAAA;KAC/C;AACL,CAAC;AAvBD,wCAuBC"}
|
package/lib/paginate.d.ts
CHANGED
|
@@ -33,13 +33,13 @@ export interface PaginateConfig<T> {
|
|
|
33
33
|
sortableColumns: Column<T>[];
|
|
34
34
|
nullSort?: 'first' | 'last';
|
|
35
35
|
searchableColumns?: Column<T>[];
|
|
36
|
-
select?: Column<T>[];
|
|
36
|
+
select?: Column<T>[] | string[];
|
|
37
37
|
maxLimit?: number;
|
|
38
38
|
defaultSortBy?: SortBy<T>;
|
|
39
39
|
defaultLimit?: number;
|
|
40
40
|
where?: FindOptionsWhere<T> | FindOptionsWhere<T>[];
|
|
41
41
|
filterableColumns?: {
|
|
42
|
-
[key in Column<T>]?: (FilterOperator | FilterSuffix)[];
|
|
42
|
+
[key in Column<T> | string]?: (FilterOperator | FilterSuffix)[];
|
|
43
43
|
};
|
|
44
44
|
loadEagerRelations?: boolean;
|
|
45
45
|
withDeleted?: boolean;
|
package/lib/paginate.js
CHANGED
|
@@ -168,13 +168,13 @@ async function paginate(query, repo, config) {
|
|
|
168
168
|
const alias = (0, helper_1.fixColumnAlias)(property, qb.alias, isRelation, isVirtualProperty, isEmbeded, virtualQuery);
|
|
169
169
|
const condition = {
|
|
170
170
|
operator: 'ilike',
|
|
171
|
-
parameters: [alias, `:${column}`],
|
|
171
|
+
parameters: [alias, `:${property.column}`],
|
|
172
172
|
};
|
|
173
173
|
if (['postgres', 'cockroachdb'].includes(queryBuilder.connection.options.type)) {
|
|
174
174
|
condition.parameters[0] += '::text';
|
|
175
175
|
}
|
|
176
176
|
qb.orWhere(qb['createWhereConditionExpression'](condition), {
|
|
177
|
-
[column]: `%${query.search}%`,
|
|
177
|
+
[property.column]: `%${query.search}%`,
|
|
178
178
|
});
|
|
179
179
|
}
|
|
180
180
|
}));
|
package/lib/paginate.js.map
CHANGED
|
@@ -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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"}
|
package/lib/paginate.spec.js
CHANGED
|
@@ -732,7 +732,7 @@ describe('paginate', () => {
|
|
|
732
732
|
});
|
|
733
733
|
it('should return result based on sort on embedded entity on one-to-many relation', async () => {
|
|
734
734
|
const config = {
|
|
735
|
-
sortableColumns: ['id', 'name', 'toys.size.height', 'toys.size.length', 'toys.size.width'],
|
|
735
|
+
sortableColumns: ['id', 'name', 'toys.(size.height)', 'toys.(size.length)', 'toys.(size.width)'],
|
|
736
736
|
searchableColumns: ['name'],
|
|
737
737
|
relations: ['toys'],
|
|
738
738
|
};
|
|
@@ -740,8 +740,8 @@ describe('paginate', () => {
|
|
|
740
740
|
path: '',
|
|
741
741
|
sortBy: [
|
|
742
742
|
['id', 'DESC'],
|
|
743
|
-
['toys.size.height', 'ASC'],
|
|
744
|
-
['toys.size.length', 'ASC'],
|
|
743
|
+
['toys.(size.height)', 'ASC'],
|
|
744
|
+
['toys.(size.length)', 'ASC'],
|
|
745
745
|
],
|
|
746
746
|
};
|
|
747
747
|
const result = await (0, paginate_1.paginate)(query, catRepo, config);
|
|
@@ -761,43 +761,43 @@ describe('paginate', () => {
|
|
|
761
761
|
Object.assign((0, lodash_1.clone)(cats[0]), { toys: [toy1, toy2, toy0] }),
|
|
762
762
|
];
|
|
763
763
|
expect(result.data).toStrictEqual(orderedCats);
|
|
764
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:DESC&sortBy=toys.size.height:ASC&sortBy=toys.size.length:ASC');
|
|
764
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:DESC&sortBy=toys.(size.height):ASC&sortBy=toys.(size.length):ASC');
|
|
765
765
|
});
|
|
766
766
|
it('should return result based on sort on embedded entity on many-to-one relation', async () => {
|
|
767
767
|
const config = {
|
|
768
|
-
sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
|
|
768
|
+
sortableColumns: ['id', 'name', 'cat.(size.height)', 'cat.(size.length)', 'cat.(size.width)'],
|
|
769
769
|
searchableColumns: ['name'],
|
|
770
770
|
relations: ['cat'],
|
|
771
771
|
};
|
|
772
772
|
const query = {
|
|
773
773
|
path: '',
|
|
774
774
|
sortBy: [
|
|
775
|
-
['cat.size.height', 'DESC'],
|
|
776
|
-
['cat.size.length', 'DESC'],
|
|
775
|
+
['cat.(size.height)', 'DESC'],
|
|
776
|
+
['cat.(size.length)', 'DESC'],
|
|
777
777
|
['name', 'ASC'],
|
|
778
778
|
],
|
|
779
779
|
};
|
|
780
780
|
const result = await (0, paginate_1.paginate)(query, catToyRepo, config);
|
|
781
781
|
const orderedToys = [catToys[3], catToys[0], catToys[2], catToys[1]];
|
|
782
782
|
expect(result.data).toStrictEqual(orderedToys);
|
|
783
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.size.height:DESC&sortBy=cat.size.length:DESC&sortBy=name:ASC');
|
|
783
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.(size.height):DESC&sortBy=cat.(size.length):DESC&sortBy=name:ASC');
|
|
784
784
|
});
|
|
785
785
|
it('should return result based on sort on embedded entity on one-to-one relation', async () => {
|
|
786
786
|
const config = {
|
|
787
|
-
sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
|
|
787
|
+
sortableColumns: ['id', 'name', 'cat.(size.height)', 'cat.(size.length)', 'cat.(size.width)'],
|
|
788
788
|
searchableColumns: ['name'],
|
|
789
789
|
relations: ['cat'],
|
|
790
790
|
};
|
|
791
791
|
const query = {
|
|
792
792
|
path: '',
|
|
793
|
-
sortBy: [['cat.size.height', 'DESC']],
|
|
793
|
+
sortBy: [['cat.(size.height)', 'DESC']],
|
|
794
794
|
};
|
|
795
795
|
const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
|
|
796
796
|
const orderedHomes = (0, lodash_1.clone)([catHomes[1], catHomes[0]]);
|
|
797
797
|
orderedHomes[0].countCat = cats.filter((cat) => cat.id === orderedHomes[0].cat.id).length;
|
|
798
798
|
orderedHomes[1].countCat = cats.filter((cat) => cat.id === orderedHomes[1].cat.id).length;
|
|
799
799
|
expect(result.data).toStrictEqual(orderedHomes);
|
|
800
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.size.height:DESC');
|
|
800
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.(size.height):DESC');
|
|
801
801
|
});
|
|
802
802
|
it('should return result based on search on embedded entity', async () => {
|
|
803
803
|
const config = {
|
|
@@ -832,8 +832,8 @@ describe('paginate', () => {
|
|
|
832
832
|
});
|
|
833
833
|
it('should return result based on search term on embedded entity on many-to-one relation', async () => {
|
|
834
834
|
const config = {
|
|
835
|
-
sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
|
|
836
|
-
searchableColumns: ['cat.size.height'],
|
|
835
|
+
sortableColumns: ['id', 'name', 'cat.(size.height)', 'cat.(size.length)', 'cat.(size.width)'],
|
|
836
|
+
searchableColumns: ['cat.(size.height)'],
|
|
837
837
|
relations: ['cat'],
|
|
838
838
|
};
|
|
839
839
|
const query = {
|
|
@@ -847,8 +847,8 @@ describe('paginate', () => {
|
|
|
847
847
|
});
|
|
848
848
|
it('should return result based on search term on embedded entity on one-to-many relation', async () => {
|
|
849
849
|
const config = {
|
|
850
|
-
sortableColumns: ['id', 'name', 'toys.size.height', 'toys.size.length', 'toys.size.width'],
|
|
851
|
-
searchableColumns: ['toys.size.height'],
|
|
850
|
+
sortableColumns: ['id', 'name', 'toys.(size.height)', 'toys.(size.length)', 'toys.(size.width)'],
|
|
851
|
+
searchableColumns: ['toys.(size.height)'],
|
|
852
852
|
relations: ['toys'],
|
|
853
853
|
};
|
|
854
854
|
const query = {
|
|
@@ -868,8 +868,8 @@ describe('paginate', () => {
|
|
|
868
868
|
});
|
|
869
869
|
it('should return result based on search term on embedded entity on one-to-one relation', async () => {
|
|
870
870
|
const config = {
|
|
871
|
-
sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
|
|
872
|
-
searchableColumns: ['cat.size.height'],
|
|
871
|
+
sortableColumns: ['id', 'name', 'cat.(size.height)', 'cat.(size.length)', 'cat.(size.width)'],
|
|
872
|
+
searchableColumns: ['cat.(size.height)'],
|
|
873
873
|
relations: ['cat'],
|
|
874
874
|
};
|
|
875
875
|
const query = {
|
|
@@ -884,19 +884,19 @@ describe('paginate', () => {
|
|
|
884
884
|
});
|
|
885
885
|
it('should return result based on sort and search on embedded many-to-one relation', async () => {
|
|
886
886
|
const config = {
|
|
887
|
-
sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
|
|
888
|
-
searchableColumns: ['cat.size.width'],
|
|
887
|
+
sortableColumns: ['id', 'name', 'cat.(size.height)', 'cat.(size.length)', 'cat.(size.width)'],
|
|
888
|
+
searchableColumns: ['cat.(size.width)'],
|
|
889
889
|
relations: ['cat'],
|
|
890
890
|
};
|
|
891
891
|
const query = {
|
|
892
892
|
path: '',
|
|
893
893
|
search: '1',
|
|
894
|
-
sortBy: [['cat.size.height', 'DESC']],
|
|
894
|
+
sortBy: [['cat.(size.height)', 'DESC']],
|
|
895
895
|
};
|
|
896
896
|
const result = await (0, paginate_1.paginate)(query, catToyRepo, config);
|
|
897
897
|
expect(result.meta.search).toStrictEqual('1');
|
|
898
898
|
expect(result.data).toStrictEqual([catToys[3], catToys[0], catToys[1], catToys[2]]);
|
|
899
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.size.height:DESC&search=1');
|
|
899
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.(size.height):DESC&search=1');
|
|
900
900
|
});
|
|
901
901
|
it('should return result based on filter on embedded entity', async () => {
|
|
902
902
|
const config = {
|
|
@@ -948,34 +948,34 @@ describe('paginate', () => {
|
|
|
948
948
|
relations: ['cat'],
|
|
949
949
|
sortableColumns: ['id', 'name'],
|
|
950
950
|
filterableColumns: {
|
|
951
|
-
'cat.size.height': [operator_1.FilterSuffix.NOT],
|
|
951
|
+
'cat.(size.height)': [operator_1.FilterSuffix.NOT],
|
|
952
952
|
},
|
|
953
953
|
};
|
|
954
954
|
const query = {
|
|
955
955
|
path: '',
|
|
956
956
|
filter: {
|
|
957
|
-
'cat.size.height': '$not:25',
|
|
957
|
+
'cat.(size.height)': '$not:25',
|
|
958
958
|
},
|
|
959
959
|
};
|
|
960
960
|
const result = await (0, paginate_1.paginate)(query, catToyRepo, config);
|
|
961
961
|
expect(result.meta.filter).toStrictEqual({
|
|
962
|
-
'cat.size.height': '$not:25',
|
|
962
|
+
'cat.(size.height)': '$not:25',
|
|
963
963
|
});
|
|
964
964
|
expect(result.data).toStrictEqual([catToys[3]]);
|
|
965
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.size.height=$not:25');
|
|
965
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.(size.height)=$not:25');
|
|
966
966
|
});
|
|
967
967
|
it('should return result based on filter on embedded on one-to-many relation', async () => {
|
|
968
968
|
const config = {
|
|
969
969
|
relations: ['toys'],
|
|
970
970
|
sortableColumns: ['id', 'name'],
|
|
971
971
|
filterableColumns: {
|
|
972
|
-
'toys.size.height': [operator_1.FilterOperator.EQ],
|
|
972
|
+
'toys.(size.height)': [operator_1.FilterOperator.EQ],
|
|
973
973
|
},
|
|
974
974
|
};
|
|
975
975
|
const query = {
|
|
976
976
|
path: '',
|
|
977
977
|
filter: {
|
|
978
|
-
'toys.size.height': '1',
|
|
978
|
+
'toys.(size.height)': '1',
|
|
979
979
|
},
|
|
980
980
|
};
|
|
981
981
|
const result = await (0, paginate_1.paginate)(query, catRepo, config);
|
|
@@ -984,81 +984,81 @@ describe('paginate', () => {
|
|
|
984
984
|
delete catToys3.cat;
|
|
985
985
|
cat2.toys = [catToys3];
|
|
986
986
|
expect(result.meta.filter).toStrictEqual({
|
|
987
|
-
'toys.size.height': '1',
|
|
987
|
+
'toys.(size.height)': '1',
|
|
988
988
|
});
|
|
989
989
|
expect(result.data).toStrictEqual([cat2]);
|
|
990
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.toys.size.height=1');
|
|
990
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.toys.(size.height)=1');
|
|
991
991
|
});
|
|
992
992
|
it('should return result based on filter on embedded on one-to-one relation', async () => {
|
|
993
993
|
const config = {
|
|
994
994
|
relations: ['cat'],
|
|
995
995
|
sortableColumns: ['id', 'name'],
|
|
996
996
|
filterableColumns: {
|
|
997
|
-
'cat.size.height': [operator_1.FilterOperator.EQ],
|
|
997
|
+
'cat.(size.height)': [operator_1.FilterOperator.EQ],
|
|
998
998
|
},
|
|
999
999
|
};
|
|
1000
1000
|
const query = {
|
|
1001
1001
|
path: '',
|
|
1002
1002
|
filter: {
|
|
1003
|
-
'cat.size.height': '$eq:30',
|
|
1003
|
+
'cat.(size.height)': '$eq:30',
|
|
1004
1004
|
},
|
|
1005
1005
|
};
|
|
1006
1006
|
const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
|
|
1007
1007
|
expect(result.meta.filter).toStrictEqual({
|
|
1008
|
-
'cat.size.height': '$eq:30',
|
|
1008
|
+
'cat.(size.height)': '$eq:30',
|
|
1009
1009
|
});
|
|
1010
1010
|
const catClone = (0, lodash_1.clone)(catHomes[1]);
|
|
1011
1011
|
catClone.countCat = cats.filter((cat) => cat.size.height === 30 && cat.id == catClone.cat.id).length;
|
|
1012
1012
|
expect(result.data).toStrictEqual([catClone]);
|
|
1013
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.size.height=$eq:30');
|
|
1013
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.(size.height)=$eq:30');
|
|
1014
1014
|
});
|
|
1015
1015
|
it('should return result based on $in filter on embedded on one-to-one relation', async () => {
|
|
1016
1016
|
const config = {
|
|
1017
1017
|
relations: ['cat'],
|
|
1018
1018
|
sortableColumns: ['id', 'name'],
|
|
1019
1019
|
filterableColumns: {
|
|
1020
|
-
'cat.size.height': [operator_1.FilterOperator.IN],
|
|
1020
|
+
'cat.(size.height)': [operator_1.FilterOperator.IN],
|
|
1021
1021
|
},
|
|
1022
1022
|
};
|
|
1023
1023
|
const query = {
|
|
1024
1024
|
path: '',
|
|
1025
1025
|
filter: {
|
|
1026
|
-
'cat.size.height': '$in:10,30,35',
|
|
1026
|
+
'cat.(size.height)': '$in:10,30,35',
|
|
1027
1027
|
},
|
|
1028
1028
|
};
|
|
1029
1029
|
const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
|
|
1030
1030
|
expect(result.meta.filter).toStrictEqual({
|
|
1031
|
-
'cat.size.height': '$in:10,30,35',
|
|
1031
|
+
'cat.(size.height)': '$in:10,30,35',
|
|
1032
1032
|
});
|
|
1033
1033
|
const catClone = (0, lodash_1.clone)(catHomes[1]);
|
|
1034
1034
|
catClone.countCat = cats.filter((cat) => (cat.size.height === 10 || cat.size.height === 30 || cat.size.height === 35) &&
|
|
1035
1035
|
cat.id == catClone.cat.id).length;
|
|
1036
1036
|
expect(result.data).toStrictEqual([catClone]);
|
|
1037
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.size.height=$in:10,30,35');
|
|
1037
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.(size.height)=$in:10,30,35');
|
|
1038
1038
|
});
|
|
1039
1039
|
it('should return result based on $btw filter on embedded on one-to-one relation', async () => {
|
|
1040
1040
|
const config = {
|
|
1041
1041
|
relations: ['cat'],
|
|
1042
1042
|
sortableColumns: ['id', 'name'],
|
|
1043
1043
|
filterableColumns: {
|
|
1044
|
-
'cat.size.height': [operator_1.FilterOperator.BTW],
|
|
1044
|
+
'cat.(size.height)': [operator_1.FilterOperator.BTW],
|
|
1045
1045
|
},
|
|
1046
1046
|
};
|
|
1047
1047
|
const query = {
|
|
1048
1048
|
path: '',
|
|
1049
1049
|
filter: {
|
|
1050
|
-
'cat.size.height': '$btw:18,33',
|
|
1050
|
+
'cat.(size.height)': '$btw:18,33',
|
|
1051
1051
|
},
|
|
1052
1052
|
};
|
|
1053
1053
|
const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
|
|
1054
1054
|
expect(result.meta.filter).toStrictEqual({
|
|
1055
|
-
'cat.size.height': '$btw:18,33',
|
|
1055
|
+
'cat.(size.height)': '$btw:18,33',
|
|
1056
1056
|
});
|
|
1057
1057
|
const catHomeClone = (0, lodash_1.clone)(catHomes);
|
|
1058
1058
|
catHomeClone[0].countCat = cats.filter((cat) => cat.size.height >= 18 && cat.size.height <= 33 && cat.id == catHomeClone[0].cat.id).length;
|
|
1059
1059
|
catHomeClone[1].countCat = cats.filter((cat) => cat.size.height >= 18 && cat.size.height <= 33 && cat.id == catHomeClone[1].cat.id).length;
|
|
1060
1060
|
expect(result.data).toStrictEqual([catHomeClone[0], catHomeClone[1]]);
|
|
1061
|
-
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.size.height=$btw:18,33');
|
|
1061
|
+
expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.(size.height)=$btw:18,33');
|
|
1062
1062
|
});
|
|
1063
1063
|
it('should return result based on where array and filter', async () => {
|
|
1064
1064
|
const config = {
|
|
@@ -1654,12 +1654,12 @@ describe('paginate', () => {
|
|
|
1654
1654
|
it('should return selected columns', async () => {
|
|
1655
1655
|
const config = {
|
|
1656
1656
|
sortableColumns: ['id', 'name'],
|
|
1657
|
-
select: ['id', 'name', 'toys.name', 'toys.size.height', 'toys.size.length'],
|
|
1657
|
+
select: ['id', 'name', 'toys.name', 'toys.(size.height)', 'toys.(size.length)'],
|
|
1658
1658
|
relations: ['toys'],
|
|
1659
1659
|
};
|
|
1660
1660
|
const query = {
|
|
1661
1661
|
path: '',
|
|
1662
|
-
select: ['id', 'toys.size.height'],
|
|
1662
|
+
select: ['id', 'toys.(size.height)'],
|
|
1663
1663
|
};
|
|
1664
1664
|
const result = await (0, paginate_1.paginate)(query, catRepo, config);
|
|
1665
1665
|
result.data.forEach((cat) => {
|
|
@@ -1705,5 +1705,53 @@ describe('paginate', () => {
|
|
|
1705
1705
|
expect(result.data[0].toys).toBeDefined();
|
|
1706
1706
|
expect(result.data[0].toys).toHaveLength(1);
|
|
1707
1707
|
});
|
|
1708
|
+
it('should search nested relations', async () => {
|
|
1709
|
+
const config = {
|
|
1710
|
+
relations: { home: { pillows: true } },
|
|
1711
|
+
sortableColumns: ['id', 'name'],
|
|
1712
|
+
searchableColumns: ['name', 'home.pillows.color'],
|
|
1713
|
+
};
|
|
1714
|
+
const query = {
|
|
1715
|
+
path: '',
|
|
1716
|
+
search: 'pink',
|
|
1717
|
+
};
|
|
1718
|
+
const result = await (0, paginate_1.paginate)(query, catRepo, config);
|
|
1719
|
+
const cat = (0, lodash_1.clone)(cats[1]);
|
|
1720
|
+
const catHomesClone = (0, lodash_1.clone)(catHomes[1]);
|
|
1721
|
+
const catHomePillowsClone = (0, lodash_1.clone)(catHomePillows[3]);
|
|
1722
|
+
delete catHomePillowsClone.home;
|
|
1723
|
+
catHomesClone.countCat = cats.filter((cat) => cat.id === catHomesClone.cat.id).length;
|
|
1724
|
+
catHomesClone.pillows = [catHomePillowsClone];
|
|
1725
|
+
cat.home = catHomesClone;
|
|
1726
|
+
delete cat.home.cat;
|
|
1727
|
+
expect(result.meta.search).toStrictEqual('pink');
|
|
1728
|
+
expect(result.data).toStrictEqual([cat]);
|
|
1729
|
+
expect(result.data[0].home).toBeDefined();
|
|
1730
|
+
expect(result.data[0].home.pillows).toStrictEqual(cat.home.pillows);
|
|
1731
|
+
});
|
|
1732
|
+
it('should filter nested relations', async () => {
|
|
1733
|
+
const config = {
|
|
1734
|
+
relations: { home: { pillows: true } },
|
|
1735
|
+
sortableColumns: ['id', 'name'],
|
|
1736
|
+
filterableColumns: { 'home.pillows.color': [operator_1.FilterOperator.EQ] },
|
|
1737
|
+
};
|
|
1738
|
+
const query = {
|
|
1739
|
+
path: '',
|
|
1740
|
+
filter: { 'home.pillows.color': 'pink' },
|
|
1741
|
+
};
|
|
1742
|
+
const result = await (0, paginate_1.paginate)(query, catRepo, config);
|
|
1743
|
+
const cat = (0, lodash_1.clone)(cats[1]);
|
|
1744
|
+
const catHomesClone = (0, lodash_1.clone)(catHomes[1]);
|
|
1745
|
+
const catHomePillowsClone = (0, lodash_1.clone)(catHomePillows[3]);
|
|
1746
|
+
delete catHomePillowsClone.home;
|
|
1747
|
+
catHomesClone.countCat = cats.filter((cat) => cat.id === catHomesClone.cat.id).length;
|
|
1748
|
+
catHomesClone.pillows = [catHomePillowsClone];
|
|
1749
|
+
cat.home = catHomesClone;
|
|
1750
|
+
delete cat.home.cat;
|
|
1751
|
+
expect(result.meta.filter['home.pillows.color']).toStrictEqual('pink');
|
|
1752
|
+
expect(result.data).toStrictEqual([cat]);
|
|
1753
|
+
expect(result.data[0].home).toBeDefined();
|
|
1754
|
+
expect(result.data[0].home.pillows).toStrictEqual(cat.home.pillows);
|
|
1755
|
+
});
|
|
1708
1756
|
});
|
|
1709
1757
|
//# sourceMappingURL=paginate.spec.js.map
|