@tc-libs/pagination 0.9.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.
Files changed (74) hide show
  1. package/README.md +11 -0
  2. package/package.json +11 -0
  3. package/src/constants/index.d.ts +2 -0
  4. package/src/constants/index.js +6 -0
  5. package/src/constants/index.js.map +1 -0
  6. package/src/constants/pagination.constant.d.ts +9 -0
  7. package/src/constants/pagination.constant.js +13 -0
  8. package/src/constants/pagination.constant.js.map +1 -0
  9. package/src/constants/pagination.enum.constant.d.ts +12 -0
  10. package/src/constants/pagination.enum.constant.js +19 -0
  11. package/src/constants/pagination.enum.constant.js.map +1 -0
  12. package/src/decorators/index.d.ts +1 -0
  13. package/src/decorators/index.js +5 -0
  14. package/src/decorators/index.js.map +1 -0
  15. package/src/decorators/pagination.decorator.d.ts +10 -0
  16. package/src/decorators/pagination.decorator.js +45 -0
  17. package/src/decorators/pagination.decorator.js.map +1 -0
  18. package/src/dtos/index.d.ts +1 -0
  19. package/src/dtos/index.js +5 -0
  20. package/src/dtos/index.js.map +1 -0
  21. package/src/dtos/pagination.list.dto.d.ts +10 -0
  22. package/src/dtos/pagination.list.dto.js +33 -0
  23. package/src/dtos/pagination.list.dto.js.map +1 -0
  24. package/src/index.d.ts +7 -0
  25. package/src/index.js +11 -0
  26. package/src/index.js.map +1 -0
  27. package/src/interfaces/index.d.ts +2 -0
  28. package/src/interfaces/index.js +6 -0
  29. package/src/interfaces/index.js.map +1 -0
  30. package/src/interfaces/pagination.interface.d.ts +21 -0
  31. package/src/interfaces/pagination.interface.js +3 -0
  32. package/src/interfaces/pagination.interface.js.map +1 -0
  33. package/src/interfaces/pagination.service.interface.d.ts +15 -0
  34. package/src/interfaces/pagination.service.interface.js +3 -0
  35. package/src/interfaces/pagination.service.interface.js.map +1 -0
  36. package/src/pagination.module.d.ts +2 -0
  37. package/src/pagination.module.js +17 -0
  38. package/src/pagination.module.js.map +1 -0
  39. package/src/pipes/index.d.ts +9 -0
  40. package/src/pipes/index.js +13 -0
  41. package/src/pipes/index.js.map +1 -0
  42. package/src/pipes/pagination.filter-contain.pipe.d.ts +4 -0
  43. package/src/pipes/pagination.filter-contain.pipe.js +48 -0
  44. package/src/pipes/pagination.filter-contain.pipe.js.map +1 -0
  45. package/src/pipes/pagination.filter-date.pipe.d.ts +4 -0
  46. package/src/pipes/pagination.filter-date.pipe.js +43 -0
  47. package/src/pipes/pagination.filter-date.pipe.js.map +1 -0
  48. package/src/pipes/pagination.filter-equal-object-id.pipe.d.ts +10 -0
  49. package/src/pipes/pagination.filter-equal-object-id.pipe.js +36 -0
  50. package/src/pipes/pagination.filter-equal-object-id.pipe.js.map +1 -0
  51. package/src/pipes/pagination.filter-equal.pipe.d.ts +4 -0
  52. package/src/pipes/pagination.filter-equal.pipe.js +50 -0
  53. package/src/pipes/pagination.filter-equal.pipe.js.map +1 -0
  54. package/src/pipes/pagination.filter-in-boolean.pipe.d.ts +3 -0
  55. package/src/pipes/pagination.filter-in-boolean.pipe.js +37 -0
  56. package/src/pipes/pagination.filter-in-boolean.pipe.js.map +1 -0
  57. package/src/pipes/pagination.filter-in-enum.pipe.d.ts +3 -0
  58. package/src/pipes/pagination.filter-in-enum.pipe.js +39 -0
  59. package/src/pipes/pagination.filter-in-enum.pipe.js.map +1 -0
  60. package/src/pipes/pagination.order.pipe.d.ts +4 -0
  61. package/src/pipes/pagination.order.pipe.js +43 -0
  62. package/src/pipes/pagination.order.pipe.js.map +1 -0
  63. package/src/pipes/pagination.paging.pipe.d.ts +3 -0
  64. package/src/pipes/pagination.paging.pipe.js +40 -0
  65. package/src/pipes/pagination.paging.pipe.js.map +1 -0
  66. package/src/pipes/pagination.search.pipe.d.ts +3 -0
  67. package/src/pipes/pagination.search.pipe.js +37 -0
  68. package/src/pipes/pagination.search.pipe.js.map +1 -0
  69. package/src/services/index.d.ts +1 -0
  70. package/src/services/index.js +5 -0
  71. package/src/services/index.js.map +1 -0
  72. package/src/services/pagination.service.d.ts +24 -0
  73. package/src/services/pagination.service.js +98 -0
  74. package/src/services/pagination.service.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # pagination
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build pagination` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test pagination` to execute the unit tests via [Jest](https://jestjs.io).
package/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@tc-libs/pagination",
3
+ "version": "0.9.0",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "typings": "./src/index.d.ts",
10
+ "types": "./src/index.d.ts"
11
+ }
@@ -0,0 +1,2 @@
1
+ export * from './pagination.constant';
2
+ export * from './pagination.enum.constant';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./pagination.constant"), exports);
5
+ tslib_1.__exportStar(require("./pagination.enum.constant"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/constants/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,qEAA2C"}
@@ -0,0 +1,9 @@
1
+ import { ENUM_PAGINATION_ORDER_DIRECTION_TYPE } from './pagination.enum.constant';
2
+ export declare const PAGINATION_PER_PAGE = 20;
3
+ export declare const PAGINATION_MAX_PER_PAGE = 100;
4
+ export declare const PAGINATION_PAGE = 1;
5
+ export declare const PAGINATION_MAX_PAGE = 20;
6
+ export declare const PAGINATION_ORDER_BY = "createdAt";
7
+ export declare const PAGINATION_ORDER_DIRECTION: ENUM_PAGINATION_ORDER_DIRECTION_TYPE;
8
+ export declare const PAGINATION_AVAILABLE_ORDER_BY: string[];
9
+ export declare const PAGINATION_AVAILABLE_ORDER_DIRECTION: ENUM_PAGINATION_ORDER_DIRECTION_TYPE[];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PAGINATION_AVAILABLE_ORDER_DIRECTION = exports.PAGINATION_AVAILABLE_ORDER_BY = exports.PAGINATION_ORDER_DIRECTION = exports.PAGINATION_ORDER_BY = exports.PAGINATION_MAX_PAGE = exports.PAGINATION_PAGE = exports.PAGINATION_MAX_PER_PAGE = exports.PAGINATION_PER_PAGE = void 0;
4
+ const pagination_enum_constant_1 = require("./pagination.enum.constant");
5
+ exports.PAGINATION_PER_PAGE = 20;
6
+ exports.PAGINATION_MAX_PER_PAGE = 100;
7
+ exports.PAGINATION_PAGE = 1;
8
+ exports.PAGINATION_MAX_PAGE = 20;
9
+ exports.PAGINATION_ORDER_BY = 'createdAt';
10
+ exports.PAGINATION_ORDER_DIRECTION = pagination_enum_constant_1.ENUM_PAGINATION_ORDER_DIRECTION_TYPE.ASC;
11
+ exports.PAGINATION_AVAILABLE_ORDER_BY = ['createdAt'];
12
+ exports.PAGINATION_AVAILABLE_ORDER_DIRECTION = Object.values(pagination_enum_constant_1.ENUM_PAGINATION_ORDER_DIRECTION_TYPE);
13
+ //# sourceMappingURL=pagination.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.constant.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/constants/pagination.constant.ts"],"names":[],"mappings":";;;AAAA,yEAAkF;AAErE,QAAA,mBAAmB,GAAG,EAAE,CAAC;AACzB,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAC9B,QAAA,eAAe,GAAG,CAAC,CAAC;AACpB,QAAA,mBAAmB,GAAG,EAAE,CAAC;AACzB,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAClC,QAAA,0BAA0B,GACrC,+DAAoC,CAAC,GAAG,CAAC;AAC9B,QAAA,6BAA6B,GAAa,CAAC,WAAW,CAAC,CAAC;AACxD,QAAA,oCAAoC,GAC/C,MAAM,CAAC,MAAM,CAAC,+DAAoC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare enum ENUM_PAGINATION_ORDER_DIRECTION_TYPE {
2
+ ASC = "asc",
3
+ DESC = "desc"
4
+ }
5
+ export declare enum ENUM_PAGINATION_FILTER_CASE_OPTIONS {
6
+ UPPERCASE = "UPPERCASE",
7
+ LOWERCASE = "LOWERCASE"
8
+ }
9
+ export declare enum ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS {
10
+ START_OF_DAY = "START_OF_DAY",
11
+ END_OF_DAY = "END_OF_DAY"
12
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS = exports.ENUM_PAGINATION_FILTER_CASE_OPTIONS = exports.ENUM_PAGINATION_ORDER_DIRECTION_TYPE = void 0;
4
+ var ENUM_PAGINATION_ORDER_DIRECTION_TYPE;
5
+ (function (ENUM_PAGINATION_ORDER_DIRECTION_TYPE) {
6
+ ENUM_PAGINATION_ORDER_DIRECTION_TYPE["ASC"] = "asc";
7
+ ENUM_PAGINATION_ORDER_DIRECTION_TYPE["DESC"] = "desc";
8
+ })(ENUM_PAGINATION_ORDER_DIRECTION_TYPE || (exports.ENUM_PAGINATION_ORDER_DIRECTION_TYPE = ENUM_PAGINATION_ORDER_DIRECTION_TYPE = {}));
9
+ var ENUM_PAGINATION_FILTER_CASE_OPTIONS;
10
+ (function (ENUM_PAGINATION_FILTER_CASE_OPTIONS) {
11
+ ENUM_PAGINATION_FILTER_CASE_OPTIONS["UPPERCASE"] = "UPPERCASE";
12
+ ENUM_PAGINATION_FILTER_CASE_OPTIONS["LOWERCASE"] = "LOWERCASE";
13
+ })(ENUM_PAGINATION_FILTER_CASE_OPTIONS || (exports.ENUM_PAGINATION_FILTER_CASE_OPTIONS = ENUM_PAGINATION_FILTER_CASE_OPTIONS = {}));
14
+ var ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS;
15
+ (function (ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS) {
16
+ ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS["START_OF_DAY"] = "START_OF_DAY";
17
+ ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS["END_OF_DAY"] = "END_OF_DAY";
18
+ })(ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS || (exports.ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS = ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS = {}));
19
+ //# sourceMappingURL=pagination.enum.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.enum.constant.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/constants/pagination.enum.constant.ts"],"names":[],"mappings":";;;AAAA,IAAY,oCAGX;AAHD,WAAY,oCAAoC;IAC9C,mDAAW,CAAA;IACX,qDAAa,CAAA;AACf,CAAC,EAHW,oCAAoC,oDAApC,oCAAoC,QAG/C;AAED,IAAY,mCAGX;AAHD,WAAY,mCAAmC;IAC7C,8DAAuB,CAAA;IACvB,8DAAuB,CAAA;AACzB,CAAC,EAHW,mCAAmC,mDAAnC,mCAAmC,QAG9C;AAED,IAAY,wCAGX;AAHD,WAAY,wCAAwC;IAClD,yEAA6B,CAAA;IAC7B,qEAAyB,CAAA;AAC3B,CAAC,EAHW,wCAAwC,wDAAxC,wCAAwC,QAGnD"}
@@ -0,0 +1 @@
1
+ export * from './pagination.decorator';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./pagination.decorator"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC"}
@@ -0,0 +1,10 @@
1
+ import { ENUM_PAGINATION_ORDER_DIRECTION_TYPE } from '../constants';
2
+ import { IPaginationFilterStringEqualOptions, IPaginationFilterStringContainOptions, IPaginationFilterDateOptions } from '../interfaces';
3
+ export declare function PaginationQuery(defaultPerPage: number, defaultOrderBy: string, defaultOrderDirection: ENUM_PAGINATION_ORDER_DIRECTION_TYPE, availableSearch: string[], availableOrderBy: string[]): ParameterDecorator;
4
+ export declare function PaginationQuerySearch(availableSearch: string[]): ParameterDecorator;
5
+ export declare function PaginationQueryFilterInBoolean(field: string, defaultValue: boolean[]): ParameterDecorator;
6
+ export declare function PaginationQueryFilterInEnum<T>(field: string, defaultValue: T, defaultEnum: Record<string, any>): ParameterDecorator;
7
+ export declare function PaginationQueryFilterEqual(field: string, options?: IPaginationFilterStringEqualOptions): ParameterDecorator;
8
+ export declare function PaginationQueryFilterContain(field: string, options?: IPaginationFilterStringContainOptions): ParameterDecorator;
9
+ export declare function PaginationQueryFilterDate(field: string, options?: IPaginationFilterDateOptions): ParameterDecorator;
10
+ export declare function PaginationQueryFilterEqualObjectId(field: string): ParameterDecorator;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationQuery = PaginationQuery;
4
+ exports.PaginationQuerySearch = PaginationQuerySearch;
5
+ exports.PaginationQueryFilterInBoolean = PaginationQueryFilterInBoolean;
6
+ exports.PaginationQueryFilterInEnum = PaginationQueryFilterInEnum;
7
+ exports.PaginationQueryFilterEqual = PaginationQueryFilterEqual;
8
+ exports.PaginationQueryFilterContain = PaginationQueryFilterContain;
9
+ exports.PaginationQueryFilterDate = PaginationQueryFilterDate;
10
+ exports.PaginationQueryFilterEqualObjectId = PaginationQueryFilterEqualObjectId;
11
+ const common_1 = require("@nestjs/common");
12
+ const pagination_filter_contain_pipe_1 = require("../pipes/pagination.filter-contain.pipe");
13
+ const pagination_filter_date_pipe_1 = require("../pipes/pagination.filter-date.pipe");
14
+ const pagination_filter_equal_object_id_pipe_1 = require("../pipes/pagination.filter-equal-object-id.pipe");
15
+ const pagination_filter_equal_pipe_1 = require("../pipes/pagination.filter-equal.pipe");
16
+ const pagination_filter_in_boolean_pipe_1 = require("../pipes/pagination.filter-in-boolean.pipe");
17
+ const pagination_filter_in_enum_pipe_1 = require("../pipes/pagination.filter-in-enum.pipe");
18
+ const pagination_order_pipe_1 = require("../pipes/pagination.order.pipe");
19
+ const pagination_paging_pipe_1 = require("../pipes/pagination.paging.pipe");
20
+ const pagination_search_pipe_1 = require("../pipes/pagination.search.pipe");
21
+ function PaginationQuery(defaultPerPage, defaultOrderBy, defaultOrderDirection, availableSearch, availableOrderBy) {
22
+ return (0, common_1.Query)((0, pagination_search_pipe_1.PaginationSearchPipe)(availableSearch), (0, pagination_paging_pipe_1.PaginationPagingPipe)(defaultPerPage), (0, pagination_order_pipe_1.PaginationOrderPipe)(defaultOrderBy, defaultOrderDirection, availableOrderBy));
23
+ }
24
+ function PaginationQuerySearch(availableSearch) {
25
+ return (0, common_1.Query)((0, pagination_search_pipe_1.PaginationSearchPipe)(availableSearch));
26
+ }
27
+ function PaginationQueryFilterInBoolean(field, defaultValue) {
28
+ return (0, common_1.Query)(field, (0, pagination_filter_in_boolean_pipe_1.PaginationFilterInBooleanPipe)(defaultValue));
29
+ }
30
+ function PaginationQueryFilterInEnum(field, defaultValue, defaultEnum) {
31
+ return (0, common_1.Query)(field, (0, pagination_filter_in_enum_pipe_1.PaginationFilterInEnumPipe)(defaultValue, defaultEnum));
32
+ }
33
+ function PaginationQueryFilterEqual(field, options) {
34
+ return (0, common_1.Query)(field, (0, pagination_filter_equal_pipe_1.PaginationFilterEqualPipe)(options));
35
+ }
36
+ function PaginationQueryFilterContain(field, options) {
37
+ return (0, common_1.Query)(field, (0, pagination_filter_contain_pipe_1.PaginationFilterContainPipe)(options));
38
+ }
39
+ function PaginationQueryFilterDate(field, options) {
40
+ return (0, common_1.Query)(field, (0, pagination_filter_date_pipe_1.PaginationFilterDatePipe)(options));
41
+ }
42
+ function PaginationQueryFilterEqualObjectId(field) {
43
+ return (0, common_1.Query)(field, pagination_filter_equal_object_id_pipe_1.PaginationFilterEqualObjectIdPipe);
44
+ }
45
+ //# sourceMappingURL=pagination.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.decorator.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/decorators/pagination.decorator.ts"],"names":[],"mappings":";;AAiBA,0CAgBC;AAED,sDAIC;AAED,wEAKC;AAED,kEAMC;AAED,gEAKC;AAED,oEAKC;AAED,8DAKC;AAED,gFAIC;AAjFD,2CAAuC;AAOvC,4FAAsF;AACtF,sFAAgF;AAChF,4GAAoG;AACpG,wFAAkF;AAClF,kGAA2F;AAC3F,4FAAqF;AACrF,0EAAqE;AACrE,4EAAuE;AACvE,4EAAuE;AAEvE,SAAgB,eAAe,CAC7B,cAAsB,EACtB,cAAsB,EACtB,qBAA2D,EAC3D,eAAyB,EACzB,gBAA0B;IAE1B,OAAO,IAAA,cAAK,EACV,IAAA,6CAAoB,EAAC,eAAe,CAAC,EACrC,IAAA,6CAAoB,EAAC,cAAc,CAAC,EACpC,IAAA,2CAAmB,EACjB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,CACjB,CACF,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CACnC,eAAyB;IAEzB,OAAO,IAAA,cAAK,EAAC,IAAA,6CAAoB,EAAC,eAAe,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,8BAA8B,CAC5C,KAAa,EACb,YAAuB;IAEvB,OAAO,IAAA,cAAK,EAAC,KAAK,EAAE,IAAA,iEAA6B,EAAC,YAAY,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAgB,2BAA2B,CACzC,KAAa,EACb,YAAe,EACf,WAAgC;IAEhC,OAAO,IAAA,cAAK,EAAC,KAAK,EAAE,IAAA,2DAA0B,EAAI,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAgB,0BAA0B,CACxC,KAAa,EACb,OAA6C;IAE7C,OAAO,IAAA,cAAK,EAAC,KAAK,EAAE,IAAA,wDAAyB,EAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,4BAA4B,CAC1C,KAAa,EACb,OAA+C;IAE/C,OAAO,IAAA,cAAK,EAAC,KAAK,EAAE,IAAA,4DAA2B,EAAC,OAAO,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,yBAAyB,CACvC,KAAa,EACb,OAAsC;IAEtC,OAAO,IAAA,cAAK,EAAC,KAAK,EAAE,IAAA,sDAAwB,EAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,kCAAkC,CAChD,KAAa;IAEb,OAAO,IAAA,cAAK,EAAC,KAAK,EAAE,0EAAiC,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './pagination.list.dto';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./pagination.list.dto"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/dtos/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC"}
@@ -0,0 +1,10 @@
1
+ import { ENUM_PAGINATION_ORDER_DIRECTION_TYPE } from '../constants';
2
+ import { IPaginationOrder } from '../interfaces';
3
+ export declare class PaginationListDto {
4
+ _search: Record<string, any>;
5
+ _limit: number;
6
+ _offset: number;
7
+ _order: IPaginationOrder;
8
+ _availableOrderBy: string[];
9
+ _availableOrderDirection: ENUM_PAGINATION_ORDER_DIRECTION_TYPE[];
10
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationListDto = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ class PaginationListDto {
7
+ }
8
+ exports.PaginationListDto = PaginationListDto;
9
+ tslib_1.__decorate([
10
+ (0, swagger_1.ApiHideProperty)(),
11
+ tslib_1.__metadata("design:type", Object)
12
+ ], PaginationListDto.prototype, "_search", void 0);
13
+ tslib_1.__decorate([
14
+ (0, swagger_1.ApiHideProperty)(),
15
+ tslib_1.__metadata("design:type", Number)
16
+ ], PaginationListDto.prototype, "_limit", void 0);
17
+ tslib_1.__decorate([
18
+ (0, swagger_1.ApiHideProperty)(),
19
+ tslib_1.__metadata("design:type", Number)
20
+ ], PaginationListDto.prototype, "_offset", void 0);
21
+ tslib_1.__decorate([
22
+ (0, swagger_1.ApiHideProperty)(),
23
+ tslib_1.__metadata("design:type", Object)
24
+ ], PaginationListDto.prototype, "_order", void 0);
25
+ tslib_1.__decorate([
26
+ (0, swagger_1.ApiHideProperty)(),
27
+ tslib_1.__metadata("design:type", Array)
28
+ ], PaginationListDto.prototype, "_availableOrderBy", void 0);
29
+ tslib_1.__decorate([
30
+ (0, swagger_1.ApiHideProperty)(),
31
+ tslib_1.__metadata("design:type", Array)
32
+ ], PaginationListDto.prototype, "_availableOrderDirection", void 0);
33
+ //# sourceMappingURL=pagination.list.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.list.dto.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/dtos/pagination.list.dto.ts"],"names":[],"mappings":";;;;AAAA,6CAAkD;AAIlD,MAAa,iBAAiB;CAkB7B;AAlBD,8CAkBC;AAhBC;IADC,IAAA,yBAAe,GAAE;;kDACW;AAG7B;IADC,IAAA,yBAAe,GAAE;;iDACH;AAGf;IADC,IAAA,yBAAe,GAAE;;kDACF;AAGhB;IADC,IAAA,yBAAe,GAAE;;iDACO;AAGzB;IADC,IAAA,yBAAe,GAAE;;4DACU;AAG5B;IADC,IAAA,yBAAe,GAAE;;mEAC+C"}
package/src/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './constants';
2
+ export * from './pagination.module';
3
+ export * from './services';
4
+ export * from './interfaces';
5
+ export * from './pipes';
6
+ export * from './dtos';
7
+ export * from './decorators';
package/src/index.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./constants"), exports);
5
+ tslib_1.__exportStar(require("./pagination.module"), exports);
6
+ tslib_1.__exportStar(require("./services"), exports);
7
+ tslib_1.__exportStar(require("./interfaces"), exports);
8
+ tslib_1.__exportStar(require("./pipes"), exports);
9
+ tslib_1.__exportStar(require("./dtos"), exports);
10
+ tslib_1.__exportStar(require("./decorators"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/pagination/src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,8DAAoC;AACpC,qDAA2B;AAC3B,uDAA6B;AAC7B,kDAAwB;AACxB,iDAAuB;AACvB,uDAA6B"}
@@ -0,0 +1,2 @@
1
+ export * from './pagination.interface';
2
+ export * from './pagination.service.interface';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./pagination.interface"), exports);
5
+ tslib_1.__exportStar(require("./pagination.service.interface"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC;AACvC,yEAA+C"}
@@ -0,0 +1,21 @@
1
+ import { ENUM_PAGINATION_ORDER_DIRECTION_TYPE, ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS, ENUM_PAGINATION_FILTER_CASE_OPTIONS } from '../constants';
2
+ export type IPaginationOrder = Record<string, ENUM_PAGINATION_ORDER_DIRECTION_TYPE>;
3
+ export interface IPaginationPaging {
4
+ limit?: number;
5
+ offset?: number;
6
+ }
7
+ export interface IPaginationOptions {
8
+ paging?: IPaginationPaging;
9
+ order?: IPaginationOrder;
10
+ }
11
+ export interface IPaginationFilterDateOptions {
12
+ time?: ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS;
13
+ }
14
+ export interface IPaginationFilterStringContainOptions {
15
+ case?: ENUM_PAGINATION_FILTER_CASE_OPTIONS;
16
+ trim?: boolean;
17
+ fullMatch?: boolean;
18
+ }
19
+ export interface IPaginationFilterStringEqualOptions extends IPaginationFilterStringContainOptions {
20
+ isNumber?: boolean;
21
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pagination.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.interface.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/interfaces/pagination.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { ENUM_PAGINATION_ORDER_DIRECTION_TYPE } from '../constants';
2
+ import { IPaginationOrder } from './pagination.interface';
3
+ export interface IPaginationService {
4
+ offset(page: number, perPage: number): number;
5
+ totalPages(totalData: number, perPage: number): number;
6
+ offsetWithoutMax(page: number, perPage: number): number;
7
+ totalPageWithoutMax(totalData: number, perPage: number): number;
8
+ page(page: number): number;
9
+ perPage(perPage: number): number;
10
+ order(orderByValue: string, orderDirectionValue: ENUM_PAGINATION_ORDER_DIRECTION_TYPE, availableOrderBy: string[], availableOrderDirection: ENUM_PAGINATION_ORDER_DIRECTION_TYPE[]): IPaginationOrder;
11
+ search(searchValue: string, availableSearch: string[]): Record<string, any> | undefined;
12
+ filterEqual<T = string>(field: string, filterValue?: T): Record<string, any> | undefined;
13
+ filterContain(field: string, filterValue?: string): Record<string, any> | undefined;
14
+ filterIn<T = string>(field: string, filterValue?: T[]): Record<string, any> | undefined;
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pagination.service.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.service.interface.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/interfaces/pagination.service.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare class PaginationModule {
2
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const pagination_service_1 = require("./services/pagination.service");
7
+ let PaginationModule = class PaginationModule {
8
+ };
9
+ exports.PaginationModule = PaginationModule;
10
+ exports.PaginationModule = PaginationModule = tslib_1.__decorate([
11
+ (0, common_1.Module)({
12
+ providers: [pagination_service_1.PaginationService],
13
+ exports: [pagination_service_1.PaginationService],
14
+ imports: [],
15
+ })
16
+ ], PaginationModule);
17
+ //# sourceMappingURL=pagination.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.module.js","sourceRoot":"","sources":["../../../../packages/pagination/src/pagination.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,sEAAkE;AAO3D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAL5B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,sCAAiB,CAAC;QAC9B,OAAO,EAAE,CAAC,sCAAiB,CAAC;QAC5B,OAAO,EAAE,EAAE;KACZ,CAAC;GACW,gBAAgB,CAAG"}
@@ -0,0 +1,9 @@
1
+ export * from './pagination.filter-contain.pipe';
2
+ export * from './pagination.filter-date.pipe';
3
+ export * from './pagination.filter-equal-object-id.pipe';
4
+ export * from './pagination.filter-equal.pipe';
5
+ export * from './pagination.filter-in-boolean.pipe';
6
+ export * from './pagination.filter-in-enum.pipe';
7
+ export * from './pagination.order.pipe';
8
+ export * from './pagination.paging.pipe';
9
+ export * from './pagination.search.pipe';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./pagination.filter-contain.pipe"), exports);
5
+ tslib_1.__exportStar(require("./pagination.filter-date.pipe"), exports);
6
+ tslib_1.__exportStar(require("./pagination.filter-equal-object-id.pipe"), exports);
7
+ tslib_1.__exportStar(require("./pagination.filter-equal.pipe"), exports);
8
+ tslib_1.__exportStar(require("./pagination.filter-in-boolean.pipe"), exports);
9
+ tslib_1.__exportStar(require("./pagination.filter-in-enum.pipe"), exports);
10
+ tslib_1.__exportStar(require("./pagination.order.pipe"), exports);
11
+ tslib_1.__exportStar(require("./pagination.paging.pipe"), exports);
12
+ tslib_1.__exportStar(require("./pagination.search.pipe"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/index.ts"],"names":[],"mappings":";;;AAAA,2EAAiD;AACjD,wEAA8C;AAC9C,mFAAyD;AACzD,yEAA+C;AAC/C,8EAAoD;AACpD,2EAAiD;AACjD,kEAAwC;AACxC,mEAAyC;AACzC,mEAAyC"}
@@ -0,0 +1,4 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ import { IPaginationFilterStringContainOptions } from '../interfaces';
4
+ export declare function PaginationFilterContainPipe(options?: IPaginationFilterStringContainOptions): Type<PipeTransform>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationFilterContainPipe = PaginationFilterContainPipe;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const constants_1 = require("../constants");
9
+ const pagination_service_1 = require("../services/pagination.service");
10
+ function PaginationFilterContainPipe(options) {
11
+ let MixinPaginationFilterContainPipe = class MixinPaginationFilterContainPipe {
12
+ constructor(request, paginationService) {
13
+ this.request = request;
14
+ this.paginationService = paginationService;
15
+ }
16
+ async transform(value, { data: field }) {
17
+ if (!value) {
18
+ value = '';
19
+ }
20
+ if (!field)
21
+ return undefined;
22
+ if (options?.case === constants_1.ENUM_PAGINATION_FILTER_CASE_OPTIONS.UPPERCASE) {
23
+ value = value.toUpperCase();
24
+ }
25
+ else if (options?.case === constants_1.ENUM_PAGINATION_FILTER_CASE_OPTIONS.LOWERCASE) {
26
+ value = value.toUpperCase();
27
+ }
28
+ if (options?.trim) {
29
+ value = value.trim();
30
+ }
31
+ // if (options?.fullMatch) {
32
+ // return this.paginationService.filterContainFullMatch(field, value);
33
+ // }
34
+ this.request.__filters = {
35
+ ...this.request.__filters,
36
+ [field]: value,
37
+ };
38
+ return this.paginationService.filterContain(field, value);
39
+ }
40
+ };
41
+ MixinPaginationFilterContainPipe = tslib_1.__decorate([
42
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
43
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
44
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService])
45
+ ], MixinPaginationFilterContainPipe);
46
+ return (0, common_1.mixin)(MixinPaginationFilterContainPipe);
47
+ }
48
+ //# sourceMappingURL=pagination.filter-contain.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.filter-contain.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.filter-contain.pipe.ts"],"names":[],"mappings":";;AAYA,kEA8CC;;AAzDD,2CAAiE;AACjE,0DAImC;AACnC,uCAAuC;AACvC,4CAAmE;AAEnE,uEAAmE;AAEnE,SAAgB,2BAA2B,CACzC,OAA+C;IAE/C,IACM,gCAAgC,GADtC,MACM,gCAAgC;QACpC,YACsC,OAAoB,EACvC,iBAAoC;YADjB,YAAO,GAAP,OAAO,CAAa;YACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpD,CAAC;QAEJ,KAAK,CAAC,SAAS,CACb,KAAa,EACb,EAAE,IAAI,EAAE,KAAK,EAAoB;YAIjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,CAAC;YACb,CAAC;YACD,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAE7B,IAAI,OAAO,EAAE,IAAI,KAAK,+CAAmC,CAAC,SAAS,EAAE,CAAC;gBACpE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC9B,CAAC;iBAAM,IACL,OAAO,EAAE,IAAI,KAAK,+CAAmC,CAAC,SAAS,EAC/D,CAAC;gBACD,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC9B,CAAC;YAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAClB,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAED,4BAA4B;YAC5B,wEAAwE;YACxE,IAAI;YACJ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBACvB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzB,CAAC,KAAK,CAAC,EAAE,KAAK;aACf,CAAC;YAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;KACF,CAAA;IAvCK,gCAAgC;QADrC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;yDACoB,sCAAiB;OAHnD,gCAAgC,CAuCrC;IAED,OAAO,IAAA,cAAK,EAAC,gCAAgC,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ import { IPaginationFilterDateOptions } from '../interfaces';
4
+ export declare function PaginationFilterDatePipe(options?: IPaginationFilterDateOptions): Type<PipeTransform>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationFilterDatePipe = PaginationFilterDatePipe;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const constants_1 = require("../constants");
9
+ const pagination_service_1 = require("../services/pagination.service");
10
+ const helper_1 = require("@tc-libs/helper");
11
+ function PaginationFilterDatePipe(options) {
12
+ let MixinPaginationFilterDatePipe = class MixinPaginationFilterDatePipe {
13
+ constructor(request, paginationService, helperDateService) {
14
+ this.request = request;
15
+ this.paginationService = paginationService;
16
+ this.helperDateService = helperDateService;
17
+ }
18
+ async transform(value, { data: field }) {
19
+ if (!field)
20
+ return undefined;
21
+ let date = this.helperDateService.create(value);
22
+ if (options?.time === constants_1.ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS.END_OF_DAY) {
23
+ date = this.helperDateService.endOfDay(date);
24
+ }
25
+ else if (options?.time === constants_1.ENUM_PAGINATION_FILTER_DATE_TIME_OPTIONS.START_OF_DAY) {
26
+ date = this.helperDateService.startOfDay(date);
27
+ }
28
+ this.request.__filters = {
29
+ ...this.request.__filters,
30
+ [field]: value,
31
+ };
32
+ return this.paginationService.filterDate(field, date);
33
+ }
34
+ };
35
+ MixinPaginationFilterDatePipe = tslib_1.__decorate([
36
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
37
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
38
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService,
39
+ helper_1.DateService])
40
+ ], MixinPaginationFilterDatePipe);
41
+ return (0, common_1.mixin)(MixinPaginationFilterDatePipe);
42
+ }
43
+ //# sourceMappingURL=pagination.filter-date.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.filter-date.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.filter-date.pipe.ts"],"names":[],"mappings":";;AAaA,4DAsCC;;AAlDD,2CAAiE;AACjE,0DAImC;AACnC,uCAAuC;AACvC,4CAAwE;AAExE,uEAAmE;AACnE,4CAA8C;AAE9C,SAAgB,wBAAwB,CACtC,OAAsC;IAEtC,IACM,6BAA6B,GADnC,MACM,6BAA6B;QACjC,YACsC,OAAoB,EACvC,iBAAoC,EACpC,iBAA8B;YAFX,YAAO,GAAP,OAAO,CAAa;YACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,sBAAiB,GAAjB,iBAAiB,CAAa;QAC9C,CAAC;QAEJ,KAAK,CAAC,SAAS,CACb,KAAa,EACb,EAAE,IAAI,EAAE,KAAK,EAAoB;YAEjC,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,IAAI,IAAI,GAAS,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEtD,IACE,OAAO,EAAE,IAAI,KAAK,oDAAwC,CAAC,UAAU,EACrE,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,IACL,OAAO,EAAE,IAAI,KAAK,oDAAwC,CAAC,YAAY,EACvE,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBACvB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzB,CAAC,KAAM,CAAC,EAAE,KAAK;aAChB,CAAC;YAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAM,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;KACF,CAAA;IA/BK,6BAA6B;QADlC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;yDACoB,sCAAiB;YACjB,oBAAW;OAJ7C,6BAA6B,CA+BlC;IAED,OAAO,IAAA,cAAK,EAAC,6BAA6B,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { IRequestApp } from '@tc-libs/request';
2
+ import { ArgumentMetadata, PipeTransform } from '@nestjs/common/interfaces';
3
+ import { Types } from 'mongoose';
4
+ import { PaginationService } from '../services/pagination.service';
5
+ export declare class PaginationFilterEqualObjectIdPipe implements PipeTransform {
6
+ protected readonly request: IRequestApp;
7
+ private readonly paginationService;
8
+ constructor(request: IRequestApp, paginationService: PaginationService);
9
+ transform(value: string, { data: field }: ArgumentMetadata): Promise<Record<string, Types.ObjectId | string> | undefined>;
10
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationFilterEqualObjectIdPipe = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const mongoose_1 = require("mongoose");
9
+ const pagination_service_1 = require("../services/pagination.service");
10
+ let PaginationFilterEqualObjectIdPipe = class PaginationFilterEqualObjectIdPipe {
11
+ constructor(request, paginationService) {
12
+ this.request = request;
13
+ this.paginationService = paginationService;
14
+ }
15
+ async transform(value, { data: field }) {
16
+ if (!value || !field) {
17
+ return undefined;
18
+ }
19
+ value = value.trim();
20
+ const finalValue = mongoose_1.Types.ObjectId.isValid(value)
21
+ ? new mongoose_1.Types.ObjectId(value)
22
+ : value;
23
+ this.request.__filters = {
24
+ ...this.request.__filters,
25
+ [field]: value,
26
+ };
27
+ return this.paginationService.filterEqual(field, finalValue);
28
+ }
29
+ };
30
+ exports.PaginationFilterEqualObjectIdPipe = PaginationFilterEqualObjectIdPipe;
31
+ exports.PaginationFilterEqualObjectIdPipe = PaginationFilterEqualObjectIdPipe = tslib_1.__decorate([
32
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
33
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
34
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService])
35
+ ], PaginationFilterEqualObjectIdPipe);
36
+ //# sourceMappingURL=pagination.filter-equal-object-id.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.filter-equal-object-id.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.filter-equal-object-id.pipe.ts"],"names":[],"mappings":";;;;AACA,2CAAoD;AACpD,0DAImC;AACnC,uCAAuC;AACvC,uCAAiC;AACjC,uEAAmE;AAG5D,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAC5C,YACsC,OAAoB,EACvC,iBAAoC;QADjB,YAAO,GAAP,OAAO,CAAa;QACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAEJ,KAAK,CAAC,SAAS,CACb,KAAa,EACb,EAAE,IAAI,EAAE,KAAK,EAAoB;QAEjC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,gBAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YAC9C,CAAC,CAAC,IAAI,gBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;YACvB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;YACzB,CAAC,KAAK,CAAC,EAAE,KAAK;SACf,CAAC;QAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACvC,KAAK,EACL,UAAU,CACX,CAAC;IACJ,CAAC;CACF,CAAA;AA7BY,8EAAiC;4CAAjC,iCAAiC;IAD7C,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;IAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;qDACoB,sCAAiB;GAH5C,iCAAiC,CA6B7C"}
@@ -0,0 +1,4 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ import { IPaginationFilterStringEqualOptions } from '../interfaces';
4
+ export declare function PaginationFilterEqualPipe(options?: IPaginationFilterStringEqualOptions): Type<PipeTransform>;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationFilterEqualPipe = PaginationFilterEqualPipe;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const constants_1 = require("../constants");
9
+ const pagination_service_1 = require("../services/pagination.service");
10
+ const helper_1 = require("@tc-libs/helper");
11
+ function PaginationFilterEqualPipe(options) {
12
+ let MixinPaginationFilterEqualPipe = class MixinPaginationFilterEqualPipe {
13
+ constructor(request, paginationService, _number) {
14
+ this.request = request;
15
+ this.paginationService = paginationService;
16
+ this._number = _number;
17
+ }
18
+ async transform(value, { data: field }) {
19
+ if (!value || !field) {
20
+ return undefined;
21
+ }
22
+ if (options?.case === constants_1.ENUM_PAGINATION_FILTER_CASE_OPTIONS.UPPERCASE) {
23
+ value = value.toUpperCase();
24
+ }
25
+ else if (options?.case === constants_1.ENUM_PAGINATION_FILTER_CASE_OPTIONS.LOWERCASE) {
26
+ value = value.toUpperCase();
27
+ }
28
+ if (options?.trim) {
29
+ value = value.trim();
30
+ }
31
+ let finalValue = value;
32
+ if (options?.isNumber) {
33
+ finalValue = this._number.checkDiscrete(value) ? Number(value) : value;
34
+ }
35
+ this.request.__filters = {
36
+ ...this.request.__filters,
37
+ [field]: finalValue,
38
+ };
39
+ return this.paginationService.filterEqual(field, finalValue);
40
+ }
41
+ };
42
+ MixinPaginationFilterEqualPipe = tslib_1.__decorate([
43
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
44
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
45
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService,
46
+ helper_1.NumberService])
47
+ ], MixinPaginationFilterEqualPipe);
48
+ return (0, common_1.mixin)(MixinPaginationFilterEqualPipe);
49
+ }
50
+ //# sourceMappingURL=pagination.filter-equal.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.filter-equal.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.filter-equal.pipe.ts"],"names":[],"mappings":";;AAaA,8DAiDC;;AA7DD,2CAAiE;AACjE,0DAImC;AACnC,uCAAuC;AACvC,4CAAmE;AAEnE,uEAAmE;AACnE,4CAAgD;AAEhD,SAAgB,yBAAyB,CACvC,OAA6C;IAE7C,IACM,8BAA8B,GADpC,MACM,8BAA8B;QAClC,YACsC,OAAoB,EACvC,iBAAoC,EACpC,OAAsB;YAFH,YAAO,GAAP,OAAO,CAAa;YACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,YAAO,GAAP,OAAO,CAAe;QACtC,CAAC;QAEJ,KAAK,CAAC,SAAS,CACb,KAAa,EACb,EAAE,IAAI,EAAE,KAAK,EAAoB;YAEjC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,OAAO,EAAE,IAAI,KAAK,+CAAmC,CAAC,SAAS,EAAE,CAAC;gBACpE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC9B,CAAC;iBAAM,IACL,OAAO,EAAE,IAAI,KAAK,+CAAmC,CAAC,SAAS,EAC/D,CAAC;gBACD,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC9B,CAAC;YAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAClB,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAED,IAAI,UAAU,GAAoB,KAAK,CAAC;YACxC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACtB,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzE,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBACvB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzB,CAAC,KAAK,CAAC,EAAE,UAAU;aACpB,CAAC;YAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACvC,KAAK,EACL,UAAU,CACX,CAAC;QACJ,CAAC;KACF,CAAA;IA1CK,8BAA8B;QADnC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;yDACoB,sCAAiB;YAC3B,sBAAa;OAJrC,8BAA8B,CA0CnC;IAED,OAAO,IAAA,cAAK,EAAC,8BAA8B,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ export declare function PaginationFilterInBooleanPipe(defaultValue: boolean[]): Type<PipeTransform>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationFilterInBooleanPipe = PaginationFilterInBooleanPipe;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const pagination_service_1 = require("../services/pagination.service");
9
+ const lodash_1 = require("lodash");
10
+ function PaginationFilterInBooleanPipe(defaultValue) {
11
+ let MixinPaginationFilterInBooleanPipe = class MixinPaginationFilterInBooleanPipe {
12
+ constructor(request, paginationService) {
13
+ this.request = request;
14
+ this.paginationService = paginationService;
15
+ }
16
+ async transform(value, { data: field }) {
17
+ if (!field)
18
+ return undefined;
19
+ let finalValue = defaultValue;
20
+ if (value) {
21
+ finalValue = (0, lodash_1.uniq)(value.split(',').map((val) => val === 'true'));
22
+ }
23
+ this.request.__filters = {
24
+ ...this.request.__filters,
25
+ [field]: finalValue,
26
+ };
27
+ return this.paginationService.filterIn(field, finalValue);
28
+ }
29
+ };
30
+ MixinPaginationFilterInBooleanPipe = tslib_1.__decorate([
31
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
32
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
33
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService])
34
+ ], MixinPaginationFilterInBooleanPipe);
35
+ return (0, common_1.mixin)(MixinPaginationFilterInBooleanPipe);
36
+ }
37
+ //# sourceMappingURL=pagination.filter-in-boolean.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.filter-in-boolean.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.filter-in-boolean.pipe.ts"],"names":[],"mappings":";;AAUA,sEAiCC;;AA1CD,2CAAiE;AACjE,0DAImC;AACnC,uCAAuC;AACvC,uEAAmE;AACnE,mCAA8B;AAC9B,SAAgB,6BAA6B,CAC3C,YAAuB;IAEvB,IACM,kCAAkC,GADxC,MACM,kCAAkC;QACtC,YACsC,OAAoB,EACvC,iBAAoC;YADjB,YAAO,GAAP,OAAO,CAAa;YACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpD,CAAC;QAEJ,KAAK,CAAC,SAAS,CACb,KAAa,EACb,EAAE,IAAI,EAAE,KAAK,EAAoB;YAEjC,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,IAAI,UAAU,GAAc,YAAyB,CAAC;YAEtD,IAAI,KAAK,EAAE,CAAC;gBACV,UAAU,GAAG,IAAA,aAAI,EACf,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CACtD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBACvB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzB,CAAC,KAAK,CAAC,EAAE,UAAU;aACpB,CAAC;YAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAU,KAAK,EAAE,UAAU,CAAC,CAAC;QACrE,CAAC;KACF,CAAA;IA1BK,kCAAkC;QADvC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;yDACoB,sCAAiB;OAHnD,kCAAkC,CA0BvC;IAED,OAAO,IAAA,cAAK,EAAC,kCAAkC,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ export declare function PaginationFilterInEnumPipe<T>(defaultValue: T, defaultEnum: Record<string, any>): Type<PipeTransform>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationFilterInEnumPipe = PaginationFilterInEnumPipe;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const pagination_service_1 = require("../services/pagination.service");
9
+ function PaginationFilterInEnumPipe(defaultValue, defaultEnum) {
10
+ let MixinPaginationFilterInEnumPipe = class MixinPaginationFilterInEnumPipe {
11
+ constructor(request, paginationService) {
12
+ this.request = request;
13
+ this.paginationService = paginationService;
14
+ }
15
+ async transform(value, { data: field }) {
16
+ if (!field)
17
+ return undefined;
18
+ let finalValue = defaultValue;
19
+ if (value) {
20
+ finalValue = value
21
+ .split(',')
22
+ .map((val) => defaultEnum[val])
23
+ .filter((val) => val);
24
+ }
25
+ this.request.__filters = {
26
+ ...this.request.__filters,
27
+ [field]: finalValue,
28
+ };
29
+ return this.paginationService.filterIn(field, finalValue);
30
+ }
31
+ };
32
+ MixinPaginationFilterInEnumPipe = tslib_1.__decorate([
33
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
34
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
35
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService])
36
+ ], MixinPaginationFilterInEnumPipe);
37
+ return (0, common_1.mixin)(MixinPaginationFilterInEnumPipe);
38
+ }
39
+ //# sourceMappingURL=pagination.filter-in-enum.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.filter-in-enum.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.filter-in-enum.pipe.ts"],"names":[],"mappings":";;AAUA,gEAmCC;;AA5CD,2CAAiE;AACjE,0DAImC;AACnC,uCAAuC;AACvC,uEAAmE;AAEnE,SAAgB,0BAA0B,CACxC,YAAe,EACf,WAAgC;IAEhC,IACM,+BAA+B,GADrC,MACM,+BAA+B;QACnC,YACsC,OAAoB,EACvC,iBAAoC;YADjB,YAAO,GAAP,OAAO,CAAa;YACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpD,CAAC;QAEJ,KAAK,CAAC,SAAS,CACb,KAAa,EACb,EAAE,IAAI,EAAE,KAAK,EAAoB;YAEjC,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,IAAI,UAAU,GAAQ,YAAmB,CAAC;YAE1C,IAAI,KAAK,EAAE,CAAC;gBACV,UAAU,GAAG,KAAK;qBACf,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;qBACtC,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAQ,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBACvB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzB,CAAC,KAAK,CAAC,EAAE,UAAsB;aAChC,CAAC;YAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAI,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;KACF,CAAA;IA3BK,+BAA+B;QADpC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;yDACoB,sCAAiB;OAHnD,+BAA+B,CA2BpC;IAED,OAAO,IAAA,cAAK,EAAC,+BAA+B,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ import { ENUM_PAGINATION_ORDER_DIRECTION_TYPE } from '../constants';
4
+ export declare function PaginationOrderPipe(defaultOrderBy: string, defaultOrderDirection: ENUM_PAGINATION_ORDER_DIRECTION_TYPE, availableOrderBy: string[]): Type<PipeTransform>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationOrderPipe = PaginationOrderPipe;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const constants_1 = require("../constants");
9
+ const pagination_service_1 = require("../services/pagination.service");
10
+ function PaginationOrderPipe(defaultOrderBy, defaultOrderDirection, availableOrderBy) {
11
+ let MixinPaginationOrderPipe = class MixinPaginationOrderPipe {
12
+ constructor(request, paginationService) {
13
+ this.request = request;
14
+ this.paginationService = paginationService;
15
+ }
16
+ async transform(value) {
17
+ const orderBy = value['orderBy'] ?? defaultOrderBy;
18
+ const orderDirection = value['orderDirection'] ?? defaultOrderDirection;
19
+ const availableOrderDirection = constants_1.PAGINATION_AVAILABLE_ORDER_DIRECTION;
20
+ const order = this.paginationService.order(orderBy, orderDirection, availableOrderBy);
21
+ this.request.__pagination = {
22
+ ...this.request.__pagination,
23
+ orderBy,
24
+ orderDirection,
25
+ availableOrderBy,
26
+ availableOrderDirection,
27
+ };
28
+ return {
29
+ ...value,
30
+ _order: order,
31
+ _availableOrderBy: availableOrderBy,
32
+ _availableOrderDirection: availableOrderDirection,
33
+ };
34
+ }
35
+ };
36
+ MixinPaginationOrderPipe = tslib_1.__decorate([
37
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
38
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
39
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService])
40
+ ], MixinPaginationOrderPipe);
41
+ return (0, common_1.mixin)(MixinPaginationOrderPipe);
42
+ }
43
+ //# sourceMappingURL=pagination.order.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.order.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.order.pipe.ts"],"names":[],"mappings":";;AAUA,kDA2CC;;AApDD,2CAAiE;AACjE,0DAAiE;AACjE,uCAAuC;AACvC,4CAGsB;AACtB,uEAAmE;AAEnE,SAAgB,mBAAmB,CACjC,cAAsB,EACtB,qBAA2D,EAC3D,gBAA0B;IAE1B,IACM,wBAAwB,GAD9B,MACM,wBAAwB;QAC5B,YACsC,OAAoB,EACvC,iBAAoC;YADjB,YAAO,GAAP,OAAO,CAAa;YACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpD,CAAC;QAEJ,KAAK,CAAC,SAAS,CAAC,KAA0B;YACxC,MAAM,OAAO,GAAW,KAAK,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC;YAC3D,MAAM,cAAc,GAClB,KAAK,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC;YACnD,MAAM,uBAAuB,GAC3B,gDAAoC,CAAC;YAEvC,MAAM,KAAK,GAAwB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAC7D,OAAO,EACP,cAAc,EACd,gBAAgB,CACjB,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG;gBAC1B,GAAG,IAAI,CAAC,OAAO,CAAC,YAAa;gBAC7B,OAAO;gBACP,cAAc;gBACd,gBAAgB;gBAChB,uBAAuB;aACxB,CAAC;YAEF,OAAO;gBACL,GAAG,KAAK;gBACR,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,gBAAgB;gBACnC,wBAAwB,EAAE,uBAAuB;aAClD,CAAC;QACJ,CAAC;KACF,CAAA;IAlCK,wBAAwB;QAD7B,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;yDACoB,sCAAiB;OAHnD,wBAAwB,CAkC7B;IAED,OAAO,IAAA,cAAK,EAAC,wBAAwB,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ export declare function PaginationPagingPipe(defaultPerPage: number): Type<PipeTransform>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationPagingPipe = PaginationPagingPipe;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const pagination_service_1 = require("../services/pagination.service");
9
+ function PaginationPagingPipe(defaultPerPage) {
10
+ let MixinPaginationPagingPipe = class MixinPaginationPagingPipe {
11
+ constructor(request, paginationService) {
12
+ this.request = request;
13
+ this.paginationService = paginationService;
14
+ }
15
+ async transform(value) {
16
+ const page = this.paginationService.page(Number(value['page'] ?? 1));
17
+ const perPage = this.paginationService.perPage(Number(value['perPage'] ?? defaultPerPage));
18
+ const offset = this.paginationService.offset(page, perPage);
19
+ this.request.__pagination = {
20
+ ...this.request.__pagination,
21
+ page,
22
+ perPage,
23
+ };
24
+ return {
25
+ ...value,
26
+ page,
27
+ perPage,
28
+ _limit: perPage,
29
+ _offset: offset,
30
+ };
31
+ }
32
+ };
33
+ MixinPaginationPagingPipe = tslib_1.__decorate([
34
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
35
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
36
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService])
37
+ ], MixinPaginationPagingPipe);
38
+ return (0, common_1.mixin)(MixinPaginationPagingPipe);
39
+ }
40
+ //# sourceMappingURL=pagination.paging.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.paging.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.paging.pipe.ts"],"names":[],"mappings":";;AAMA,oDAoCC;;AAzCD,2CAAiE;AACjE,0DAAiE;AACjE,uCAAuC;AACvC,uEAAmE;AAEnE,SAAgB,oBAAoB,CAClC,cAAsB;IAEtB,IACM,yBAAyB,GAD/B,MACM,yBAAyB;QAC7B,YACsC,OAAoB,EACvC,iBAAoC;YADjB,YAAO,GAAP,OAAO,CAAa;YACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpD,CAAC;QAEJ,KAAK,CAAC,SAAS,CAAC,KAA0B;YACxC,MAAM,IAAI,GAAW,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAC3B,CAAC;YACF,MAAM,OAAO,GAAW,IAAI,CAAC,iBAAiB,CAAC,OAAO,CACpD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,CAC3C,CAAC;YACF,MAAM,MAAM,GAAW,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEpE,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG;gBAC1B,GAAG,IAAI,CAAC,OAAO,CAAC,YAAa;gBAC7B,IAAI;gBACJ,OAAO;aACR,CAAC;YAEF,OAAO;gBACL,GAAG,KAAK;gBACR,IAAI;gBACJ,OAAO;gBACP,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,MAAM;aAChB,CAAC;QACJ,CAAC;KACF,CAAA;IA7BK,yBAAyB;QAD9B,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;yDACoB,sCAAiB;OAHnD,yBAAyB,CA6B9B;IAED,OAAO,IAAA,cAAK,EAAC,yBAAyB,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ export declare function PaginationSearchPipe(availableSearch: string[]): Type<PipeTransform>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationSearchPipe = PaginationSearchPipe;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const interfaces_1 = require("@nestjs/common/interfaces");
7
+ const core_1 = require("@nestjs/core");
8
+ const pagination_service_1 = require("../services/pagination.service");
9
+ function PaginationSearchPipe(availableSearch) {
10
+ let MixinPaginationSearchPipe = class MixinPaginationSearchPipe {
11
+ constructor(request, paginationService) {
12
+ this.request = request;
13
+ this.paginationService = paginationService;
14
+ }
15
+ async transform(value) {
16
+ const searchText = value['search'] ?? '';
17
+ const search = this.paginationService.search(searchText, availableSearch);
18
+ this.request.__pagination = {
19
+ ...this.request.__pagination,
20
+ search: searchText,
21
+ availableSearch,
22
+ };
23
+ return {
24
+ ...value,
25
+ _search: search,
26
+ _availableSearch: availableSearch,
27
+ };
28
+ }
29
+ };
30
+ MixinPaginationSearchPipe = tslib_1.__decorate([
31
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
32
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
33
+ tslib_1.__metadata("design:paramtypes", [Object, pagination_service_1.PaginationService])
34
+ ], MixinPaginationSearchPipe);
35
+ return (0, common_1.mixin)(MixinPaginationSearchPipe);
36
+ }
37
+ //# sourceMappingURL=pagination.search.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.search.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.search.pipe.ts"],"names":[],"mappings":";;AAMA,oDA8BC;;AAnCD,2CAAiE;AACjE,0DAAiE;AACjE,uCAAuC;AACvC,uEAAmE;AAEnE,SAAgB,oBAAoB,CAClC,eAAyB;IAEzB,IACM,yBAAyB,GAD/B,MACM,yBAAyB;QAC7B,YACsC,OAAoB,EACvC,iBAAoC;YADjB,YAAO,GAAP,OAAO,CAAa;YACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpD,CAAC;QAEJ,KAAK,CAAC,SAAS,CAAC,KAA0B;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,MAAM,GACV,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YAE7D,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG;gBAC1B,GAAG,IAAI,CAAC,OAAO,CAAC,YAAa;gBAC7B,MAAM,EAAE,UAAU;gBAClB,eAAe;aAChB,CAAC;YAEF,OAAO;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE,MAAM;gBACf,gBAAgB,EAAE,eAAe;aAClC,CAAC;QACJ,CAAC;KACF,CAAA;IAvBK,yBAAyB;QAD9B,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAGhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;yDACoB,sCAAiB;OAHnD,yBAAyB,CAuB9B;IAED,OAAO,IAAA,cAAK,EAAC,yBAAyB,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './pagination.service';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./pagination.service"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/services/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC"}
@@ -0,0 +1,24 @@
1
+ import { IPaginationService, IPaginationOrder } from '../interfaces';
2
+ export declare class PaginationService implements IPaginationService {
3
+ offset(page: number, perPage: number): number;
4
+ totalPages(totalData: number, perPage: number): number;
5
+ offsetWithoutMax(page: number, perPage: number): number;
6
+ totalPageWithoutMax(totalData: number, perPage: number): number;
7
+ page(page?: number): number;
8
+ perPage(perPage?: number): number;
9
+ order(orderByValue?: string, orderDirectionValue?: import("../constants").ENUM_PAGINATION_ORDER_DIRECTION_TYPE, availableOrderBy?: string[]): IPaginationOrder;
10
+ search(searchValue: string | undefined, availableSearch: string[]): Record<string, any> | undefined;
11
+ filterEqual<T = string>(field: string, filterValue: T): Record<string, T>;
12
+ filterContain(field: string, filterValue: string): Record<string, {
13
+ $regex: RegExp;
14
+ $options: string;
15
+ }>;
16
+ filterContainFullMatch(field: string, filterValue: string): Record<string, {
17
+ $regex: RegExp;
18
+ $options: string;
19
+ }>;
20
+ filterIn<T = string>(field: string, filterValue: T[]): Record<string, {
21
+ $in: T[];
22
+ }>;
23
+ filterDate(field: string, filterValue: Date): Record<string, Date>;
24
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const constants_1 = require("../constants");
7
+ let PaginationService = class PaginationService {
8
+ offset(page, perPage) {
9
+ page = page > constants_1.PAGINATION_MAX_PAGE ? constants_1.PAGINATION_MAX_PAGE : page;
10
+ perPage =
11
+ perPage > constants_1.PAGINATION_MAX_PER_PAGE ? constants_1.PAGINATION_MAX_PER_PAGE : perPage;
12
+ const offset = (page - 1) * perPage;
13
+ return offset;
14
+ }
15
+ totalPages(totalData, perPage) {
16
+ let totalPage = Math.ceil(totalData / perPage);
17
+ totalPage = totalPage === 0 ? 1 : totalPage;
18
+ return totalPage > constants_1.PAGINATION_MAX_PAGE ? constants_1.PAGINATION_MAX_PAGE : totalPage;
19
+ }
20
+ offsetWithoutMax(page, perPage) {
21
+ const offset = (page - 1) * perPage;
22
+ return offset;
23
+ }
24
+ totalPageWithoutMax(totalData, perPage) {
25
+ let totalPage = Math.ceil(totalData / perPage);
26
+ totalPage = totalPage === 0 ? 1 : totalPage;
27
+ return totalPage;
28
+ }
29
+ page(page) {
30
+ return page
31
+ ? page > constants_1.PAGINATION_MAX_PAGE
32
+ ? constants_1.PAGINATION_MAX_PAGE
33
+ : page
34
+ : constants_1.PAGINATION_PAGE;
35
+ }
36
+ perPage(perPage) {
37
+ return perPage
38
+ ? perPage > constants_1.PAGINATION_MAX_PER_PAGE
39
+ ? constants_1.PAGINATION_MAX_PER_PAGE
40
+ : perPage
41
+ : constants_1.PAGINATION_PER_PAGE;
42
+ }
43
+ order(orderByValue = constants_1.PAGINATION_ORDER_BY, orderDirectionValue = constants_1.PAGINATION_ORDER_DIRECTION, availableOrderBy = constants_1.PAGINATION_AVAILABLE_ORDER_BY) {
44
+ const orderBy = availableOrderBy.includes(orderByValue)
45
+ ? orderByValue
46
+ : constants_1.PAGINATION_ORDER_BY;
47
+ return { [orderBy]: orderDirectionValue };
48
+ }
49
+ search(searchValue = '', availableSearch) {
50
+ if (!searchValue) {
51
+ return undefined;
52
+ }
53
+ return {
54
+ $or: availableSearch.map((val) => ({
55
+ [val]: {
56
+ $regex: new RegExp(searchValue),
57
+ $options: 'i',
58
+ },
59
+ })),
60
+ };
61
+ }
62
+ filterEqual(field, filterValue) {
63
+ return { [field]: filterValue };
64
+ }
65
+ filterContain(field, filterValue) {
66
+ return {
67
+ [field]: {
68
+ $regex: new RegExp(filterValue),
69
+ $options: 'i',
70
+ },
71
+ };
72
+ }
73
+ filterContainFullMatch(field, filterValue) {
74
+ return {
75
+ [field]: {
76
+ $regex: new RegExp(`\\b${filterValue}\\b`),
77
+ $options: 'i',
78
+ },
79
+ };
80
+ }
81
+ filterIn(field, filterValue) {
82
+ return {
83
+ [field]: {
84
+ $in: filterValue,
85
+ },
86
+ };
87
+ }
88
+ filterDate(field, filterValue) {
89
+ return {
90
+ [field]: filterValue,
91
+ };
92
+ }
93
+ };
94
+ exports.PaginationService = PaginationService;
95
+ exports.PaginationService = PaginationService = tslib_1.__decorate([
96
+ (0, common_1.Injectable)()
97
+ ], PaginationService);
98
+ //# sourceMappingURL=pagination.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.service.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/services/pagination.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,4CAQsB;AAIf,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,MAAM,CAAC,IAAY,EAAE,OAAe;QAClC,IAAI,GAAG,IAAI,GAAG,+BAAmB,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,OAAO;YACL,OAAO,GAAG,mCAAuB,CAAC,CAAC,CAAC,mCAAuB,CAAC,CAAC,CAAC,OAAO,CAAC;QACxE,MAAM,MAAM,GAAW,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;QAE5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,SAAiB,EAAE,OAAe;QAC3C,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;QAC/C,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5C,OAAO,SAAS,GAAG,+BAAmB,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,OAAe;QAC5C,MAAM,MAAM,GAAW,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,OAAe;QACpD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;QAC/C,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,IAAa;QAChB,OAAO,IAAI;YACT,CAAC,CAAC,IAAI,GAAG,+BAAmB;gBAC1B,CAAC,CAAC,+BAAmB;gBACrB,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,2BAAe,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,OAAgB;QACtB,OAAO,OAAO;YACZ,CAAC,CAAC,OAAO,GAAG,mCAAuB;gBACjC,CAAC,CAAC,mCAAuB;gBACzB,CAAC,CAAC,OAAO;YACX,CAAC,CAAC,+BAAmB,CAAC;IAC1B,CAAC;IAED,KAAK,CACH,YAAY,GAAG,+BAAmB,EAClC,mBAAmB,GAAG,sCAA0B,EAChD,gBAAgB,GAAG,yCAA6B;QAEhD,MAAM,OAAO,GAAW,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7D,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,+BAAmB,CAAC;QAExB,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,CACJ,WAAW,GAAG,EAAE,EAChB,eAAyB;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjC,CAAC,GAAG,CAAC,EAAE;oBACL,MAAM,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC;oBAC/B,QAAQ,EAAE,GAAG;iBACd;aACF,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,WAAW,CAAa,KAAa,EAAE,WAAc;QACnD,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,aAAa,CACX,KAAa,EACb,WAAmB;QAEnB,OAAO;YACL,CAAC,KAAK,CAAC,EAAE;gBACP,MAAM,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC;gBAC/B,QAAQ,EAAE,GAAG;aACd;SACF,CAAC;IACJ,CAAC;IAED,sBAAsB,CACpB,KAAa,EACb,WAAmB;QAEnB,OAAO;YACL,CAAC,KAAK,CAAC,EAAE;gBACP,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,WAAW,KAAK,CAAC;gBAC1C,QAAQ,EAAE,GAAG;aACd;SACF,CAAC;IACJ,CAAC;IAED,QAAQ,CACN,KAAa,EACb,WAAgB;QAEhB,OAAO;YACL,CAAC,KAAK,CAAC,EAAE;gBACP,GAAG,EAAE,WAAW;aACjB;SACF,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,WAAiB;QACzC,OAAO;YACL,CAAC,KAAK,CAAC,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;CACF,CAAA;AArHY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAqH7B"}