@bool-ts/core 1.5.4 → 1.5.6
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/__test/controller.ts +4 -2
- package/__test/module.ts +0 -3
- package/dist/decorators/arguments.js +1 -1
- package/dist/hooks/factory.js +11 -1
- package/dist/interfaces/controller.d.ts +2 -0
- package/dist/interfaces/controller.js +1 -0
- package/dist/interfaces/dispatcher.js +1 -0
- package/dist/interfaces/guard.js +1 -0
- package/dist/interfaces/middleware.js +1 -0
- package/dist/interfaces/module.d.ts +2 -0
- package/dist/interfaces/module.js +1 -0
- package/package.json +1 -1
- package/src/decorators/arguments.ts +2 -2
- package/src/hooks/factory.ts +21 -1
- package/src/interfaces/dispatcher.ts +3 -0
- package/src/interfaces/guard.ts +3 -0
- package/src/interfaces/middleware.ts +3 -0
- package/test.http +1 -1
- /package/{src → dist}/interfaces/dispatcher.d.ts +0 -0
- /package/{src → dist}/interfaces/guard.d.ts +0 -0
- /package/{src → dist}/interfaces/middleware.d.ts +0 -0
- /package/src/interfaces/{controller.d.ts → controller.ts} +0 -0
- /package/src/interfaces/{module.d.ts → module.ts} +0 -0
package/__test/controller.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { IService } from "./interfaces";
|
|
|
2
2
|
|
|
3
3
|
import * as Zod from "zod";
|
|
4
4
|
|
|
5
|
-
import { Body, Controller, Delete, Get, Inject, Options, Params, Patch, Post, Put, Param } from "../src";
|
|
5
|
+
import { Body, Controller, Delete, Get, Inject, Options, Params, Patch, Post, Put, Param, Query } from "../src";
|
|
6
6
|
import { TestService } from "./service";
|
|
7
7
|
|
|
8
8
|
const postParamsSchema = Zod.object({
|
|
@@ -45,10 +45,12 @@ export class TestController {
|
|
|
45
45
|
public async post(
|
|
46
46
|
@Params()
|
|
47
47
|
params: any,
|
|
48
|
+
@Query()
|
|
49
|
+
query: any,
|
|
48
50
|
@Body(bodySchema)
|
|
49
51
|
body: Zod.infer<typeof bodySchema>
|
|
50
52
|
) {
|
|
51
|
-
console.log("req.headers",
|
|
53
|
+
console.log("req.headers", query);
|
|
52
54
|
console.log("===========================");
|
|
53
55
|
}
|
|
54
56
|
|
package/__test/module.ts
CHANGED
|
@@ -10,9 +10,6 @@ import { TestService } from "./service";
|
|
|
10
10
|
import { SecondGuard } from "./secondGuard";
|
|
11
11
|
|
|
12
12
|
@Module({
|
|
13
|
-
options: {
|
|
14
|
-
allowOrigins: ["*"]
|
|
15
|
-
},
|
|
16
13
|
middlewares: [FirstMiddleware, SecondMiddleware],
|
|
17
14
|
guards: [FirstGuard, SecondGuard],
|
|
18
15
|
beforeDispatchers: [BeforeDispatcher],
|
|
@@ -74,7 +74,7 @@ export const Query = (zodSchema) => {
|
|
|
74
74
|
const queryMetadata = Reflect.getOwnMetadata(argumentsKey, target.constructor, methodName) || {};
|
|
75
75
|
queryMetadata[`argumentIndexes.${parameterIndex}`] = {
|
|
76
76
|
index: parameterIndex,
|
|
77
|
-
type: EArgumentTypes.
|
|
77
|
+
type: EArgumentTypes.query,
|
|
78
78
|
zodSchema: zodSchema
|
|
79
79
|
};
|
|
80
80
|
Reflect.defineMetadata(argumentsKey, queryMetadata, target.constructor, methodName);
|
package/dist/hooks/factory.js
CHANGED
|
@@ -149,6 +149,7 @@ export const BoolFactory = (target, options) => {
|
|
|
149
149
|
const url = new URL(request.url);
|
|
150
150
|
const reqHeaders = request.headers;
|
|
151
151
|
const resHeaders = new Headers();
|
|
152
|
+
const query = Qs.parse(url.searchParams.toString(), options.queryParser);
|
|
152
153
|
try {
|
|
153
154
|
// Execute middleware(s)
|
|
154
155
|
for (let i = 0; i < middlewareGroup.length; i++) {
|
|
@@ -168,6 +169,11 @@ export const BoolFactory = (target, options) => {
|
|
|
168
169
|
? await request[argsMetadata.parser || "json"]()
|
|
169
170
|
: await argumentsResolution(await request[argsMetadata.parser || "json"](), argsMetadata.zodSchema, argsMetadata.index, middlewareCollection.funcName);
|
|
170
171
|
break;
|
|
172
|
+
case EArgumentTypes.query:
|
|
173
|
+
middlewareArguments[argsMetadata.index] = !argsMetadata.zodSchema
|
|
174
|
+
? query
|
|
175
|
+
: await argumentsResolution(query, argsMetadata.zodSchema, argsMetadata.index, middlewareCollection.funcName);
|
|
176
|
+
break;
|
|
171
177
|
case EArgumentTypes.request:
|
|
172
178
|
middlewareArguments[argsMetadata.index] = request;
|
|
173
179
|
break;
|
|
@@ -201,6 +207,11 @@ export const BoolFactory = (target, options) => {
|
|
|
201
207
|
? await request[argsMetadata.parser || "json"]()
|
|
202
208
|
: await argumentsResolution(await request[argsMetadata.parser || "json"](), argsMetadata.zodSchema, argsMetadata.index, guardCollection.funcName);
|
|
203
209
|
break;
|
|
210
|
+
case EArgumentTypes.query:
|
|
211
|
+
guardArguments[argsMetadata.index] = !argsMetadata.zodSchema
|
|
212
|
+
? query
|
|
213
|
+
: await argumentsResolution(query, argsMetadata.zodSchema, argsMetadata.index, guardCollection.funcName);
|
|
214
|
+
break;
|
|
204
215
|
case EArgumentTypes.request:
|
|
205
216
|
guardArguments[argsMetadata.index] = request;
|
|
206
217
|
break;
|
|
@@ -228,7 +239,6 @@ export const BoolFactory = (target, options) => {
|
|
|
228
239
|
});
|
|
229
240
|
}
|
|
230
241
|
const params = result.params;
|
|
231
|
-
const query = Qs.parse(url.search, options.queryParser);
|
|
232
242
|
let responseBody = undefined;
|
|
233
243
|
// Execute before dispatcher(s)
|
|
234
244
|
for (let i = 0; i < beforeDispatcherGroup.length; i++) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -154,12 +154,12 @@ export const Query = (zodSchema?: Zod.Schema) => {
|
|
|
154
154
|
|
|
155
155
|
queryMetadata[`argumentIndexes.${parameterIndex}`] = {
|
|
156
156
|
index: parameterIndex,
|
|
157
|
-
type: EArgumentTypes.
|
|
157
|
+
type: EArgumentTypes.query,
|
|
158
158
|
zodSchema: zodSchema
|
|
159
159
|
} satisfies Extract<
|
|
160
160
|
TArgumentsMetadata,
|
|
161
161
|
{
|
|
162
|
-
type: EArgumentTypes.
|
|
162
|
+
type: EArgumentTypes.query;
|
|
163
163
|
}
|
|
164
164
|
>;
|
|
165
165
|
|
package/src/hooks/factory.ts
CHANGED
|
@@ -205,6 +205,7 @@ export const BoolFactory = (target: new (...args: any[]) => unknown, options: TB
|
|
|
205
205
|
const url = new URL(request.url);
|
|
206
206
|
const reqHeaders = request.headers;
|
|
207
207
|
const resHeaders = new Headers();
|
|
208
|
+
const query = Qs.parse(url.searchParams.toString(), options.queryParser);
|
|
208
209
|
|
|
209
210
|
try {
|
|
210
211
|
// Execute middleware(s)
|
|
@@ -237,6 +238,16 @@ export const BoolFactory = (target: new (...args: any[]) => unknown, options: TB
|
|
|
237
238
|
middlewareCollection.funcName
|
|
238
239
|
);
|
|
239
240
|
break;
|
|
241
|
+
case EArgumentTypes.query:
|
|
242
|
+
middlewareArguments[argsMetadata.index] = !argsMetadata.zodSchema
|
|
243
|
+
? query
|
|
244
|
+
: await argumentsResolution(
|
|
245
|
+
query,
|
|
246
|
+
argsMetadata.zodSchema,
|
|
247
|
+
argsMetadata.index,
|
|
248
|
+
middlewareCollection.funcName
|
|
249
|
+
);
|
|
250
|
+
break;
|
|
240
251
|
case EArgumentTypes.request:
|
|
241
252
|
middlewareArguments[argsMetadata.index] = request;
|
|
242
253
|
break;
|
|
@@ -286,6 +297,16 @@ export const BoolFactory = (target: new (...args: any[]) => unknown, options: TB
|
|
|
286
297
|
guardCollection.funcName
|
|
287
298
|
);
|
|
288
299
|
break;
|
|
300
|
+
case EArgumentTypes.query:
|
|
301
|
+
guardArguments[argsMetadata.index] = !argsMetadata.zodSchema
|
|
302
|
+
? query
|
|
303
|
+
: await argumentsResolution(
|
|
304
|
+
query,
|
|
305
|
+
argsMetadata.zodSchema,
|
|
306
|
+
argsMetadata.index,
|
|
307
|
+
guardCollection.funcName
|
|
308
|
+
);
|
|
309
|
+
break;
|
|
289
310
|
case EArgumentTypes.request:
|
|
290
311
|
guardArguments[argsMetadata.index] = request;
|
|
291
312
|
break;
|
|
@@ -318,7 +339,6 @@ export const BoolFactory = (target: new (...args: any[]) => unknown, options: TB
|
|
|
318
339
|
}
|
|
319
340
|
|
|
320
341
|
const params = result.params;
|
|
321
|
-
const query = Qs.parse(url.search, options.queryParser);
|
|
322
342
|
|
|
323
343
|
let responseBody = undefined;
|
|
324
344
|
|
package/test.http
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
GET http://{{baseUrl}}/test/abc/23234
|
|
6
6
|
|
|
7
7
|
### Send test POST method
|
|
8
|
-
POST http://{{baseUrl}}/test/abc/123/provider/23234 HTTP/1.1
|
|
8
|
+
POST http://{{baseUrl}}/test/abc/123/provider/23234?options[page]=1&options[limit]=6&options[sort][metadata.latestReviewAt]=desc&options[sort][info.searchCount]=desc&options[sort][createdAt]=desc&populate[0]=__headquarters&populate[1]=__logoMedia HTTP/1.1
|
|
9
9
|
content-type: application/json
|
|
10
10
|
|
|
11
11
|
{
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|