@gustavo-valsechi/node 1.0.32 → 1.0.34
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/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +20 -10
- package/dist/index.mjs +19 -10
- package/dist/src/router/index.js +89 -1
- package/dist/src/router/index.mjs +89 -1
- package/dist/src/schemas/index.d.mts +12 -0
- package/dist/src/schemas/index.d.ts +12 -0
- package/dist/src/schemas/index.js +134 -0
- package/dist/src/schemas/index.mjs +108 -0
- package/dist/src/server/index.js +89 -1
- package/dist/src/server/index.mjs +89 -1
- package/dist/src/tools/index.d.mts +3 -12
- package/dist/src/tools/index.d.ts +3 -12
- package/dist/src/tools/index.js +18 -10
- package/dist/src/tools/index.mjs +18 -10
- package/package.json +6 -1
package/dist/index.d.mts
CHANGED
|
@@ -3,6 +3,8 @@ export { apiRouter, mainRouter } from './src/router/index.mjs';
|
|
|
3
3
|
export { app, serverInit } from './src/server/index.mjs';
|
|
4
4
|
export { OPERATORS, converter, existsOperator, moduler, paginate, refactorWhere, responseWrapper } from './src/tools/index.mjs';
|
|
5
5
|
export { IMiddlewareContract, TenantService } from './src/services/index.mjs';
|
|
6
|
+
export { OptionsSchema } from './src/schemas/index.mjs';
|
|
6
7
|
import 'typeorm';
|
|
7
8
|
import 'fastify';
|
|
8
9
|
import 'http';
|
|
10
|
+
import 'zod';
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export { apiRouter, mainRouter } from './src/router/index.js';
|
|
|
3
3
|
export { app, serverInit } from './src/server/index.js';
|
|
4
4
|
export { OPERATORS, converter, existsOperator, moduler, paginate, refactorWhere, responseWrapper } from './src/tools/index.js';
|
|
5
5
|
export { IMiddlewareContract, TenantService } from './src/services/index.js';
|
|
6
|
+
export { OptionsSchema } from './src/schemas/index.js';
|
|
6
7
|
import 'typeorm';
|
|
7
8
|
import 'fastify';
|
|
8
9
|
import 'http';
|
|
10
|
+
import 'zod';
|
package/dist/index.js
CHANGED
|
@@ -31,6 +31,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
33
|
OPERATORS: () => OPERATORS,
|
|
34
|
+
OptionsSchema: () => OptionsSchema,
|
|
34
35
|
TenantService: () => TenantService,
|
|
35
36
|
apiRouter: () => apiRouter,
|
|
36
37
|
app: () => app,
|
|
@@ -148,6 +149,7 @@ var converter = (operator) => {
|
|
|
148
149
|
return convertion;
|
|
149
150
|
};
|
|
150
151
|
var refactorWhere = (where) => {
|
|
152
|
+
if (!where) return where;
|
|
151
153
|
for (const key in where) {
|
|
152
154
|
let includeOp = existsOperator(where[key]);
|
|
153
155
|
if (includeOp) {
|
|
@@ -180,26 +182,33 @@ var refactorWhere = (where) => {
|
|
|
180
182
|
return where;
|
|
181
183
|
};
|
|
182
184
|
|
|
183
|
-
// src/
|
|
185
|
+
// src/schemas/options.ts
|
|
186
|
+
var import_zod2 = require("zod");
|
|
184
187
|
var import_lodash3 = __toESM(require("lodash"));
|
|
185
188
|
var parse = (json) => {
|
|
186
189
|
if (!json) return;
|
|
187
190
|
if (import_lodash3.default.isString(json)) return JSON.parse(json);
|
|
188
191
|
return json;
|
|
189
192
|
};
|
|
193
|
+
var OptionsSchema = import_zod2.z.object({
|
|
194
|
+
take: import_zod2.z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
195
|
+
page: import_zod2.z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
196
|
+
select: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
197
|
+
relations: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
198
|
+
where: import_zod2.z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
199
|
+
order: import_zod2.z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
// src/tools/paginate.ts
|
|
190
203
|
var paginate = async (repository, options) => {
|
|
191
|
-
|
|
192
|
-
|
|
204
|
+
var _a;
|
|
205
|
+
const params = await OptionsSchema.parseAsync(options);
|
|
193
206
|
const [data, count] = await repository.findAndCount({
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
where,
|
|
197
|
-
order: parse(options.order),
|
|
198
|
-
take: options.limit,
|
|
199
|
-
skip: Number(options.page) * (Number(options.limit) || 0) || 0
|
|
207
|
+
skip: Number(params.page) * (Number(params.take) || 0) || 0,
|
|
208
|
+
...params
|
|
200
209
|
});
|
|
201
210
|
return {
|
|
202
|
-
totalPage: Math.ceil(count / options.
|
|
211
|
+
totalPage: options.take ? Math.ceil(count / options.take) : (_a = options.take) != null ? _a : 1,
|
|
203
212
|
total: count,
|
|
204
213
|
content: data
|
|
205
214
|
};
|
|
@@ -345,6 +354,7 @@ var TenantService = class {
|
|
|
345
354
|
// Annotate the CommonJS export names for ESM import in node:
|
|
346
355
|
0 && (module.exports = {
|
|
347
356
|
OPERATORS,
|
|
357
|
+
OptionsSchema,
|
|
348
358
|
TenantService,
|
|
349
359
|
apiRouter,
|
|
350
360
|
app,
|
package/dist/index.mjs
CHANGED
|
@@ -118,6 +118,7 @@ var converter = (operator) => {
|
|
|
118
118
|
return convertion;
|
|
119
119
|
};
|
|
120
120
|
var refactorWhere = (where) => {
|
|
121
|
+
if (!where) return where;
|
|
121
122
|
for (const key in where) {
|
|
122
123
|
let includeOp = existsOperator(where[key]);
|
|
123
124
|
if (includeOp) {
|
|
@@ -150,26 +151,33 @@ var refactorWhere = (where) => {
|
|
|
150
151
|
return where;
|
|
151
152
|
};
|
|
152
153
|
|
|
153
|
-
// src/
|
|
154
|
+
// src/schemas/options.ts
|
|
155
|
+
import { z } from "zod";
|
|
154
156
|
import _3 from "lodash";
|
|
155
157
|
var parse = (json) => {
|
|
156
158
|
if (!json) return;
|
|
157
159
|
if (_3.isString(json)) return JSON.parse(json);
|
|
158
160
|
return json;
|
|
159
161
|
};
|
|
162
|
+
var OptionsSchema = z.object({
|
|
163
|
+
take: z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
164
|
+
page: z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
165
|
+
select: z.array(z.string()).optional(),
|
|
166
|
+
relations: z.array(z.string()).optional(),
|
|
167
|
+
where: z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
168
|
+
order: z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
// src/tools/paginate.ts
|
|
160
172
|
var paginate = async (repository, options) => {
|
|
161
|
-
|
|
162
|
-
|
|
173
|
+
var _a;
|
|
174
|
+
const params = await OptionsSchema.parseAsync(options);
|
|
163
175
|
const [data, count] = await repository.findAndCount({
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
where,
|
|
167
|
-
order: parse(options.order),
|
|
168
|
-
take: options.limit,
|
|
169
|
-
skip: Number(options.page) * (Number(options.limit) || 0) || 0
|
|
176
|
+
skip: Number(params.page) * (Number(params.take) || 0) || 0,
|
|
177
|
+
...params
|
|
170
178
|
});
|
|
171
179
|
return {
|
|
172
|
-
totalPage: Math.ceil(count / options.
|
|
180
|
+
totalPage: options.take ? Math.ceil(count / options.take) : (_a = options.take) != null ? _a : 1,
|
|
173
181
|
total: count,
|
|
174
182
|
content: data
|
|
175
183
|
};
|
|
@@ -314,6 +322,7 @@ var TenantService = class {
|
|
|
314
322
|
};
|
|
315
323
|
export {
|
|
316
324
|
OPERATORS,
|
|
325
|
+
OptionsSchema,
|
|
317
326
|
TenantService,
|
|
318
327
|
apiRouter,
|
|
319
328
|
app,
|
package/dist/src/router/index.js
CHANGED
|
@@ -60,9 +60,97 @@ var responseWrapper = async (res, promise) => {
|
|
|
60
60
|
// src/tools/operators.ts
|
|
61
61
|
var import_typeorm = require("typeorm");
|
|
62
62
|
var import_lodash2 = __toESM(require("lodash"));
|
|
63
|
+
var OPERATORS = {
|
|
64
|
+
$in: (value) => (0, import_typeorm.In)(value),
|
|
65
|
+
$and: (value) => (0, import_typeorm.And)(value),
|
|
66
|
+
$notIn: (value) => (0, import_typeorm.Not)((0, import_typeorm.In)(value)),
|
|
67
|
+
$like: (value) => (0, import_typeorm.Like)(value),
|
|
68
|
+
$notLike: (value) => (0, import_typeorm.Not)((0, import_typeorm.Like)(value)),
|
|
69
|
+
$gt: (value) => (0, import_typeorm.MoreThan)(value),
|
|
70
|
+
$gte: (value) => (0, import_typeorm.MoreThanOrEqual)(value),
|
|
71
|
+
$lt: (value) => (0, import_typeorm.LessThan)(value),
|
|
72
|
+
$lte: (value) => (0, import_typeorm.LessThanOrEqual)(value),
|
|
73
|
+
$between: ([from, to]) => (0, import_typeorm.Between)(from, to),
|
|
74
|
+
$not: (value) => (0, import_typeorm.Not)(value),
|
|
75
|
+
$ne: (value) => (0, import_typeorm.Not)(value),
|
|
76
|
+
$raw: (value) => (0, import_typeorm.Raw)((alias) => import_lodash2.default.replace(value, "ALIAS", alias))
|
|
77
|
+
};
|
|
78
|
+
var existsOperator = (value) => {
|
|
79
|
+
let includeOp = false;
|
|
80
|
+
for (const op in OPERATORS) {
|
|
81
|
+
if (includeOp) continue;
|
|
82
|
+
includeOp = import_lodash2.default.includes(JSON.stringify(value), op);
|
|
83
|
+
}
|
|
84
|
+
return includeOp;
|
|
85
|
+
};
|
|
86
|
+
var converter = (operator) => {
|
|
87
|
+
operator = import_lodash2.default.isObject(operator) ? operator : JSON.parse(operator || "{}");
|
|
88
|
+
let convertion = operator;
|
|
89
|
+
for (const op in OPERATORS) {
|
|
90
|
+
if (!operator[op] && operator[op] !== 0) continue;
|
|
91
|
+
if (import_lodash2.default.isObject(operator[op]) && import_lodash2.default.isArray(operator[op])) {
|
|
92
|
+
import_lodash2.default.forEach(operator[op], (condition, index) => {
|
|
93
|
+
if (!existsOperator(condition)) return;
|
|
94
|
+
for (const opSecondary in OPERATORS) {
|
|
95
|
+
if (!condition[opSecondary] && condition[opSecondary] !== 0) continue;
|
|
96
|
+
operator[op][index] = OPERATORS[opSecondary](condition[opSecondary]);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
convertion = OPERATORS[op](operator[op]);
|
|
101
|
+
}
|
|
102
|
+
return convertion;
|
|
103
|
+
};
|
|
104
|
+
var refactorWhere = (where) => {
|
|
105
|
+
if (!where) return where;
|
|
106
|
+
for (const key in where) {
|
|
107
|
+
let includeOp = existsOperator(where[key]);
|
|
108
|
+
if (includeOp) {
|
|
109
|
+
where[key] = converter(where[key]);
|
|
110
|
+
if (import_lodash2.default.isObject(where[key]) && !import_lodash2.default.isArray(where[key])) {
|
|
111
|
+
for (const keyObject in where[key]) {
|
|
112
|
+
includeOp = existsOperator(where[key][keyObject]);
|
|
113
|
+
if (!includeOp) continue;
|
|
114
|
+
where[key][keyObject] = converter(where[key][keyObject]);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (import_lodash2.default.isObject(where[key]) && import_lodash2.default.isArray(where[key])) {
|
|
118
|
+
import_lodash2.default.forEach(where[key], (condition, index) => {
|
|
119
|
+
includeOp = existsOperator(condition);
|
|
120
|
+
if (includeOp) {
|
|
121
|
+
condition = converter(condition);
|
|
122
|
+
if (import_lodash2.default.isObject(condition) && !import_lodash2.default.isArray(condition)) {
|
|
123
|
+
for (const keyObject in condition) {
|
|
124
|
+
includeOp = existsOperator(condition[keyObject]);
|
|
125
|
+
if (!includeOp) continue;
|
|
126
|
+
condition[keyObject] = converter(condition[keyObject]);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
where[key][index] = condition;
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return where;
|
|
136
|
+
};
|
|
63
137
|
|
|
64
|
-
// src/
|
|
138
|
+
// src/schemas/options.ts
|
|
139
|
+
var import_zod2 = require("zod");
|
|
65
140
|
var import_lodash3 = __toESM(require("lodash"));
|
|
141
|
+
var parse = (json) => {
|
|
142
|
+
if (!json) return;
|
|
143
|
+
if (import_lodash3.default.isString(json)) return JSON.parse(json);
|
|
144
|
+
return json;
|
|
145
|
+
};
|
|
146
|
+
var OptionsSchema = import_zod2.z.object({
|
|
147
|
+
take: import_zod2.z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
148
|
+
page: import_zod2.z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
149
|
+
select: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
150
|
+
relations: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
151
|
+
where: import_zod2.z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
152
|
+
order: import_zod2.z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
153
|
+
});
|
|
66
154
|
|
|
67
155
|
// src/router/health.ts
|
|
68
156
|
var healthRouter = (router, options, done) => {
|
|
@@ -34,9 +34,97 @@ import {
|
|
|
34
34
|
LessThanOrEqual
|
|
35
35
|
} from "typeorm";
|
|
36
36
|
import _2 from "lodash";
|
|
37
|
+
var OPERATORS = {
|
|
38
|
+
$in: (value) => In(value),
|
|
39
|
+
$and: (value) => And(value),
|
|
40
|
+
$notIn: (value) => Not(In(value)),
|
|
41
|
+
$like: (value) => Like(value),
|
|
42
|
+
$notLike: (value) => Not(Like(value)),
|
|
43
|
+
$gt: (value) => MoreThan(value),
|
|
44
|
+
$gte: (value) => MoreThanOrEqual(value),
|
|
45
|
+
$lt: (value) => LessThan(value),
|
|
46
|
+
$lte: (value) => LessThanOrEqual(value),
|
|
47
|
+
$between: ([from, to]) => Between(from, to),
|
|
48
|
+
$not: (value) => Not(value),
|
|
49
|
+
$ne: (value) => Not(value),
|
|
50
|
+
$raw: (value) => Raw((alias) => _2.replace(value, "ALIAS", alias))
|
|
51
|
+
};
|
|
52
|
+
var existsOperator = (value) => {
|
|
53
|
+
let includeOp = false;
|
|
54
|
+
for (const op in OPERATORS) {
|
|
55
|
+
if (includeOp) continue;
|
|
56
|
+
includeOp = _2.includes(JSON.stringify(value), op);
|
|
57
|
+
}
|
|
58
|
+
return includeOp;
|
|
59
|
+
};
|
|
60
|
+
var converter = (operator) => {
|
|
61
|
+
operator = _2.isObject(operator) ? operator : JSON.parse(operator || "{}");
|
|
62
|
+
let convertion = operator;
|
|
63
|
+
for (const op in OPERATORS) {
|
|
64
|
+
if (!operator[op] && operator[op] !== 0) continue;
|
|
65
|
+
if (_2.isObject(operator[op]) && _2.isArray(operator[op])) {
|
|
66
|
+
_2.forEach(operator[op], (condition, index) => {
|
|
67
|
+
if (!existsOperator(condition)) return;
|
|
68
|
+
for (const opSecondary in OPERATORS) {
|
|
69
|
+
if (!condition[opSecondary] && condition[opSecondary] !== 0) continue;
|
|
70
|
+
operator[op][index] = OPERATORS[opSecondary](condition[opSecondary]);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
convertion = OPERATORS[op](operator[op]);
|
|
75
|
+
}
|
|
76
|
+
return convertion;
|
|
77
|
+
};
|
|
78
|
+
var refactorWhere = (where) => {
|
|
79
|
+
if (!where) return where;
|
|
80
|
+
for (const key in where) {
|
|
81
|
+
let includeOp = existsOperator(where[key]);
|
|
82
|
+
if (includeOp) {
|
|
83
|
+
where[key] = converter(where[key]);
|
|
84
|
+
if (_2.isObject(where[key]) && !_2.isArray(where[key])) {
|
|
85
|
+
for (const keyObject in where[key]) {
|
|
86
|
+
includeOp = existsOperator(where[key][keyObject]);
|
|
87
|
+
if (!includeOp) continue;
|
|
88
|
+
where[key][keyObject] = converter(where[key][keyObject]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (_2.isObject(where[key]) && _2.isArray(where[key])) {
|
|
92
|
+
_2.forEach(where[key], (condition, index) => {
|
|
93
|
+
includeOp = existsOperator(condition);
|
|
94
|
+
if (includeOp) {
|
|
95
|
+
condition = converter(condition);
|
|
96
|
+
if (_2.isObject(condition) && !_2.isArray(condition)) {
|
|
97
|
+
for (const keyObject in condition) {
|
|
98
|
+
includeOp = existsOperator(condition[keyObject]);
|
|
99
|
+
if (!includeOp) continue;
|
|
100
|
+
condition[keyObject] = converter(condition[keyObject]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
where[key][index] = condition;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return where;
|
|
110
|
+
};
|
|
37
111
|
|
|
38
|
-
// src/
|
|
112
|
+
// src/schemas/options.ts
|
|
113
|
+
import { z } from "zod";
|
|
39
114
|
import _3 from "lodash";
|
|
115
|
+
var parse = (json) => {
|
|
116
|
+
if (!json) return;
|
|
117
|
+
if (_3.isString(json)) return JSON.parse(json);
|
|
118
|
+
return json;
|
|
119
|
+
};
|
|
120
|
+
var OptionsSchema = z.object({
|
|
121
|
+
take: z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
122
|
+
page: z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
123
|
+
select: z.array(z.string()).optional(),
|
|
124
|
+
relations: z.array(z.string()).optional(),
|
|
125
|
+
where: z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
126
|
+
order: z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
127
|
+
});
|
|
40
128
|
|
|
41
129
|
// src/router/health.ts
|
|
42
130
|
var healthRouter = (router, options, done) => {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const OptionsSchema: z.ZodObject<{
|
|
4
|
+
take: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<number | undefined, string>>;
|
|
5
|
+
page: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<number, string>>;
|
|
6
|
+
select: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
7
|
+
relations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
8
|
+
where: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<any, any>>>;
|
|
9
|
+
order: z.ZodPipe<z.ZodDefault<z.ZodAny>, z.ZodTransform<any, any>>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
|
|
12
|
+
export { OptionsSchema };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const OptionsSchema: z.ZodObject<{
|
|
4
|
+
take: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<number | undefined, string>>;
|
|
5
|
+
page: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<number, string>>;
|
|
6
|
+
select: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
7
|
+
relations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
8
|
+
where: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<any, any>>>;
|
|
9
|
+
order: z.ZodPipe<z.ZodDefault<z.ZodAny>, z.ZodTransform<any, any>>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
|
|
12
|
+
export { OptionsSchema };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/schemas/index.ts
|
|
31
|
+
var schemas_exports = {};
|
|
32
|
+
__export(schemas_exports, {
|
|
33
|
+
OptionsSchema: () => OptionsSchema
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(schemas_exports);
|
|
36
|
+
|
|
37
|
+
// src/tools/operators.ts
|
|
38
|
+
var import_typeorm = require("typeorm");
|
|
39
|
+
var import_lodash = __toESM(require("lodash"));
|
|
40
|
+
var OPERATORS = {
|
|
41
|
+
$in: (value) => (0, import_typeorm.In)(value),
|
|
42
|
+
$and: (value) => (0, import_typeorm.And)(value),
|
|
43
|
+
$notIn: (value) => (0, import_typeorm.Not)((0, import_typeorm.In)(value)),
|
|
44
|
+
$like: (value) => (0, import_typeorm.Like)(value),
|
|
45
|
+
$notLike: (value) => (0, import_typeorm.Not)((0, import_typeorm.Like)(value)),
|
|
46
|
+
$gt: (value) => (0, import_typeorm.MoreThan)(value),
|
|
47
|
+
$gte: (value) => (0, import_typeorm.MoreThanOrEqual)(value),
|
|
48
|
+
$lt: (value) => (0, import_typeorm.LessThan)(value),
|
|
49
|
+
$lte: (value) => (0, import_typeorm.LessThanOrEqual)(value),
|
|
50
|
+
$between: ([from, to]) => (0, import_typeorm.Between)(from, to),
|
|
51
|
+
$not: (value) => (0, import_typeorm.Not)(value),
|
|
52
|
+
$ne: (value) => (0, import_typeorm.Not)(value),
|
|
53
|
+
$raw: (value) => (0, import_typeorm.Raw)((alias) => import_lodash.default.replace(value, "ALIAS", alias))
|
|
54
|
+
};
|
|
55
|
+
var existsOperator = (value) => {
|
|
56
|
+
let includeOp = false;
|
|
57
|
+
for (const op in OPERATORS) {
|
|
58
|
+
if (includeOp) continue;
|
|
59
|
+
includeOp = import_lodash.default.includes(JSON.stringify(value), op);
|
|
60
|
+
}
|
|
61
|
+
return includeOp;
|
|
62
|
+
};
|
|
63
|
+
var converter = (operator) => {
|
|
64
|
+
operator = import_lodash.default.isObject(operator) ? operator : JSON.parse(operator || "{}");
|
|
65
|
+
let convertion = operator;
|
|
66
|
+
for (const op in OPERATORS) {
|
|
67
|
+
if (!operator[op] && operator[op] !== 0) continue;
|
|
68
|
+
if (import_lodash.default.isObject(operator[op]) && import_lodash.default.isArray(operator[op])) {
|
|
69
|
+
import_lodash.default.forEach(operator[op], (condition, index) => {
|
|
70
|
+
if (!existsOperator(condition)) return;
|
|
71
|
+
for (const opSecondary in OPERATORS) {
|
|
72
|
+
if (!condition[opSecondary] && condition[opSecondary] !== 0) continue;
|
|
73
|
+
operator[op][index] = OPERATORS[opSecondary](condition[opSecondary]);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
convertion = OPERATORS[op](operator[op]);
|
|
78
|
+
}
|
|
79
|
+
return convertion;
|
|
80
|
+
};
|
|
81
|
+
var refactorWhere = (where) => {
|
|
82
|
+
if (!where) return where;
|
|
83
|
+
for (const key in where) {
|
|
84
|
+
let includeOp = existsOperator(where[key]);
|
|
85
|
+
if (includeOp) {
|
|
86
|
+
where[key] = converter(where[key]);
|
|
87
|
+
if (import_lodash.default.isObject(where[key]) && !import_lodash.default.isArray(where[key])) {
|
|
88
|
+
for (const keyObject in where[key]) {
|
|
89
|
+
includeOp = existsOperator(where[key][keyObject]);
|
|
90
|
+
if (!includeOp) continue;
|
|
91
|
+
where[key][keyObject] = converter(where[key][keyObject]);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (import_lodash.default.isObject(where[key]) && import_lodash.default.isArray(where[key])) {
|
|
95
|
+
import_lodash.default.forEach(where[key], (condition, index) => {
|
|
96
|
+
includeOp = existsOperator(condition);
|
|
97
|
+
if (includeOp) {
|
|
98
|
+
condition = converter(condition);
|
|
99
|
+
if (import_lodash.default.isObject(condition) && !import_lodash.default.isArray(condition)) {
|
|
100
|
+
for (const keyObject in condition) {
|
|
101
|
+
includeOp = existsOperator(condition[keyObject]);
|
|
102
|
+
if (!includeOp) continue;
|
|
103
|
+
condition[keyObject] = converter(condition[keyObject]);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
where[key][index] = condition;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return where;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
// src/schemas/options.ts
|
|
116
|
+
var import_zod = require("zod");
|
|
117
|
+
var import_lodash2 = __toESM(require("lodash"));
|
|
118
|
+
var parse = (json) => {
|
|
119
|
+
if (!json) return;
|
|
120
|
+
if (import_lodash2.default.isString(json)) return JSON.parse(json);
|
|
121
|
+
return json;
|
|
122
|
+
};
|
|
123
|
+
var OptionsSchema = import_zod.z.object({
|
|
124
|
+
take: import_zod.z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
125
|
+
page: import_zod.z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
126
|
+
select: import_zod.z.array(import_zod.z.string()).optional(),
|
|
127
|
+
relations: import_zod.z.array(import_zod.z.string()).optional(),
|
|
128
|
+
where: import_zod.z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
129
|
+
order: import_zod.z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
130
|
+
});
|
|
131
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
132
|
+
0 && (module.exports = {
|
|
133
|
+
OptionsSchema
|
|
134
|
+
});
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// src/tools/operators.ts
|
|
2
|
+
import {
|
|
3
|
+
Like,
|
|
4
|
+
MoreThan,
|
|
5
|
+
MoreThanOrEqual,
|
|
6
|
+
In,
|
|
7
|
+
Not,
|
|
8
|
+
LessThan,
|
|
9
|
+
Between,
|
|
10
|
+
Raw,
|
|
11
|
+
And,
|
|
12
|
+
LessThanOrEqual
|
|
13
|
+
} from "typeorm";
|
|
14
|
+
import _ from "lodash";
|
|
15
|
+
var OPERATORS = {
|
|
16
|
+
$in: (value) => In(value),
|
|
17
|
+
$and: (value) => And(value),
|
|
18
|
+
$notIn: (value) => Not(In(value)),
|
|
19
|
+
$like: (value) => Like(value),
|
|
20
|
+
$notLike: (value) => Not(Like(value)),
|
|
21
|
+
$gt: (value) => MoreThan(value),
|
|
22
|
+
$gte: (value) => MoreThanOrEqual(value),
|
|
23
|
+
$lt: (value) => LessThan(value),
|
|
24
|
+
$lte: (value) => LessThanOrEqual(value),
|
|
25
|
+
$between: ([from, to]) => Between(from, to),
|
|
26
|
+
$not: (value) => Not(value),
|
|
27
|
+
$ne: (value) => Not(value),
|
|
28
|
+
$raw: (value) => Raw((alias) => _.replace(value, "ALIAS", alias))
|
|
29
|
+
};
|
|
30
|
+
var existsOperator = (value) => {
|
|
31
|
+
let includeOp = false;
|
|
32
|
+
for (const op in OPERATORS) {
|
|
33
|
+
if (includeOp) continue;
|
|
34
|
+
includeOp = _.includes(JSON.stringify(value), op);
|
|
35
|
+
}
|
|
36
|
+
return includeOp;
|
|
37
|
+
};
|
|
38
|
+
var converter = (operator) => {
|
|
39
|
+
operator = _.isObject(operator) ? operator : JSON.parse(operator || "{}");
|
|
40
|
+
let convertion = operator;
|
|
41
|
+
for (const op in OPERATORS) {
|
|
42
|
+
if (!operator[op] && operator[op] !== 0) continue;
|
|
43
|
+
if (_.isObject(operator[op]) && _.isArray(operator[op])) {
|
|
44
|
+
_.forEach(operator[op], (condition, index) => {
|
|
45
|
+
if (!existsOperator(condition)) return;
|
|
46
|
+
for (const opSecondary in OPERATORS) {
|
|
47
|
+
if (!condition[opSecondary] && condition[opSecondary] !== 0) continue;
|
|
48
|
+
operator[op][index] = OPERATORS[opSecondary](condition[opSecondary]);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
convertion = OPERATORS[op](operator[op]);
|
|
53
|
+
}
|
|
54
|
+
return convertion;
|
|
55
|
+
};
|
|
56
|
+
var refactorWhere = (where) => {
|
|
57
|
+
if (!where) return where;
|
|
58
|
+
for (const key in where) {
|
|
59
|
+
let includeOp = existsOperator(where[key]);
|
|
60
|
+
if (includeOp) {
|
|
61
|
+
where[key] = converter(where[key]);
|
|
62
|
+
if (_.isObject(where[key]) && !_.isArray(where[key])) {
|
|
63
|
+
for (const keyObject in where[key]) {
|
|
64
|
+
includeOp = existsOperator(where[key][keyObject]);
|
|
65
|
+
if (!includeOp) continue;
|
|
66
|
+
where[key][keyObject] = converter(where[key][keyObject]);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (_.isObject(where[key]) && _.isArray(where[key])) {
|
|
70
|
+
_.forEach(where[key], (condition, index) => {
|
|
71
|
+
includeOp = existsOperator(condition);
|
|
72
|
+
if (includeOp) {
|
|
73
|
+
condition = converter(condition);
|
|
74
|
+
if (_.isObject(condition) && !_.isArray(condition)) {
|
|
75
|
+
for (const keyObject in condition) {
|
|
76
|
+
includeOp = existsOperator(condition[keyObject]);
|
|
77
|
+
if (!includeOp) continue;
|
|
78
|
+
condition[keyObject] = converter(condition[keyObject]);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
where[key][index] = condition;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return where;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// src/schemas/options.ts
|
|
91
|
+
import { z } from "zod";
|
|
92
|
+
import _2 from "lodash";
|
|
93
|
+
var parse = (json) => {
|
|
94
|
+
if (!json) return;
|
|
95
|
+
if (_2.isString(json)) return JSON.parse(json);
|
|
96
|
+
return json;
|
|
97
|
+
};
|
|
98
|
+
var OptionsSchema = z.object({
|
|
99
|
+
take: z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
100
|
+
page: z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
101
|
+
select: z.array(z.string()).optional(),
|
|
102
|
+
relations: z.array(z.string()).optional(),
|
|
103
|
+
where: z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
104
|
+
order: z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
105
|
+
});
|
|
106
|
+
export {
|
|
107
|
+
OptionsSchema
|
|
108
|
+
};
|
package/dist/src/server/index.js
CHANGED
|
@@ -61,9 +61,97 @@ var responseWrapper = async (res, promise) => {
|
|
|
61
61
|
// src/tools/operators.ts
|
|
62
62
|
var import_typeorm = require("typeorm");
|
|
63
63
|
var import_lodash2 = __toESM(require("lodash"));
|
|
64
|
+
var OPERATORS = {
|
|
65
|
+
$in: (value) => (0, import_typeorm.In)(value),
|
|
66
|
+
$and: (value) => (0, import_typeorm.And)(value),
|
|
67
|
+
$notIn: (value) => (0, import_typeorm.Not)((0, import_typeorm.In)(value)),
|
|
68
|
+
$like: (value) => (0, import_typeorm.Like)(value),
|
|
69
|
+
$notLike: (value) => (0, import_typeorm.Not)((0, import_typeorm.Like)(value)),
|
|
70
|
+
$gt: (value) => (0, import_typeorm.MoreThan)(value),
|
|
71
|
+
$gte: (value) => (0, import_typeorm.MoreThanOrEqual)(value),
|
|
72
|
+
$lt: (value) => (0, import_typeorm.LessThan)(value),
|
|
73
|
+
$lte: (value) => (0, import_typeorm.LessThanOrEqual)(value),
|
|
74
|
+
$between: ([from, to]) => (0, import_typeorm.Between)(from, to),
|
|
75
|
+
$not: (value) => (0, import_typeorm.Not)(value),
|
|
76
|
+
$ne: (value) => (0, import_typeorm.Not)(value),
|
|
77
|
+
$raw: (value) => (0, import_typeorm.Raw)((alias) => import_lodash2.default.replace(value, "ALIAS", alias))
|
|
78
|
+
};
|
|
79
|
+
var existsOperator = (value) => {
|
|
80
|
+
let includeOp = false;
|
|
81
|
+
for (const op in OPERATORS) {
|
|
82
|
+
if (includeOp) continue;
|
|
83
|
+
includeOp = import_lodash2.default.includes(JSON.stringify(value), op);
|
|
84
|
+
}
|
|
85
|
+
return includeOp;
|
|
86
|
+
};
|
|
87
|
+
var converter = (operator) => {
|
|
88
|
+
operator = import_lodash2.default.isObject(operator) ? operator : JSON.parse(operator || "{}");
|
|
89
|
+
let convertion = operator;
|
|
90
|
+
for (const op in OPERATORS) {
|
|
91
|
+
if (!operator[op] && operator[op] !== 0) continue;
|
|
92
|
+
if (import_lodash2.default.isObject(operator[op]) && import_lodash2.default.isArray(operator[op])) {
|
|
93
|
+
import_lodash2.default.forEach(operator[op], (condition, index) => {
|
|
94
|
+
if (!existsOperator(condition)) return;
|
|
95
|
+
for (const opSecondary in OPERATORS) {
|
|
96
|
+
if (!condition[opSecondary] && condition[opSecondary] !== 0) continue;
|
|
97
|
+
operator[op][index] = OPERATORS[opSecondary](condition[opSecondary]);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
convertion = OPERATORS[op](operator[op]);
|
|
102
|
+
}
|
|
103
|
+
return convertion;
|
|
104
|
+
};
|
|
105
|
+
var refactorWhere = (where) => {
|
|
106
|
+
if (!where) return where;
|
|
107
|
+
for (const key in where) {
|
|
108
|
+
let includeOp = existsOperator(where[key]);
|
|
109
|
+
if (includeOp) {
|
|
110
|
+
where[key] = converter(where[key]);
|
|
111
|
+
if (import_lodash2.default.isObject(where[key]) && !import_lodash2.default.isArray(where[key])) {
|
|
112
|
+
for (const keyObject in where[key]) {
|
|
113
|
+
includeOp = existsOperator(where[key][keyObject]);
|
|
114
|
+
if (!includeOp) continue;
|
|
115
|
+
where[key][keyObject] = converter(where[key][keyObject]);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (import_lodash2.default.isObject(where[key]) && import_lodash2.default.isArray(where[key])) {
|
|
119
|
+
import_lodash2.default.forEach(where[key], (condition, index) => {
|
|
120
|
+
includeOp = existsOperator(condition);
|
|
121
|
+
if (includeOp) {
|
|
122
|
+
condition = converter(condition);
|
|
123
|
+
if (import_lodash2.default.isObject(condition) && !import_lodash2.default.isArray(condition)) {
|
|
124
|
+
for (const keyObject in condition) {
|
|
125
|
+
includeOp = existsOperator(condition[keyObject]);
|
|
126
|
+
if (!includeOp) continue;
|
|
127
|
+
condition[keyObject] = converter(condition[keyObject]);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
where[key][index] = condition;
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return where;
|
|
137
|
+
};
|
|
64
138
|
|
|
65
|
-
// src/
|
|
139
|
+
// src/schemas/options.ts
|
|
140
|
+
var import_zod2 = require("zod");
|
|
66
141
|
var import_lodash3 = __toESM(require("lodash"));
|
|
142
|
+
var parse = (json) => {
|
|
143
|
+
if (!json) return;
|
|
144
|
+
if (import_lodash3.default.isString(json)) return JSON.parse(json);
|
|
145
|
+
return json;
|
|
146
|
+
};
|
|
147
|
+
var OptionsSchema = import_zod2.z.object({
|
|
148
|
+
take: import_zod2.z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
149
|
+
page: import_zod2.z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
150
|
+
select: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
151
|
+
relations: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
152
|
+
where: import_zod2.z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
153
|
+
order: import_zod2.z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
154
|
+
});
|
|
67
155
|
|
|
68
156
|
// src/router/health.ts
|
|
69
157
|
var healthRouter = (router, options, done) => {
|
|
@@ -37,9 +37,97 @@ import {
|
|
|
37
37
|
LessThanOrEqual
|
|
38
38
|
} from "typeorm";
|
|
39
39
|
import _2 from "lodash";
|
|
40
|
+
var OPERATORS = {
|
|
41
|
+
$in: (value) => In(value),
|
|
42
|
+
$and: (value) => And(value),
|
|
43
|
+
$notIn: (value) => Not(In(value)),
|
|
44
|
+
$like: (value) => Like(value),
|
|
45
|
+
$notLike: (value) => Not(Like(value)),
|
|
46
|
+
$gt: (value) => MoreThan(value),
|
|
47
|
+
$gte: (value) => MoreThanOrEqual(value),
|
|
48
|
+
$lt: (value) => LessThan(value),
|
|
49
|
+
$lte: (value) => LessThanOrEqual(value),
|
|
50
|
+
$between: ([from, to]) => Between(from, to),
|
|
51
|
+
$not: (value) => Not(value),
|
|
52
|
+
$ne: (value) => Not(value),
|
|
53
|
+
$raw: (value) => Raw((alias) => _2.replace(value, "ALIAS", alias))
|
|
54
|
+
};
|
|
55
|
+
var existsOperator = (value) => {
|
|
56
|
+
let includeOp = false;
|
|
57
|
+
for (const op in OPERATORS) {
|
|
58
|
+
if (includeOp) continue;
|
|
59
|
+
includeOp = _2.includes(JSON.stringify(value), op);
|
|
60
|
+
}
|
|
61
|
+
return includeOp;
|
|
62
|
+
};
|
|
63
|
+
var converter = (operator) => {
|
|
64
|
+
operator = _2.isObject(operator) ? operator : JSON.parse(operator || "{}");
|
|
65
|
+
let convertion = operator;
|
|
66
|
+
for (const op in OPERATORS) {
|
|
67
|
+
if (!operator[op] && operator[op] !== 0) continue;
|
|
68
|
+
if (_2.isObject(operator[op]) && _2.isArray(operator[op])) {
|
|
69
|
+
_2.forEach(operator[op], (condition, index) => {
|
|
70
|
+
if (!existsOperator(condition)) return;
|
|
71
|
+
for (const opSecondary in OPERATORS) {
|
|
72
|
+
if (!condition[opSecondary] && condition[opSecondary] !== 0) continue;
|
|
73
|
+
operator[op][index] = OPERATORS[opSecondary](condition[opSecondary]);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
convertion = OPERATORS[op](operator[op]);
|
|
78
|
+
}
|
|
79
|
+
return convertion;
|
|
80
|
+
};
|
|
81
|
+
var refactorWhere = (where) => {
|
|
82
|
+
if (!where) return where;
|
|
83
|
+
for (const key in where) {
|
|
84
|
+
let includeOp = existsOperator(where[key]);
|
|
85
|
+
if (includeOp) {
|
|
86
|
+
where[key] = converter(where[key]);
|
|
87
|
+
if (_2.isObject(where[key]) && !_2.isArray(where[key])) {
|
|
88
|
+
for (const keyObject in where[key]) {
|
|
89
|
+
includeOp = existsOperator(where[key][keyObject]);
|
|
90
|
+
if (!includeOp) continue;
|
|
91
|
+
where[key][keyObject] = converter(where[key][keyObject]);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (_2.isObject(where[key]) && _2.isArray(where[key])) {
|
|
95
|
+
_2.forEach(where[key], (condition, index) => {
|
|
96
|
+
includeOp = existsOperator(condition);
|
|
97
|
+
if (includeOp) {
|
|
98
|
+
condition = converter(condition);
|
|
99
|
+
if (_2.isObject(condition) && !_2.isArray(condition)) {
|
|
100
|
+
for (const keyObject in condition) {
|
|
101
|
+
includeOp = existsOperator(condition[keyObject]);
|
|
102
|
+
if (!includeOp) continue;
|
|
103
|
+
condition[keyObject] = converter(condition[keyObject]);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
where[key][index] = condition;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return where;
|
|
113
|
+
};
|
|
40
114
|
|
|
41
|
-
// src/
|
|
115
|
+
// src/schemas/options.ts
|
|
116
|
+
import { z } from "zod";
|
|
42
117
|
import _3 from "lodash";
|
|
118
|
+
var parse = (json) => {
|
|
119
|
+
if (!json) return;
|
|
120
|
+
if (_3.isString(json)) return JSON.parse(json);
|
|
121
|
+
return json;
|
|
122
|
+
};
|
|
123
|
+
var OptionsSchema = z.object({
|
|
124
|
+
take: z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
125
|
+
page: z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
126
|
+
select: z.array(z.string()).optional(),
|
|
127
|
+
relations: z.array(z.string()).optional(),
|
|
128
|
+
where: z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
129
|
+
order: z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
130
|
+
});
|
|
43
131
|
|
|
44
132
|
// src/router/health.ts
|
|
45
133
|
var healthRouter = (router, options, done) => {
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { FastifyReply } from 'fastify';
|
|
2
|
+
import { OptionsSchema } from '../schemas/index.mjs';
|
|
3
|
+
import { z } from 'zod';
|
|
2
4
|
|
|
3
5
|
declare const responseWrapper: (res: FastifyReply, promise: Promise<any>) => Promise<void>;
|
|
4
6
|
|
|
@@ -7,18 +9,7 @@ declare const existsOperator: (value: any) => boolean;
|
|
|
7
9
|
declare const converter: (operator: any) => any;
|
|
8
10
|
declare const refactorWhere: (where: any) => any;
|
|
9
11
|
|
|
10
|
-
declare const paginate: (repository: any, options: {
|
|
11
|
-
fields: Array<string>;
|
|
12
|
-
relations: Array<string>;
|
|
13
|
-
filters: string | {
|
|
14
|
-
[field: string]: any;
|
|
15
|
-
};
|
|
16
|
-
order: string | {
|
|
17
|
-
[field: string]: "asc" | "desc";
|
|
18
|
-
};
|
|
19
|
-
limit: number;
|
|
20
|
-
page: number;
|
|
21
|
-
}) => Promise<{
|
|
12
|
+
declare const paginate: (repository: any, options: z.infer<typeof OptionsSchema>) => Promise<{
|
|
22
13
|
totalPage: number;
|
|
23
14
|
total: any;
|
|
24
15
|
content: any;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { FastifyReply } from 'fastify';
|
|
2
|
+
import { OptionsSchema } from '../schemas/index.js';
|
|
3
|
+
import { z } from 'zod';
|
|
2
4
|
|
|
3
5
|
declare const responseWrapper: (res: FastifyReply, promise: Promise<any>) => Promise<void>;
|
|
4
6
|
|
|
@@ -7,18 +9,7 @@ declare const existsOperator: (value: any) => boolean;
|
|
|
7
9
|
declare const converter: (operator: any) => any;
|
|
8
10
|
declare const refactorWhere: (where: any) => any;
|
|
9
11
|
|
|
10
|
-
declare const paginate: (repository: any, options: {
|
|
11
|
-
fields: Array<string>;
|
|
12
|
-
relations: Array<string>;
|
|
13
|
-
filters: string | {
|
|
14
|
-
[field: string]: any;
|
|
15
|
-
};
|
|
16
|
-
order: string | {
|
|
17
|
-
[field: string]: "asc" | "desc";
|
|
18
|
-
};
|
|
19
|
-
limit: number;
|
|
20
|
-
page: number;
|
|
21
|
-
}) => Promise<{
|
|
12
|
+
declare const paginate: (repository: any, options: z.infer<typeof OptionsSchema>) => Promise<{
|
|
22
13
|
totalPage: number;
|
|
23
14
|
total: any;
|
|
24
15
|
content: any;
|
package/dist/src/tools/index.js
CHANGED
|
@@ -107,6 +107,7 @@ var converter = (operator) => {
|
|
|
107
107
|
return convertion;
|
|
108
108
|
};
|
|
109
109
|
var refactorWhere = (where) => {
|
|
110
|
+
if (!where) return where;
|
|
110
111
|
for (const key in where) {
|
|
111
112
|
let includeOp = existsOperator(where[key]);
|
|
112
113
|
if (includeOp) {
|
|
@@ -139,26 +140,33 @@ var refactorWhere = (where) => {
|
|
|
139
140
|
return where;
|
|
140
141
|
};
|
|
141
142
|
|
|
142
|
-
// src/
|
|
143
|
+
// src/schemas/options.ts
|
|
144
|
+
var import_zod2 = require("zod");
|
|
143
145
|
var import_lodash3 = __toESM(require("lodash"));
|
|
144
146
|
var parse = (json) => {
|
|
145
147
|
if (!json) return;
|
|
146
148
|
if (import_lodash3.default.isString(json)) return JSON.parse(json);
|
|
147
149
|
return json;
|
|
148
150
|
};
|
|
151
|
+
var OptionsSchema = import_zod2.z.object({
|
|
152
|
+
take: import_zod2.z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
153
|
+
page: import_zod2.z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
154
|
+
select: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
155
|
+
relations: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
156
|
+
where: import_zod2.z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
157
|
+
order: import_zod2.z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
// src/tools/paginate.ts
|
|
149
161
|
var paginate = async (repository, options) => {
|
|
150
|
-
|
|
151
|
-
|
|
162
|
+
var _a;
|
|
163
|
+
const params = await OptionsSchema.parseAsync(options);
|
|
152
164
|
const [data, count] = await repository.findAndCount({
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
where,
|
|
156
|
-
order: parse(options.order),
|
|
157
|
-
take: options.limit,
|
|
158
|
-
skip: Number(options.page) * (Number(options.limit) || 0) || 0
|
|
165
|
+
skip: Number(params.page) * (Number(params.take) || 0) || 0,
|
|
166
|
+
...params
|
|
159
167
|
});
|
|
160
168
|
return {
|
|
161
|
-
totalPage: Math.ceil(count / options.
|
|
169
|
+
totalPage: options.take ? Math.ceil(count / options.take) : (_a = options.take) != null ? _a : 1,
|
|
162
170
|
total: count,
|
|
163
171
|
content: data
|
|
164
172
|
};
|
package/dist/src/tools/index.mjs
CHANGED
|
@@ -83,6 +83,7 @@ var converter = (operator) => {
|
|
|
83
83
|
return convertion;
|
|
84
84
|
};
|
|
85
85
|
var refactorWhere = (where) => {
|
|
86
|
+
if (!where) return where;
|
|
86
87
|
for (const key in where) {
|
|
87
88
|
let includeOp = existsOperator(where[key]);
|
|
88
89
|
if (includeOp) {
|
|
@@ -115,26 +116,33 @@ var refactorWhere = (where) => {
|
|
|
115
116
|
return where;
|
|
116
117
|
};
|
|
117
118
|
|
|
118
|
-
// src/
|
|
119
|
+
// src/schemas/options.ts
|
|
120
|
+
import { z } from "zod";
|
|
119
121
|
import _3 from "lodash";
|
|
120
122
|
var parse = (json) => {
|
|
121
123
|
if (!json) return;
|
|
122
124
|
if (_3.isString(json)) return JSON.parse(json);
|
|
123
125
|
return json;
|
|
124
126
|
};
|
|
127
|
+
var OptionsSchema = z.object({
|
|
128
|
+
take: z.string().default("20").transform((value) => Number(value) ? Number(value) : value === "infinity" ? void 0 : 20),
|
|
129
|
+
page: z.string().default("0").transform((value) => Number(value) ? Number(value) : 0),
|
|
130
|
+
select: z.array(z.string()).optional(),
|
|
131
|
+
relations: z.array(z.string()).optional(),
|
|
132
|
+
where: z.any().transform((value) => refactorWhere(parse(value))).optional(),
|
|
133
|
+
order: z.any().default({ createdAt: "desc" }).transform((value) => parse(value))
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
// src/tools/paginate.ts
|
|
125
137
|
var paginate = async (repository, options) => {
|
|
126
|
-
|
|
127
|
-
|
|
138
|
+
var _a;
|
|
139
|
+
const params = await OptionsSchema.parseAsync(options);
|
|
128
140
|
const [data, count] = await repository.findAndCount({
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
where,
|
|
132
|
-
order: parse(options.order),
|
|
133
|
-
take: options.limit,
|
|
134
|
-
skip: Number(options.page) * (Number(options.limit) || 0) || 0
|
|
141
|
+
skip: Number(params.page) * (Number(params.take) || 0) || 0,
|
|
142
|
+
...params
|
|
135
143
|
});
|
|
136
144
|
return {
|
|
137
|
-
totalPage: Math.ceil(count / options.
|
|
145
|
+
totalPage: options.take ? Math.ceil(count / options.take) : (_a = options.take) != null ? _a : 1,
|
|
138
146
|
total: count,
|
|
139
147
|
content: data
|
|
140
148
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gustavo-valsechi/node",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.34",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -67,6 +67,11 @@
|
|
|
67
67
|
"require": "./dist/src/router/index.js",
|
|
68
68
|
"import": "./dist/src/router/index.js"
|
|
69
69
|
},
|
|
70
|
+
"./schemas": {
|
|
71
|
+
"types": "./dist/src/schemas/index.d.ts",
|
|
72
|
+
"require": "./dist/src/schemas/index.js",
|
|
73
|
+
"import": "./dist/src/schemas/index.js"
|
|
74
|
+
},
|
|
70
75
|
"./server": {
|
|
71
76
|
"types": "./dist/src/server/index.d.ts",
|
|
72
77
|
"require": "./dist/src/server/index.js",
|