@hedhog/pagination 0.0.8 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pagination.service.d.ts","sourceRoot":"","sources":["../src/pagination.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAEvD,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,EACnC,KAAK,EAAE,CAAC,EACR,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"pagination.service.d.ts","sourceRoot":"","sources":["../src/pagination.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAEvD,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,EACnC,KAAK,EAAE,CAAC,EACR,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAuH9B,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE;IAgBvD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAI5D,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;CAK7D"}
|
@@ -17,6 +17,9 @@ let PaginationService = PaginationService_1 = class PaginationService {
|
|
17
17
|
}
|
18
18
|
async paginate(model, paginationParams, customQuery) {
|
19
19
|
try {
|
20
|
+
if (!model) {
|
21
|
+
throw new common_1.BadRequestException('Model is required');
|
22
|
+
}
|
20
23
|
const page = Number(paginationParams.page || pagination_constants_1.DEFAULT_PAGE);
|
21
24
|
const pageSize = Number(paginationParams.pageSize || pagination_constants_1.DEFAULT_PAGE_SIZE);
|
22
25
|
const search = paginationParams.search || null;
|
@@ -32,6 +35,7 @@ let PaginationService = PaginationService_1 = class PaginationService {
|
|
32
35
|
let sortOrderCondition = {
|
33
36
|
id: paginationParams.sortOrder || patination_enums_1.PageOrderDirection.Asc,
|
34
37
|
};
|
38
|
+
console.log('sortField:', sortField);
|
35
39
|
if (sortField) {
|
36
40
|
const invalid = this.isInvalidField(sortField, model);
|
37
41
|
if (invalid) {
|
@@ -46,6 +50,7 @@ let PaginationService = PaginationService_1 = class PaginationService {
|
|
46
50
|
throw new common_1.BadRequestException('Search must be a string');
|
47
51
|
}
|
48
52
|
}
|
53
|
+
console.log('fields:', fields);
|
49
54
|
if (fields) {
|
50
55
|
const invalidFields = this.isInvalidFields(fields, model);
|
51
56
|
if (invalidFields) {
|
@@ -61,11 +66,16 @@ let PaginationService = PaginationService_1 = class PaginationService {
|
|
61
66
|
const query = {
|
62
67
|
select: selectCondition,
|
63
68
|
where: (customQuery === null || customQuery === void 0 ? void 0 : customQuery.where) || {},
|
64
|
-
include: (customQuery === null || customQuery === void 0 ? void 0 : customQuery.include) || {},
|
65
69
|
orderBy: sortOrderCondition,
|
66
70
|
take: pageSize,
|
67
71
|
skip,
|
68
72
|
};
|
73
|
+
if (customQuery === null || customQuery === void 0 ? void 0 : customQuery.include) {
|
74
|
+
query.include = customQuery === null || customQuery === void 0 ? void 0 : customQuery.include;
|
75
|
+
delete query.select;
|
76
|
+
}
|
77
|
+
console.log('Query:', query);
|
78
|
+
console.log('model:', model);
|
69
79
|
const [total, data] = await Promise.all([
|
70
80
|
model.count({ where: (customQuery === null || customQuery === void 0 ? void 0 : customQuery.where) || {} }),
|
71
81
|
model.findMany(query),
|
@@ -91,6 +101,7 @@ let PaginationService = PaginationService_1 = class PaginationService {
|
|
91
101
|
}
|
92
102
|
extractFieldNames(model) {
|
93
103
|
const fieldNames = [];
|
104
|
+
console.log('extractFieldNames', { model });
|
94
105
|
const fields = model.fields;
|
95
106
|
for (const key in fields) {
|
96
107
|
if (fields && fields.hasOwnProperty(key)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pagination.service.js","sourceRoot":"","sources":["../src/pagination.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AACzE,2EAG0C;AAC1C,+DAA8D;AASvD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAAvB;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"pagination.service.js","sourceRoot":"","sources":["../src/pagination.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -21,6 +21,10 @@ export class PaginationService {
|
|
21
21
|
customQuery?: FindManyArgs<M>,
|
22
22
|
): Promise<PaginatedResult<T>> {
|
23
23
|
try {
|
24
|
+
if (!model) {
|
25
|
+
throw new BadRequestException('Model is required');
|
26
|
+
}
|
27
|
+
|
24
28
|
const page = Number(paginationParams.page || DEFAULT_PAGE);
|
25
29
|
const pageSize = Number(paginationParams.pageSize || DEFAULT_PAGE_SIZE);
|
26
30
|
const search = paginationParams.search || null;
|
@@ -41,6 +45,8 @@ export class PaginationService {
|
|
41
45
|
id: paginationParams.sortOrder || PageOrderDirection.Asc,
|
42
46
|
};
|
43
47
|
|
48
|
+
console.log('sortField:', sortField);
|
49
|
+
|
44
50
|
if (sortField) {
|
45
51
|
const invalid = this.isInvalidField(sortField, model);
|
46
52
|
if (invalid) {
|
@@ -62,6 +68,8 @@ export class PaginationService {
|
|
62
68
|
}
|
63
69
|
}
|
64
70
|
|
71
|
+
console.log('fields:', fields);
|
72
|
+
|
65
73
|
if (fields) {
|
66
74
|
const invalidFields = this.isInvalidFields(fields, model);
|
67
75
|
|
@@ -87,15 +95,22 @@ export class PaginationService {
|
|
87
95
|
|
88
96
|
const skip = page > 0 ? pageSize * (page - 1) : 0;
|
89
97
|
|
90
|
-
const query = {
|
98
|
+
const query: any = {
|
91
99
|
select: selectCondition,
|
92
100
|
where: customQuery?.where || {},
|
93
|
-
include: customQuery?.include || {},
|
94
101
|
orderBy: sortOrderCondition,
|
95
102
|
take: pageSize,
|
96
103
|
skip,
|
97
104
|
};
|
98
105
|
|
106
|
+
if (customQuery?.include) {
|
107
|
+
query.include = customQuery?.include;
|
108
|
+
delete query.select;
|
109
|
+
}
|
110
|
+
|
111
|
+
console.log('Query:', query);
|
112
|
+
console.log('model:', model);
|
113
|
+
|
99
114
|
const [total, data] = await Promise.all([
|
100
115
|
model.count({ where: customQuery?.where || {} }),
|
101
116
|
model.findMany(query),
|
@@ -125,6 +140,9 @@ export class PaginationService {
|
|
125
140
|
|
126
141
|
extractFieldNames(model: Record<string, any>): string[] {
|
127
142
|
const fieldNames: string[] = [];
|
143
|
+
|
144
|
+
console.log('extractFieldNames', { model });
|
145
|
+
|
128
146
|
const fields = model.fields;
|
129
147
|
|
130
148
|
for (const key in fields) {
|