@tc-libs/pagination 0.47.0 → 0.48.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/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@tc-libs/pagination",
3
- "version": "0.47.0",
3
+ "version": "0.48.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0",
6
6
  "@nestjs/common": "^10.0.2",
7
7
  "@nestjs/swagger": "^7.1.10",
8
8
  "@nestjs/core": "^10.0.2",
9
- "@tc-libs/helper": "0.47.0",
9
+ "@tc-libs/helper": "0.48.0",
10
10
  "mongoose": "^7.5.0",
11
11
  "lodash": "^4.17.21",
12
12
  "express": "4.21.0"
@@ -8,3 +8,4 @@ export declare function PaginationQueryFilterEqual(field: string, options?: IPag
8
8
  export declare function PaginationQueryFilterContain(field: string, options?: IPaginationFilterStringContainOptions): ParameterDecorator;
9
9
  export declare function PaginationQueryFilterDate(field: string, options?: IPaginationFilterDateOptions): ParameterDecorator;
10
10
  export declare function PaginationQueryFilterEqualObjectId(field: string): ParameterDecorator;
11
+ export declare function PaginationQueryFilterNumberPipe(field: string): ParameterDecorator;
@@ -8,6 +8,7 @@ exports.PaginationQueryFilterEqual = PaginationQueryFilterEqual;
8
8
  exports.PaginationQueryFilterContain = PaginationQueryFilterContain;
9
9
  exports.PaginationQueryFilterDate = PaginationQueryFilterDate;
10
10
  exports.PaginationQueryFilterEqualObjectId = PaginationQueryFilterEqualObjectId;
11
+ exports.PaginationQueryFilterNumberPipe = PaginationQueryFilterNumberPipe;
11
12
  const common_1 = require("@nestjs/common");
12
13
  const pagination_filter_contain_pipe_1 = require("../pipes/pagination.filter-contain.pipe");
13
14
  const pagination_filter_date_pipe_1 = require("../pipes/pagination.filter-date.pipe");
@@ -19,6 +20,7 @@ const pagination_order_pipe_1 = require("../pipes/pagination.order.pipe");
19
20
  const pagination_paging_pipe_1 = require("../pipes/pagination.paging.pipe");
20
21
  const pagination_search_pipe_1 = require("../pipes/pagination.search.pipe");
21
22
  const pagination_select_pipe_1 = require("../pipes/pagination.select.pipe");
23
+ const pagination_filter_number_pipe_1 = require("../pipes/pagination.filter-number.pipe");
22
24
  function PaginationQuery(defaultPerPage, defaultOrderBy, defaultOrderDirection, availableSearch, availableOrderBy, isAdmin = false, availableSelects) {
23
25
  return (0, common_1.Query)((0, pagination_search_pipe_1.PaginationSearchPipe)(availableSearch), (0, pagination_paging_pipe_1.PaginationPagingPipe)(defaultPerPage, isAdmin), (0, pagination_order_pipe_1.PaginationOrderPipe)(defaultOrderBy, defaultOrderDirection, availableOrderBy), (0, pagination_select_pipe_1.PaginationSelectPipe)(availableSelects));
24
26
  }
@@ -43,4 +45,7 @@ function PaginationQueryFilterDate(field, options) {
43
45
  function PaginationQueryFilterEqualObjectId(field) {
44
46
  return (0, common_1.Query)(field, pagination_filter_equal_object_id_pipe_1.PaginationFilterEqualObjectIdPipe);
45
47
  }
48
+ function PaginationQueryFilterNumberPipe(field) {
49
+ return (0, common_1.Query)(field, (0, pagination_filter_number_pipe_1.PaginationFilterNumberPipe)());
50
+ }
46
51
  //# sourceMappingURL=pagination.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.decorator.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/decorators/pagination.decorator.ts"],"names":[],"mappings":";;AAoBA,0CAmBC;AAED,sDAIC;AAED,wEAKC;AAED,kEAMC;AAED,gEAKC;AAED,oEAKC;AAED,8DAKC;AAED,gFAIC;AAvFD,2CAAuC;AASvC,4FAAsF;AACtF,sFAAgF;AAChF,4GAAoG;AACpG,wFAAkF;AAClF,kGAA2F;AAC3F,4FAAqF;AACrF,0EAAqE;AACrE,4EAAuE;AACvE,4EAAuE;AACvE,4EAAuE;AAEvE,SAAgB,eAAe,CAC7B,cAAsB,EACtB,cAAsB,EACtB,qBAA2D,EAC3D,eAAyB,EACzB,gBAA0B,EAC1B,OAAO,GAAG,KAAK,EACf,gBAAsC;IAEtC,OAAO,IAAA,cAAK,EACV,IAAA,6CAAoB,EAAC,eAAe,CAAC,EACrC,IAAA,6CAAoB,EAAC,cAAc,EAAE,OAAO,CAAC,EAC7C,IAAA,2CAAmB,EACjB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,CACjB,EACD,IAAA,6CAAoB,EAAC,gBAAgB,CAAC,CACvC,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,YAAsC;IAEtC,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"}
1
+ {"version":3,"file":"pagination.decorator.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/decorators/pagination.decorator.ts"],"names":[],"mappings":";;AAqBA,0CAmBC;AAED,sDAIC;AAED,wEAKC;AAED,kEAMC;AAED,gEAKC;AAED,oEAKC;AAED,8DAKC;AAED,gFAIC;AAED,0EAIC;AA9FD,2CAAuC;AASvC,4FAAsF;AACtF,sFAAgF;AAChF,4GAAoG;AACpG,wFAAkF;AAClF,kGAA2F;AAC3F,4FAAqF;AACrF,0EAAqE;AACrE,4EAAuE;AACvE,4EAAuE;AACvE,4EAAuE;AACvE,0FAAoF;AAEpF,SAAgB,eAAe,CAC7B,cAAsB,EACtB,cAAsB,EACtB,qBAA2D,EAC3D,eAAyB,EACzB,gBAA0B,EAC1B,OAAO,GAAG,KAAK,EACf,gBAAsC;IAEtC,OAAO,IAAA,cAAK,EACV,IAAA,6CAAoB,EAAC,eAAe,CAAC,EACrC,IAAA,6CAAoB,EAAC,cAAc,EAAE,OAAO,CAAC,EAC7C,IAAA,2CAAmB,EACjB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,CACjB,EACD,IAAA,6CAAoB,EAAC,gBAAgB,CAAC,CACvC,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,YAAsC;IAEtC,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;AAED,SAAgB,+BAA+B,CAC7C,KAAa;IAEb,OAAO,IAAA,cAAK,EAAC,KAAK,EAAE,IAAA,0DAA0B,GAAE,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { PipeTransform } from '@nestjs/common/interfaces';
3
+ export declare function PaginationFilterNumberPipe(): Type<PipeTransform>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationFilterNumberPipe = PaginationFilterNumberPipe;
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 errors_1 = require("@tc-libs/errors");
9
+ // List of available operators for filtering
10
+ const availableOperators = ['lt', 'lte', 'gt', 'gte', 'eq', 'ne'];
11
+ // Function to create a PaginationFilterNumberPipe
12
+ function PaginationFilterNumberPipe() {
13
+ // Injectable class definition with request scope
14
+ let MixinPaginationFilterNumberPipe = class MixinPaginationFilterNumberPipe {
15
+ // Constructor to inject the request object
16
+ constructor(request) {
17
+ this.request = request;
18
+ }
19
+ // Transform method to process the query and field metadata
20
+ async transform(query, { data: field }) {
21
+ // Return undefined if query or field is not provided
22
+ if (!query || !field) {
23
+ return undefined;
24
+ }
25
+ // Initialize the database query object
26
+ const dbQuery = {
27
+ [field]: {},
28
+ };
29
+ // Throw error if query is an array
30
+ if (Array.isArray(query))
31
+ throw new errors_1.Api400PagiantionFilterNumberMalformedError({ field });
32
+ // Process the query if it is an object
33
+ if (typeof query === 'object')
34
+ Object.keys(query).forEach((key) => {
35
+ const value = query[key];
36
+ // Throw error if value is an array
37
+ if (Array.isArray(value))
38
+ throw new errors_1.Api400PagiantionFilterNumberMalformedError({ field });
39
+ // Convert boolean value to number and set equality operator
40
+ if (typeof value === 'boolean')
41
+ dbQuery[field][`$eq`] = Number(key);
42
+ // Set the appropriate operator if it is available
43
+ else if (availableOperators.includes(key)) {
44
+ dbQuery[field][`$${key}`] = Number(value);
45
+ }
46
+ else if (!availableOperators.includes(key)) {
47
+ // Throw error if operator is not available
48
+ throw new errors_1.Api400PagiantionFilterNumberIllegalOperatorError({
49
+ field,
50
+ availableOperators,
51
+ });
52
+ }
53
+ });
54
+ // Process the query if it is a string
55
+ else if (typeof query === 'string')
56
+ dbQuery[field][`$eq`] = Number(query);
57
+ // Throw error if query is malformed
58
+ else
59
+ throw new errors_1.Api400PagiantionFilterNumberMalformedError({ field });
60
+ // Merge the current filters with the new filter
61
+ this.request.__filters = {
62
+ ...this.request.__filters,
63
+ [field]: dbQuery,
64
+ };
65
+ // Return the database query object
66
+ return dbQuery;
67
+ }
68
+ };
69
+ MixinPaginationFilterNumberPipe = tslib_1.__decorate([
70
+ (0, common_1.Injectable)({ scope: interfaces_1.Scope.REQUEST }),
71
+ tslib_1.__param(0, (0, common_1.Inject)(core_1.REQUEST)),
72
+ tslib_1.__metadata("design:paramtypes", [Object])
73
+ ], MixinPaginationFilterNumberPipe);
74
+ // Return the mixin class
75
+ return (0, common_1.mixin)(MixinPaginationFilterNumberPipe);
76
+ }
77
+ //# sourceMappingURL=pagination.filter-number.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.filter-number.pipe.js","sourceRoot":"","sources":["../../../../../packages/pagination/src/pipes/pagination.filter-number.pipe.ts"],"names":[],"mappings":";;AAiBA,gEAmEC;;AApFD,2CAAiE;AACjE,0DAImC;AACnC,uCAAuC;AACvC,4CAGyB;AAGzB,4CAA4C;AAC5C,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAElE,kDAAkD;AAClD,SAAgB,0BAA0B;IACxC,iDAAiD;IACjD,IACM,+BAA+B,GADrC,MACM,+BAA+B;QACnC,2CAA2C;QAC3C,YAEqB,OAAqC;YAArC,YAAO,GAAP,OAAO,CAA8B;QACvD,CAAC;QAEJ,2DAA2D;QAC3D,KAAK,CAAC,SAAS,CACb,KAAU,EACV,EAAE,IAAI,EAAE,KAAK,EAAoB;YAEjC,qDAAqD;YACrD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,uCAAuC;YACvC,MAAM,OAAO,GAAwB;gBACnC,CAAC,KAAK,CAAC,EAAE,EAAE;aACZ,CAAC;YAEF,mCAAmC;YACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACtB,MAAM,IAAI,mDAA0C,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAElE,uCAAuC;YACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACjC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzB,mCAAmC;oBACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;wBACtB,MAAM,IAAI,mDAA0C,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;oBAClE,4DAA4D;oBAC5D,IAAI,OAAO,KAAK,KAAK,SAAS;wBAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpE,kDAAkD;yBAC7C,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5C,CAAC;yBAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7C,2CAA2C;wBAC3C,MAAM,IAAI,yDAAgD,CAAC;4BACzD,KAAK;4BACL,kBAAkB;yBACnB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,sCAAsC;iBACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1E,oCAAoC;;gBAC/B,MAAM,IAAI,mDAA0C,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAErE,gDAAgD;YAChD,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBACvB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzB,CAAC,KAAK,CAAC,EAAE,OAAO;aACjB,CAAC;YAEF,mCAAmC;YACnC,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAA;IA5DK,+BAA+B;QADpC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,kBAAK,CAAC,OAAO,EAAE,CAAC;QAIhC,mBAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;;OAHd,+BAA+B,CA4DpC;IAED,yBAAyB;IACzB,OAAO,IAAA,cAAK,EAAC,+BAA+B,CAAC,CAAC;AAChD,CAAC"}