@tc-libs/pagination 0.47.0 → 0.49.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 +2 -2
- package/src/decorators/pagination.decorator.d.ts +1 -0
- package/src/decorators/pagination.decorator.js +5 -0
- package/src/decorators/pagination.decorator.js.map +1 -1
- package/src/pipes/pagination.filter-number.pipe.d.ts +3 -0
- package/src/pipes/pagination.filter-number.pipe.js +77 -0
- package/src/pipes/pagination.filter-number.pipe.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tc-libs/pagination",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.49.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.
|
|
9
|
+
"@tc-libs/helper": "0.49.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":";;
|
|
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,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"}
|