nestjs-paginate 8.1.6 → 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/decorator.js +8 -2
- package/lib/decorator.js.map +1 -1
- package/lib/decorator.spec.js +1 -0
- package/lib/decorator.spec.js.map +1 -1
- 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/decorator.js
CHANGED
|
@@ -3,6 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Paginate = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const lodash_1 = require("lodash");
|
|
6
|
+
function isRecord(data) {
|
|
7
|
+
return data !== null && typeof data === 'object' && !Array.isArray(data);
|
|
8
|
+
}
|
|
9
|
+
function isExpressRequest(request) {
|
|
10
|
+
return isRecord(request) && typeof request.get === 'function';
|
|
11
|
+
}
|
|
6
12
|
const singleSplit = (param, res) => res.push(param);
|
|
7
13
|
const multipleSplit = (param, res) => {
|
|
8
14
|
const items = param.split(':');
|
|
@@ -28,10 +34,10 @@ function parseParam(queryParam, parserLogic) {
|
|
|
28
34
|
}
|
|
29
35
|
exports.Paginate = (0, common_1.createParamDecorator)((_data, ctx) => {
|
|
30
36
|
const request = ctx.switchToHttp().getRequest();
|
|
31
|
-
const
|
|
37
|
+
const query = request.query;
|
|
32
38
|
// Determine if Express or Fastify to rebuild the original url and reduce down to protocol, host and base url
|
|
33
39
|
let originalUrl;
|
|
34
|
-
if (request
|
|
40
|
+
if (isExpressRequest(request)) {
|
|
35
41
|
originalUrl = request.protocol + '://' + request.get('host') + request.originalUrl;
|
|
36
42
|
}
|
|
37
43
|
else {
|
package/lib/decorator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;
|
|
1
|
+
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":"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"}
|
package/lib/decorator.spec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator.spec.js","sourceRoot":"","sources":["../src/decorator.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,wDAA8D;AAI9D,2CAAqD;AAErD,wDAAwD;AACxD,SAAS,wBAAwB,CAAI,SAAmB;IACpD,MAAM,IAAI;QACC,IAAI,CAAc,MAAS;YAC9B,EAAE;QACN,CAAC;KACJ;IAHU;QAAM,WAAA,SAAS,EAAE,CAAA;;;;oCAEvB;IAEL,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,+BAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACnE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAC7C,CAAC;AACD,MAAM,gBAAgB,GAAG,wBAAwB,CAAgB,oBAAQ,CAAC,CAAA;AAE1E,SAAS,qBAAqB,CAAC,KAA8B;IACzD,MAAM,WAAW,GAA8B;QAC3C,YAAY,EAAE,GAAsB,EAAE,CAClC,MAAM,CAAC;YACH,UAAU,EAAE,GAA4B,EAAE,CACtC,MAAM,CAAC;gBACH,QAAQ,EAAE,MAAM;gBAChB,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW;gBACtB,WAAW,EAAE,oBAAoB;gBACjC,KAAK,EAAE,KAAK;aACf,CAAC;SACT,CAAC;KACT,CAAA;IACD,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA8B;IACzD,MAAM,WAAW,GAA8B;QAC3C,YAAY,EAAE,GAAsB,EAAE,CAClC,MAAM,CAAC;YACH,UAAU,EAAE,GAA4B,EAAE,CACtC,MAAM,CAAC;gBACH,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,WAAW;gBACrB,GAAG,EAAE,oBAAoB;gBACzB,KAAK,EAAE,KAAK;aACf,CAAC;SACT,CAAC;KACT,CAAA;IACD,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAA;QAEzC,MAAM,MAAM,GAAkB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAE7D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,wBAAwB;SACjC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAA;QAEzC,MAAM,MAAM,GAAkB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAE7D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,wBAAwB;SACjC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,OAAO,GAAG,qBAAqB,CAAC;YAClC,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YACpC,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,gBAAgB;YAC/B,kBAAkB,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YAC1D,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;SAChC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAkB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAE7D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,EAAE;YACT,MAAM,EAAE;gBACJ,CAAC,IAAI,EAAE,KAAK,CAAC;gBACb,CAAC,WAAW,EAAE,MAAM,CAAC;aACxB;YACD,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC7B,IAAI,EAAE,wBAAwB;YAC9B,MAAM,EAAE;gBACJ,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;aACpD;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,OAAO,GAAG,qBAAqB,CAAC;YAClC,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YACpC,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,gBAAgB;YAC/B,kBAAkB,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YAC1D,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;SAChC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAkB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAE7D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,EAAE;YACT,MAAM,EAAE;gBACJ,CAAC,IAAI,EAAE,KAAK,CAAC;gBACb,CAAC,WAAW,EAAE,MAAM,CAAC;aACxB;YACD,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,wBAAwB;YAC9B,MAAM,EAAE;gBACJ,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;aACpD;YACD,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;SAChC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"decorator.spec.js","sourceRoot":"","sources":["../src/decorator.spec.ts"],"names":[],"mappings":"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"}
|
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 {};
|