nestjs-paginate 8.1.7 → 8.2.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 +37 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/swagger/api-ok-paginated-response.decorator.d.ts +3 -0
- package/lib/swagger/api-ok-paginated-response.decorator.js +58 -0
- package/lib/swagger/api-ok-paginated-response.decorator.js.map +1 -0
- package/lib/swagger/api-paginated-query.decorator.d.ts +3 -0
- package/lib/swagger/api-paginated-query.decorator.js +141 -0
- package/lib/swagger/api-paginated-query.decorator.js.map +1 -0
- package/lib/swagger/api-paginated-swagger-docs.decorator.d.ts +3 -0
- package/lib/swagger/api-paginated-swagger-docs.decorator.js +11 -0
- package/lib/swagger/api-paginated-swagger-docs.decorator.js.map +1 -0
- package/lib/swagger/index.d.ts +4 -0
- package/lib/swagger/index.js +21 -0
- package/lib/swagger/index.js.map +1 -0
- package/lib/swagger/paginated-swagger.type.d.ts +28 -0
- package/lib/swagger/paginated-swagger.type.js +174 -0
- package/lib/swagger/paginated-swagger.type.js.map +1 -0
- package/lib/swagger/pagination-docs.spec.d.ts +1 -0
- package/lib/swagger/pagination-docs.spec.js +296 -0
- package/lib/swagger/pagination-docs.spec.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -15
package/README.md
CHANGED
|
@@ -458,6 +458,43 @@ is resolved to:
|
|
|
458
458
|
|
|
459
459
|
`WHERE ... AND (id = 5 OR id = 7) AND name = 'Milo' AND ...`
|
|
460
460
|
|
|
461
|
+
## Swagger
|
|
462
|
+
|
|
463
|
+
You can use two default decorators @ApiOkResponsePaginated and @ApiPagination to generate swagger documentation for your endpoints
|
|
464
|
+
|
|
465
|
+
`@ApiOkPaginatedResponse` is for response body, return http[](https://) status is 200
|
|
466
|
+
|
|
467
|
+
`@ApiPaginationQuery` is for query params
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
```typescript
|
|
471
|
+
@Get()
|
|
472
|
+
@ApiOkPaginatedResponse(
|
|
473
|
+
UserDto,
|
|
474
|
+
USER_PAGINATION_CONFIG,
|
|
475
|
+
)
|
|
476
|
+
@ApiPaginationQuery(USER_PAGINATION_CONFIG)
|
|
477
|
+
async findAll(
|
|
478
|
+
@Paginate()
|
|
479
|
+
query: PaginateQuery,
|
|
480
|
+
): Promise<Paginated<UserEntity>> {
|
|
481
|
+
|
|
482
|
+
}
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
There is also some syntax sugar for this, and you can use only one decorator `@PaginatedSwaggerDocs` for both response body and query params
|
|
486
|
+
|
|
487
|
+
```typescript
|
|
488
|
+
@Get()
|
|
489
|
+
@PaginatedSwaggerDocs(UserDto, USER_PAGINATION_CONFIG)
|
|
490
|
+
async findAll(
|
|
491
|
+
@Paginate()
|
|
492
|
+
query: PaginateQuery,
|
|
493
|
+
): Promise<Paginated<UserEntity>> {
|
|
494
|
+
|
|
495
|
+
}
|
|
496
|
+
```
|
|
497
|
+
|
|
461
498
|
## Troubleshooting
|
|
462
499
|
|
|
463
500
|
The package does not report error reasons in the response bodies. They are instead
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./decorator"), exports);
|
|
18
18
|
__exportStar(require("./paginate"), exports);
|
|
19
|
+
__exportStar(require("./swagger"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,6CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,6CAA0B;AAC1B,4CAAyB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { PaginateConfig } from '../paginate';
|
|
3
|
+
export declare const ApiOkPaginatedResponse: <DTO extends Type<unknown>>(dataDto: DTO, paginatedConfig: PaginateConfig<any>) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiOkPaginatedResponse = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
const paginated_swagger_type_1 = require("./paginated-swagger.type");
|
|
7
|
+
const ApiOkPaginatedResponse = (dataDto,
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
+
paginatedConfig) => {
|
|
10
|
+
const cols = (paginatedConfig === null || paginatedConfig === void 0 ? void 0 : paginatedConfig.filterableColumns) || {};
|
|
11
|
+
return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)(paginated_swagger_type_1.PaginatedDocumented, dataDto), (0, swagger_1.ApiOkResponse)({
|
|
12
|
+
schema: {
|
|
13
|
+
allOf: [
|
|
14
|
+
{ $ref: (0, swagger_1.getSchemaPath)(paginated_swagger_type_1.PaginatedDocumented) },
|
|
15
|
+
{
|
|
16
|
+
properties: {
|
|
17
|
+
data: {
|
|
18
|
+
type: 'array',
|
|
19
|
+
items: { $ref: (0, swagger_1.getSchemaPath)(dataDto) },
|
|
20
|
+
},
|
|
21
|
+
meta: {
|
|
22
|
+
properties: {
|
|
23
|
+
select: {
|
|
24
|
+
type: 'array',
|
|
25
|
+
items: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
enum: paginatedConfig === null || paginatedConfig === void 0 ? void 0 : paginatedConfig.select,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
filter: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
properties: Object.keys(cols).reduce((acc, key) => {
|
|
33
|
+
acc[key] = {
|
|
34
|
+
oneOf: [
|
|
35
|
+
{
|
|
36
|
+
type: 'string',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
type: 'array',
|
|
40
|
+
items: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
return acc;
|
|
47
|
+
}, {}),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
}));
|
|
56
|
+
};
|
|
57
|
+
exports.ApiOkPaginatedResponse = ApiOkPaginatedResponse;
|
|
58
|
+
//# sourceMappingURL=api-ok-paginated-response.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-ok-paginated-response.decorator.js","sourceRoot":"","sources":["../../src/swagger/api-ok-paginated-response.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,6CAA8E;AAG9E,qEAA8D;AAEvD,MAAM,sBAAsB,GAAG,CAClC,OAAY;AACZ,8DAA8D;AAC9D,eAAoC,EACtC,EAAE;IACA,MAAM,IAAI,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,KAAI,EAAE,CAAA;IAErD,OAAO,IAAA,wBAAe,EAClB,IAAA,wBAAc,EAAC,4CAAmB,EAAE,OAAO,CAAC,EAC5C,IAAA,uBAAa,EAAC;QACV,MAAM,EAAE;YACJ,KAAK,EAAE;gBACH,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,4CAAmB,CAAC,EAAE;gBAC5C;oBACI,UAAU,EAAE;wBACR,IAAI,EAAE;4BACF,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,OAAO,CAAC,EAAE;yBAC1C;wBACD,IAAI,EAAE;4BACF,UAAU,EAAE;gCACR,MAAM,EAAE;oCACJ,IAAI,EAAE,OAAO;oCACb,KAAK,EAAE;wCACH,IAAI,EAAE,QAAQ;wCACd,IAAI,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM;qCAChC;iCACJ;gCACD,MAAM,EAAE;oCACJ,IAAI,EAAE,QAAQ;oCACd,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;wCACT,GAAG,CAAC,GAAG,CAAC,GAAG;4CACP,KAAK,EAAE;gDACH;oDACI,IAAI,EAAE,QAAQ;iDACjB;gDACD;oDACI,IAAI,EAAE,OAAO;oDACb,KAAK,EAAE;wDACH,IAAI,EAAE,QAAQ;qDACjB;iDACJ;6CACJ;yCACJ,CAAA;wCACD,OAAO,GAAG,CAAA;oCACd,CAAC,EACD,EAAoD,CACvD;iCACJ;6BACJ;yBACJ;qBACJ;iBACJ;aACJ;SACJ;KACJ,CAAC,CACL,CAAA;AACL,CAAC,CAAA;AA1DY,QAAA,sBAAsB,0BA0DlC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { PaginateConfig } from '../paginate';
|
|
2
|
+
export declare function SortBy(paginationConfig: PaginateConfig<any>): MethodDecorator;
|
|
3
|
+
export declare const ApiPaginationQuery: (paginationConfig: PaginateConfig<any>) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiPaginationQuery = exports.SortBy = void 0;
|
|
4
|
+
const paginate_1 = require("../paginate");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
const filter_1 = require("../filter");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
const DEFAULT_VALUE_KEY = 'Default Value';
|
|
9
|
+
function p(key, value) {
|
|
10
|
+
return `<p>
|
|
11
|
+
<b>${key}: </b> ${value}
|
|
12
|
+
</p>`;
|
|
13
|
+
}
|
|
14
|
+
function li(key, values) {
|
|
15
|
+
return `<h4>${key}</h4><ul>${values.map((v) => `<li>${v}</li>`).join('\n')}</ul>`;
|
|
16
|
+
}
|
|
17
|
+
function SortBy(paginationConfig) {
|
|
18
|
+
const defaultSortMessage = paginationConfig.defaultSortBy
|
|
19
|
+
? paginationConfig.defaultSortBy.map(([col, order]) => `${col}:${order}`).join(',')
|
|
20
|
+
: 'No default sorting specified, the result order is not guaranteed';
|
|
21
|
+
return (0, swagger_1.ApiQuery)({
|
|
22
|
+
name: 'sortBy',
|
|
23
|
+
isArray: true,
|
|
24
|
+
description: `Parameter to sort by.
|
|
25
|
+
<p>To sort by multiple fields, just provide query param multiple types. The order in url defines an order of sorting</p>
|
|
26
|
+
${p('Format', 'fieldName:DIRECTION')}
|
|
27
|
+
${p('Example', 'sortBy=id:DESC&sortBy=createdAt:ASC')}
|
|
28
|
+
${p('Default Value', defaultSortMessage)}
|
|
29
|
+
${li('Available Fields', paginationConfig.sortableColumns)}
|
|
30
|
+
`,
|
|
31
|
+
required: false,
|
|
32
|
+
type: 'string',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
exports.SortBy = SortBy;
|
|
36
|
+
function Limit(paginationConfig) {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
return (0, swagger_1.ApiQuery)({
|
|
39
|
+
name: 'limit',
|
|
40
|
+
description: `Number of records per page.
|
|
41
|
+
${p('Example', '20')}
|
|
42
|
+
${p(DEFAULT_VALUE_KEY, ((_a = paginationConfig === null || paginationConfig === void 0 ? void 0 : paginationConfig.defaultLimit) === null || _a === void 0 ? void 0 : _a.toString()) || paginate_1.DEFAULT_LIMIT.toString())}
|
|
43
|
+
${p('Max Value', ((_b = paginationConfig.maxLimit) === null || _b === void 0 ? void 0 : _b.toString()) || paginate_1.DEFAULT_MAX_LIMIT.toString())}
|
|
44
|
+
|
|
45
|
+
If provided value is greater than max value, max value will be applied.
|
|
46
|
+
`,
|
|
47
|
+
required: false,
|
|
48
|
+
type: 'number',
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function Select(paginationConfig) {
|
|
52
|
+
if (!paginationConfig.select) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
return (0, swagger_1.ApiQuery)({
|
|
56
|
+
name: 'select',
|
|
57
|
+
description: `List of fields to select.
|
|
58
|
+
${p('Example', paginationConfig.select.slice(0, Math.min(5, paginationConfig.select.length)).join(','))}
|
|
59
|
+
${p(DEFAULT_VALUE_KEY, 'By default all fields returns. If you want to select only some fields, provide them in query param')}
|
|
60
|
+
`,
|
|
61
|
+
required: false,
|
|
62
|
+
type: 'string',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function Where(paginationConfig) {
|
|
66
|
+
if (!paginationConfig.filterableColumns)
|
|
67
|
+
return;
|
|
68
|
+
const allColumnsDecorators = Object.entries(paginationConfig.filterableColumns)
|
|
69
|
+
.map(([fieldName, filterOperations]) => {
|
|
70
|
+
const operations = filterOperations === true || filterOperations === undefined
|
|
71
|
+
? [
|
|
72
|
+
...Object.values(filter_1.FilterComparator),
|
|
73
|
+
...Object.values(paginate_1.FilterSuffix),
|
|
74
|
+
...Object.values(paginate_1.FilterOperator),
|
|
75
|
+
]
|
|
76
|
+
: filterOperations.map((fo) => fo.toString());
|
|
77
|
+
return (0, swagger_1.ApiQuery)({
|
|
78
|
+
name: `filter.${fieldName}`,
|
|
79
|
+
description: `Filter by ${fieldName} query param.
|
|
80
|
+
${p('Format', `filter.${fieldName}={$not}:OPERATION:VALUE`)}
|
|
81
|
+
${p('Example', `filter.${fieldName}=$not:$like:John Doe&filter.${fieldName}=like:John`)}
|
|
82
|
+
${li('Available Operations', operations)}`,
|
|
83
|
+
required: false,
|
|
84
|
+
type: 'string',
|
|
85
|
+
isArray: true,
|
|
86
|
+
});
|
|
87
|
+
})
|
|
88
|
+
.filter((v) => v !== undefined);
|
|
89
|
+
return (0, common_1.applyDecorators)(...allColumnsDecorators);
|
|
90
|
+
}
|
|
91
|
+
function Page() {
|
|
92
|
+
return (0, swagger_1.ApiQuery)({
|
|
93
|
+
name: 'page',
|
|
94
|
+
description: `Page number to retrieve.If you provide invalid value the default page number will applied
|
|
95
|
+
${p('Example', '1')}
|
|
96
|
+
${p(DEFAULT_VALUE_KEY, '1')}
|
|
97
|
+
`,
|
|
98
|
+
required: false,
|
|
99
|
+
type: 'number',
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
function Search(paginateConfig) {
|
|
103
|
+
if (!paginateConfig.searchableColumns)
|
|
104
|
+
return;
|
|
105
|
+
return (0, swagger_1.ApiQuery)({
|
|
106
|
+
name: 'search',
|
|
107
|
+
description: `Search term to filter result values
|
|
108
|
+
${p('Example', 'John')}
|
|
109
|
+
${p(DEFAULT_VALUE_KEY, 'No default value')}
|
|
110
|
+
`,
|
|
111
|
+
required: false,
|
|
112
|
+
type: 'string',
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function SearchBy(paginateConfig) {
|
|
116
|
+
if (!paginateConfig.searchableColumns)
|
|
117
|
+
return;
|
|
118
|
+
return (0, swagger_1.ApiQuery)({
|
|
119
|
+
name: 'searchBy',
|
|
120
|
+
description: `List of fields to search by term to filter result values
|
|
121
|
+
${p('Example', paginateConfig.searchableColumns.slice(0, Math.min(5, paginateConfig.searchableColumns.length)).join(','))}
|
|
122
|
+
${p(DEFAULT_VALUE_KEY, 'By default all fields mentioned below will be used to search by term')}
|
|
123
|
+
${li('Available Fields', paginateConfig.searchableColumns)}
|
|
124
|
+
`,
|
|
125
|
+
required: false,
|
|
126
|
+
type: 'string',
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
const ApiPaginationQuery = (paginationConfig) => {
|
|
130
|
+
return (0, common_1.applyDecorators)(...[
|
|
131
|
+
Page(),
|
|
132
|
+
Limit(paginationConfig),
|
|
133
|
+
Where(paginationConfig),
|
|
134
|
+
SortBy(paginationConfig),
|
|
135
|
+
Search(paginationConfig),
|
|
136
|
+
SearchBy(paginationConfig),
|
|
137
|
+
Select(paginationConfig),
|
|
138
|
+
].filter((v) => v !== undefined));
|
|
139
|
+
};
|
|
140
|
+
exports.ApiPaginationQuery = ApiPaginationQuery;
|
|
141
|
+
//# sourceMappingURL=api-paginated-query.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-paginated-query.decorator.js","sourceRoot":"","sources":["../../src/swagger/api-paginated-query.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { PaginateConfig } from '../paginate';
|
|
3
|
+
export declare function PaginatedSwaggerDocs<DTO extends Type<unknown>>(dto: DTO, paginatedConfig: PaginateConfig<any>): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PaginatedSwaggerDocs = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const api_paginated_query_decorator_1 = require("./api-paginated-query.decorator");
|
|
6
|
+
const api_ok_paginated_response_decorator_1 = require("./api-ok-paginated-response.decorator");
|
|
7
|
+
function PaginatedSwaggerDocs(dto, paginatedConfig) {
|
|
8
|
+
return (0, common_1.applyDecorators)((0, api_ok_paginated_response_decorator_1.ApiOkPaginatedResponse)(dto, paginatedConfig), (0, api_paginated_query_decorator_1.ApiPaginationQuery)(paginatedConfig));
|
|
9
|
+
}
|
|
10
|
+
exports.PaginatedSwaggerDocs = PaginatedSwaggerDocs;
|
|
11
|
+
//# sourceMappingURL=api-paginated-swagger-docs.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-paginated-swagger-docs.decorator.js","sourceRoot":"","sources":["../../src/swagger/api-paginated-swagger-docs.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AAEtD,mFAAoE;AACpE,+FAA8E;AAE9E,SAAgB,oBAAoB,CAA4B,GAAQ,EAAE,eAAoC;IAC1G,OAAO,IAAA,wBAAe,EAAC,IAAA,4DAAsB,EAAC,GAAG,EAAE,eAAe,CAAC,EAAE,IAAA,kDAAkB,EAAC,eAAe,CAAC,CAAC,CAAA;AAC7G,CAAC;AAFD,oDAEC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./api-paginated-query.decorator"), exports);
|
|
18
|
+
__exportStar(require("./api-ok-paginated-response.decorator"), exports);
|
|
19
|
+
__exportStar(require("./paginated-swagger.type"), exports);
|
|
20
|
+
__exportStar(require("./api-paginated-swagger-docs.decorator"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swagger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAA+C;AAC/C,wEAAqD;AACrD,2DAAwC;AACxC,yEAAsD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Column, SortBy } from '../helper';
|
|
2
|
+
import { Paginated } from '../paginate';
|
|
3
|
+
declare class PaginatedLinksDocumented {
|
|
4
|
+
first?: string;
|
|
5
|
+
previous?: string;
|
|
6
|
+
current: string;
|
|
7
|
+
next?: string;
|
|
8
|
+
last?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class PaginatedMetaDocumented<T> {
|
|
11
|
+
itemsPerPage: number;
|
|
12
|
+
totalItems: number;
|
|
13
|
+
currentPage: number;
|
|
14
|
+
totalPages: number;
|
|
15
|
+
sortBy: SortBy<T>;
|
|
16
|
+
searchBy: Column<T>[];
|
|
17
|
+
search: string;
|
|
18
|
+
select: string[];
|
|
19
|
+
filter?: {
|
|
20
|
+
[p: string]: string | string[];
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare class PaginatedDocumented<T> extends Paginated<T> {
|
|
24
|
+
data: T[];
|
|
25
|
+
meta: PaginatedMetaDocumented<T>;
|
|
26
|
+
links: PaginatedLinksDocumented;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,174 @@
|
|
|
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.PaginatedDocumented = exports.PaginatedMetaDocumented = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const paginate_1 = require("../paginate");
|
|
15
|
+
class PaginatedLinksDocumented {
|
|
16
|
+
}
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, swagger_1.ApiProperty)({
|
|
19
|
+
title: 'Link to first page',
|
|
20
|
+
required: false,
|
|
21
|
+
type: 'string',
|
|
22
|
+
}),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], PaginatedLinksDocumented.prototype, "first", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, swagger_1.ApiProperty)({
|
|
27
|
+
title: 'Link to previous page',
|
|
28
|
+
required: false,
|
|
29
|
+
type: 'string',
|
|
30
|
+
}),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], PaginatedLinksDocumented.prototype, "previous", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, swagger_1.ApiProperty)({
|
|
35
|
+
title: 'Link to current page',
|
|
36
|
+
required: false,
|
|
37
|
+
type: 'string',
|
|
38
|
+
}),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], PaginatedLinksDocumented.prototype, "current", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, swagger_1.ApiProperty)({
|
|
43
|
+
title: 'Link to next page',
|
|
44
|
+
required: false,
|
|
45
|
+
type: 'string',
|
|
46
|
+
}),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], PaginatedLinksDocumented.prototype, "next", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, swagger_1.ApiProperty)({
|
|
51
|
+
title: 'Link to last page',
|
|
52
|
+
required: false,
|
|
53
|
+
type: 'string',
|
|
54
|
+
}),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], PaginatedLinksDocumented.prototype, "last", void 0);
|
|
57
|
+
class PaginatedMetaDocumented {
|
|
58
|
+
}
|
|
59
|
+
exports.PaginatedMetaDocumented = PaginatedMetaDocumented;
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, swagger_1.ApiProperty)({
|
|
62
|
+
title: 'Number of items per page',
|
|
63
|
+
required: true,
|
|
64
|
+
type: 'number',
|
|
65
|
+
}),
|
|
66
|
+
__metadata("design:type", Number)
|
|
67
|
+
], PaginatedMetaDocumented.prototype, "itemsPerPage", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, swagger_1.ApiProperty)({
|
|
70
|
+
title: 'Total number of items',
|
|
71
|
+
required: true,
|
|
72
|
+
type: 'number',
|
|
73
|
+
}),
|
|
74
|
+
__metadata("design:type", Number)
|
|
75
|
+
], PaginatedMetaDocumented.prototype, "totalItems", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, swagger_1.ApiProperty)({
|
|
78
|
+
title: 'Current requested page',
|
|
79
|
+
required: true,
|
|
80
|
+
type: 'number',
|
|
81
|
+
}),
|
|
82
|
+
__metadata("design:type", Number)
|
|
83
|
+
], PaginatedMetaDocumented.prototype, "currentPage", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, swagger_1.ApiProperty)({
|
|
86
|
+
title: 'Total number of pages',
|
|
87
|
+
required: true,
|
|
88
|
+
type: 'number',
|
|
89
|
+
}),
|
|
90
|
+
__metadata("design:type", Number)
|
|
91
|
+
], PaginatedMetaDocumented.prototype, "totalPages", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, swagger_1.ApiProperty)({
|
|
94
|
+
title: 'Sorting by columns',
|
|
95
|
+
required: false,
|
|
96
|
+
type: 'array',
|
|
97
|
+
items: {
|
|
98
|
+
type: 'array',
|
|
99
|
+
items: {
|
|
100
|
+
oneOf: [
|
|
101
|
+
{
|
|
102
|
+
type: 'string',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'string',
|
|
106
|
+
enum: ['ASC', 'DESC'],
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
}),
|
|
112
|
+
__metadata("design:type", Array)
|
|
113
|
+
], PaginatedMetaDocumented.prototype, "sortBy", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, swagger_1.ApiProperty)({
|
|
116
|
+
title: 'Search by fields',
|
|
117
|
+
required: false,
|
|
118
|
+
isArray: true,
|
|
119
|
+
type: 'string',
|
|
120
|
+
}),
|
|
121
|
+
__metadata("design:type", Array)
|
|
122
|
+
], PaginatedMetaDocumented.prototype, "searchBy", void 0);
|
|
123
|
+
__decorate([
|
|
124
|
+
(0, swagger_1.ApiProperty)({
|
|
125
|
+
title: 'Search term',
|
|
126
|
+
required: false,
|
|
127
|
+
type: 'string',
|
|
128
|
+
}),
|
|
129
|
+
__metadata("design:type", String)
|
|
130
|
+
], PaginatedMetaDocumented.prototype, "search", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
(0, swagger_1.ApiProperty)({
|
|
133
|
+
title: 'List of selected fields',
|
|
134
|
+
required: false,
|
|
135
|
+
isArray: true,
|
|
136
|
+
type: 'string',
|
|
137
|
+
}),
|
|
138
|
+
__metadata("design:type", Array)
|
|
139
|
+
], PaginatedMetaDocumented.prototype, "select", void 0);
|
|
140
|
+
__decorate([
|
|
141
|
+
(0, swagger_1.ApiProperty)({
|
|
142
|
+
title: 'Filters that applied to the query',
|
|
143
|
+
required: false,
|
|
144
|
+
isArray: false,
|
|
145
|
+
type: 'object',
|
|
146
|
+
}),
|
|
147
|
+
__metadata("design:type", Object)
|
|
148
|
+
], PaginatedMetaDocumented.prototype, "filter", void 0);
|
|
149
|
+
class PaginatedDocumented extends paginate_1.Paginated {
|
|
150
|
+
}
|
|
151
|
+
exports.PaginatedDocumented = PaginatedDocumented;
|
|
152
|
+
__decorate([
|
|
153
|
+
(0, swagger_1.ApiProperty)({
|
|
154
|
+
isArray: true,
|
|
155
|
+
required: true,
|
|
156
|
+
title: 'Array of entities',
|
|
157
|
+
}),
|
|
158
|
+
__metadata("design:type", Array)
|
|
159
|
+
], PaginatedDocumented.prototype, "data", void 0);
|
|
160
|
+
__decorate([
|
|
161
|
+
(0, swagger_1.ApiProperty)({
|
|
162
|
+
title: 'Pagination Metadata',
|
|
163
|
+
required: true,
|
|
164
|
+
}),
|
|
165
|
+
__metadata("design:type", PaginatedMetaDocumented)
|
|
166
|
+
], PaginatedDocumented.prototype, "meta", void 0);
|
|
167
|
+
__decorate([
|
|
168
|
+
(0, swagger_1.ApiProperty)({
|
|
169
|
+
title: 'Links to pages',
|
|
170
|
+
required: true,
|
|
171
|
+
}),
|
|
172
|
+
__metadata("design:type", PaginatedLinksDocumented)
|
|
173
|
+
], PaginatedDocumented.prototype, "links", void 0);
|
|
174
|
+
//# sourceMappingURL=paginated-swagger.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginated-swagger.type.js","sourceRoot":"","sources":["../../src/swagger/paginated-swagger.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|