@bool-ts/core 1.9.0 → 1.9.1
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/webSocket.ts +1 -1
- package/dist/decorators/arguments.d.ts +1 -0
- package/dist/decorators/container.d.ts +29 -0
- package/dist/decorators/http.d.ts +2 -0
- package/dist/decorators/webSocket.d.ts +2 -0
- package/dist/entities/httpRoute.d.ts +6 -0
- package/dist/hooks/factory.d.ts +2 -0
- package/dist/index.js +5 -5
- package/dist/keys/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/decorators/arguments.ts +100 -78
- package/src/decorators/container.ts +79 -0
- package/src/decorators/controller.ts +1 -1
- package/src/decorators/http.ts +9 -2
- package/src/decorators/module.ts +11 -2
- package/src/decorators/webSocket.ts +6 -2
- package/src/entities/httpRoute.ts +2 -0
- package/src/hooks/factory.ts +489 -487
- package/src/keys/index.ts +1 -0
package/src/hooks/factory.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import type { BunFile, Server } from "bun";
|
|
1
2
|
import type {
|
|
2
|
-
TArgumentsMetadata,
|
|
3
3
|
TControllerMetadata,
|
|
4
|
-
THttpMetadata,
|
|
5
4
|
TModuleMetadata,
|
|
6
5
|
TWebSocketEventHandlerMetadata,
|
|
7
6
|
TWebSocketMetadata
|
|
8
7
|
} from "../decorators";
|
|
8
|
+
import type { TArgumentsMetadataCollection } from "../decorators/arguments";
|
|
9
9
|
import type { TWebSocketUpgradeData } from "../decorators/webSocket";
|
|
10
10
|
import type { IContext, IGuard, IMiddleware } from "../interfaces";
|
|
11
11
|
import type { IDispatcher } from "../interfaces/dispatcher";
|
|
@@ -16,7 +16,6 @@ import Qs from "qs";
|
|
|
16
16
|
import * as Zod from "zod";
|
|
17
17
|
|
|
18
18
|
import { ETimeUnit, add as TimeAdd } from "@bool-ts/date-time";
|
|
19
|
-
import type { BunFile, Server } from "bun";
|
|
20
19
|
import {
|
|
21
20
|
HttpRouter,
|
|
22
21
|
HttpRouterGroup,
|
|
@@ -29,7 +28,6 @@ import {
|
|
|
29
28
|
argumentsKey,
|
|
30
29
|
configKey,
|
|
31
30
|
contextArgsKey,
|
|
32
|
-
controllerHttpKey,
|
|
33
31
|
controllerKey,
|
|
34
32
|
moduleKey,
|
|
35
33
|
paramArgsKey,
|
|
@@ -60,6 +58,7 @@ export type TGroupElementModel<
|
|
|
60
58
|
class: TClass;
|
|
61
59
|
func: TFunc;
|
|
62
60
|
funcName: TFuncName;
|
|
61
|
+
argumentsMetadata: TArgumentsMetadataCollection;
|
|
63
62
|
}>;
|
|
64
63
|
|
|
65
64
|
export type TBoolFactoryOptions = Required<{
|
|
@@ -124,11 +123,10 @@ const controllerCreator = ({
|
|
|
124
123
|
prefix: "/",
|
|
125
124
|
httpMetadata: []
|
|
126
125
|
};
|
|
127
|
-
|
|
128
|
-
[]) as THttpMetadata;
|
|
126
|
+
|
|
129
127
|
const router = new HttpRouter(`/${prefix || ""}/${controllerMetadata.prefix}`);
|
|
130
128
|
|
|
131
|
-
|
|
129
|
+
controllerMetadata.httpMetadata.forEach((routeMetadata) => {
|
|
132
130
|
if (typeof routeMetadata.descriptor.value !== "function") {
|
|
133
131
|
return;
|
|
134
132
|
}
|
|
@@ -138,7 +136,8 @@ const controllerCreator = ({
|
|
|
138
136
|
const routeArgument = Object.freeze({
|
|
139
137
|
class: controllerConstructor,
|
|
140
138
|
funcName: routeMetadata.methodName,
|
|
141
|
-
func: handler
|
|
139
|
+
func: handler,
|
|
140
|
+
argumentsMetadata: routeMetadata.argumentsMetadata
|
|
142
141
|
});
|
|
143
142
|
|
|
144
143
|
switch (routeMetadata.httpMethod) {
|
|
@@ -210,7 +209,8 @@ const webSocketCreator = ({
|
|
|
210
209
|
const routeArgument = Object.freeze({
|
|
211
210
|
class: webSocketConstructor,
|
|
212
211
|
funcName: httpMetadata.methodName,
|
|
213
|
-
func: handler
|
|
212
|
+
func: handler,
|
|
213
|
+
argumentsMetadata: httpMetadata.argumentsMetadata
|
|
214
214
|
});
|
|
215
215
|
|
|
216
216
|
switch (httpMetadata.httpMethod) {
|
|
@@ -391,21 +391,29 @@ const moduleResolution = async (
|
|
|
391
391
|
const instance = injector.get<IMiddleware>(middleware);
|
|
392
392
|
|
|
393
393
|
if (instance.start && typeof instance.start === "function") {
|
|
394
|
+
const argumentsMetadata: TArgumentsMetadataCollection =
|
|
395
|
+
Reflect.getOwnMetadata(argumentsKey, middleware, "start") || {};
|
|
396
|
+
|
|
394
397
|
startMiddlewareGroup.push(
|
|
395
398
|
Object.freeze({
|
|
396
399
|
class: middleware as IMiddleware,
|
|
397
400
|
funcName: "start",
|
|
398
|
-
func: instance.start.bind(instance)
|
|
401
|
+
func: instance.start.bind(instance),
|
|
402
|
+
argumentsMetadata: argumentsMetadata
|
|
399
403
|
})
|
|
400
404
|
);
|
|
401
405
|
}
|
|
402
406
|
|
|
403
407
|
if (instance.end && typeof instance.end === "function") {
|
|
408
|
+
const argumentsMetadata: TArgumentsMetadataCollection =
|
|
409
|
+
Reflect.getOwnMetadata(argumentsKey, middleware, "start") || {};
|
|
410
|
+
|
|
404
411
|
endMiddlewareGroup.push(
|
|
405
412
|
Object.freeze({
|
|
406
413
|
class: middleware as IMiddleware,
|
|
407
414
|
funcName: "end",
|
|
408
|
-
func: instance.end.bind(instance)
|
|
415
|
+
func: instance.end.bind(instance),
|
|
416
|
+
argumentsMetadata: argumentsMetadata
|
|
409
417
|
})
|
|
410
418
|
);
|
|
411
419
|
}
|
|
@@ -413,17 +421,21 @@ const moduleResolution = async (
|
|
|
413
421
|
//#endregion
|
|
414
422
|
|
|
415
423
|
//#region [Guard(s)]
|
|
416
|
-
const guardGroup =
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
424
|
+
const guardGroup: Array<TGroupElementModel<"enforce", IGuard, NonNullable<IGuard["enforce"]>>> =
|
|
425
|
+
!guards
|
|
426
|
+
? []
|
|
427
|
+
: guards.map((guard) => {
|
|
428
|
+
const guardInstance = injector.get<IGuard>(guard);
|
|
429
|
+
const argumentsMetadata: TArgumentsMetadataCollection =
|
|
430
|
+
Reflect.getOwnMetadata(argumentsKey, guard, "enforce") || {};
|
|
431
|
+
|
|
432
|
+
return Object.freeze({
|
|
433
|
+
class: guard as unknown as IGuard,
|
|
434
|
+
funcName: "enforce",
|
|
435
|
+
func: guardInstance.enforce.bind(guardInstance),
|
|
436
|
+
argumentsMetadata: argumentsMetadata
|
|
437
|
+
});
|
|
425
438
|
});
|
|
426
|
-
});
|
|
427
439
|
//#endregion
|
|
428
440
|
|
|
429
441
|
//#region [Before dispatcher(s)]
|
|
@@ -439,21 +451,29 @@ const moduleResolution = async (
|
|
|
439
451
|
const instance = injector.get<IDispatcher>(dispatcher);
|
|
440
452
|
|
|
441
453
|
if (instance.open && typeof instance.open === "function") {
|
|
454
|
+
const argumentsMetadata: TArgumentsMetadataCollection =
|
|
455
|
+
Reflect.getOwnMetadata(argumentsKey, dispatcher, "open") || {};
|
|
456
|
+
|
|
442
457
|
openDispatcherGroup.push(
|
|
443
458
|
Object.freeze({
|
|
444
459
|
class: dispatcher as IDispatcher,
|
|
445
460
|
funcName: "open",
|
|
446
|
-
func: instance.open.bind(instance)
|
|
461
|
+
func: instance.open.bind(instance),
|
|
462
|
+
argumentsMetadata: argumentsMetadata
|
|
447
463
|
})
|
|
448
464
|
);
|
|
449
465
|
}
|
|
450
466
|
|
|
451
467
|
if (instance.close && typeof instance.close === "function") {
|
|
468
|
+
const argumentsMetadata: TArgumentsMetadataCollection =
|
|
469
|
+
Reflect.getOwnMetadata(argumentsKey, dispatcher, "close") || {};
|
|
470
|
+
|
|
452
471
|
closeDispatcherGroup.push(
|
|
453
472
|
Object.freeze({
|
|
454
473
|
class: dispatcher as IDispatcher,
|
|
455
474
|
funcName: "close",
|
|
456
|
-
func: instance.close.bind(instance)
|
|
475
|
+
func: instance.close.bind(instance),
|
|
476
|
+
argumentsMetadata: argumentsMetadata
|
|
457
477
|
})
|
|
458
478
|
);
|
|
459
479
|
}
|
|
@@ -613,93 +633,93 @@ const httpFetcher = async (
|
|
|
613
633
|
// Execute start middleware(s)
|
|
614
634
|
for (let i = 0; i < startMiddlewareGroup.length; i++) {
|
|
615
635
|
const args = [];
|
|
616
|
-
const
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
:
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
636
|
+
const {
|
|
637
|
+
func: handler,
|
|
638
|
+
funcName: functionName,
|
|
639
|
+
argumentsMetadata
|
|
640
|
+
} = startMiddlewareGroup[i];
|
|
641
|
+
|
|
642
|
+
for (const [_key, argMetadata] of Object.entries(argumentsMetadata)) {
|
|
643
|
+
switch (argMetadata.type) {
|
|
644
|
+
case requestArgsKey:
|
|
645
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
646
|
+
? request
|
|
647
|
+
: await argumentsResolution(
|
|
648
|
+
request,
|
|
649
|
+
argMetadata.zodSchema,
|
|
650
|
+
argMetadata.index,
|
|
651
|
+
functionName
|
|
652
|
+
);
|
|
653
|
+
break;
|
|
654
|
+
case requestBodyArgsKey:
|
|
655
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
656
|
+
? await request[argMetadata.parser || "json"]()
|
|
657
|
+
: await argumentsResolution(
|
|
658
|
+
await request[argMetadata.parser || "json"](),
|
|
659
|
+
argMetadata.zodSchema,
|
|
660
|
+
argMetadata.index,
|
|
661
|
+
functionName
|
|
662
|
+
);
|
|
663
|
+
break;
|
|
664
|
+
case contextArgsKey:
|
|
665
|
+
args[argMetadata.index] = !argMetadata.key
|
|
666
|
+
? contextHook
|
|
667
|
+
: contextHook.get(argMetadata.key);
|
|
668
|
+
break;
|
|
669
|
+
case requestHeadersArgsKey:
|
|
670
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
671
|
+
? request.headers
|
|
672
|
+
: await argumentsResolution(
|
|
673
|
+
request.headers.toJSON(),
|
|
674
|
+
argMetadata.zodSchema,
|
|
675
|
+
argMetadata.index,
|
|
676
|
+
functionName
|
|
677
|
+
);
|
|
678
|
+
break;
|
|
679
|
+
case responseHeadersArgsKey:
|
|
680
|
+
args[argMetadata.index] = context[argMetadata.type];
|
|
681
|
+
break;
|
|
682
|
+
case requestHeaderArgsKey:
|
|
683
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
684
|
+
? request.headers.get(argMetadata.key) || undefined
|
|
685
|
+
: await argumentsResolution(
|
|
686
|
+
request.headers.get(argMetadata.key) || undefined,
|
|
687
|
+
argMetadata.zodSchema,
|
|
688
|
+
argMetadata.index,
|
|
689
|
+
functionName
|
|
690
|
+
);
|
|
691
|
+
break;
|
|
692
|
+
case paramArgsKey:
|
|
693
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
694
|
+
? context[paramsArgsKey][argMetadata.key] || undefined
|
|
695
|
+
: await argumentsResolution(
|
|
696
|
+
context[paramsArgsKey][argMetadata.key],
|
|
697
|
+
argMetadata.zodSchema,
|
|
698
|
+
argMetadata.index,
|
|
699
|
+
functionName
|
|
700
|
+
);
|
|
701
|
+
break;
|
|
702
|
+
case routeModelArgsKey:
|
|
703
|
+
args[argMetadata.index] = context[routeModelArgsKey];
|
|
704
|
+
break;
|
|
705
|
+
default:
|
|
706
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
707
|
+
? !(argMetadata.type in context)
|
|
708
|
+
? undefined
|
|
709
|
+
: context[argMetadata.type]
|
|
710
|
+
: await argumentsResolution(
|
|
711
|
+
!(argMetadata.type in context)
|
|
712
|
+
? undefined
|
|
713
|
+
: context[argMetadata.type],
|
|
714
|
+
argMetadata.zodSchema,
|
|
715
|
+
argMetadata.index,
|
|
716
|
+
functionName
|
|
717
|
+
);
|
|
718
|
+
break;
|
|
699
719
|
}
|
|
700
720
|
}
|
|
701
721
|
|
|
702
|
-
context[responseBodyArgsKey] = await
|
|
722
|
+
context[responseBodyArgsKey] = await handler(...args);
|
|
703
723
|
|
|
704
724
|
if (context[responseBodyArgsKey] instanceof Response) {
|
|
705
725
|
return responseConverter(context[responseBodyArgsKey]);
|
|
@@ -709,89 +729,85 @@ const httpFetcher = async (
|
|
|
709
729
|
// Execute guard(s)
|
|
710
730
|
for (let i = 0; i < guardGroup.length; i++) {
|
|
711
731
|
const args = [];
|
|
712
|
-
const
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
collection.funcName
|
|
788
|
-
);
|
|
789
|
-
break;
|
|
790
|
-
}
|
|
732
|
+
const { func: handler, funcName: functionName, argumentsMetadata } = guardGroup[i];
|
|
733
|
+
|
|
734
|
+
for (const [_key, argMetadata] of Object.entries(argumentsMetadata)) {
|
|
735
|
+
switch (argMetadata.type) {
|
|
736
|
+
case requestArgsKey:
|
|
737
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
738
|
+
? request
|
|
739
|
+
: await argumentsResolution(
|
|
740
|
+
request,
|
|
741
|
+
argMetadata.zodSchema,
|
|
742
|
+
argMetadata.index,
|
|
743
|
+
functionName
|
|
744
|
+
);
|
|
745
|
+
break;
|
|
746
|
+
case requestBodyArgsKey:
|
|
747
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
748
|
+
? await request[argMetadata.parser || "json"]()
|
|
749
|
+
: await argumentsResolution(
|
|
750
|
+
await request[argMetadata.parser || "json"](),
|
|
751
|
+
argMetadata.zodSchema,
|
|
752
|
+
argMetadata.index,
|
|
753
|
+
functionName
|
|
754
|
+
);
|
|
755
|
+
break;
|
|
756
|
+
case contextArgsKey:
|
|
757
|
+
args[argMetadata.index] = !argMetadata.key
|
|
758
|
+
? contextHook
|
|
759
|
+
: contextHook.get(argMetadata.key);
|
|
760
|
+
break;
|
|
761
|
+
case requestHeadersArgsKey:
|
|
762
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
763
|
+
? request.headers
|
|
764
|
+
: await argumentsResolution(
|
|
765
|
+
request.headers.toJSON(),
|
|
766
|
+
argMetadata.zodSchema,
|
|
767
|
+
argMetadata.index,
|
|
768
|
+
functionName
|
|
769
|
+
);
|
|
770
|
+
break;
|
|
771
|
+
case responseHeadersArgsKey:
|
|
772
|
+
args[argMetadata.index] = context[argMetadata.type];
|
|
773
|
+
break;
|
|
774
|
+
case requestHeaderArgsKey:
|
|
775
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
776
|
+
? request.headers.get(argMetadata.key) || undefined
|
|
777
|
+
: await argumentsResolution(
|
|
778
|
+
request.headers.get(argMetadata.key) || undefined,
|
|
779
|
+
argMetadata.zodSchema,
|
|
780
|
+
argMetadata.index,
|
|
781
|
+
functionName
|
|
782
|
+
);
|
|
783
|
+
break;
|
|
784
|
+
case paramArgsKey:
|
|
785
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
786
|
+
? context[paramsArgsKey][argMetadata.key] || undefined
|
|
787
|
+
: await argumentsResolution(
|
|
788
|
+
context[paramsArgsKey][argMetadata.key],
|
|
789
|
+
argMetadata.zodSchema,
|
|
790
|
+
argMetadata.index,
|
|
791
|
+
functionName
|
|
792
|
+
);
|
|
793
|
+
break;
|
|
794
|
+
case routeModelArgsKey:
|
|
795
|
+
args[argMetadata.index] = context[routeModelArgsKey];
|
|
796
|
+
break;
|
|
797
|
+
default:
|
|
798
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
799
|
+
? context[argMetadata.type]
|
|
800
|
+
: await argumentsResolution(
|
|
801
|
+
context[argMetadata.type],
|
|
802
|
+
argMetadata.zodSchema,
|
|
803
|
+
argMetadata.index,
|
|
804
|
+
functionName
|
|
805
|
+
);
|
|
806
|
+
break;
|
|
791
807
|
}
|
|
792
808
|
}
|
|
793
809
|
|
|
794
|
-
const guardResult = await
|
|
810
|
+
const guardResult = await handler(...args);
|
|
795
811
|
|
|
796
812
|
if (typeof guardResult !== "boolean" || !guardResult) {
|
|
797
813
|
throw new HttpClientError({
|
|
@@ -805,269 +821,259 @@ const httpFetcher = async (
|
|
|
805
821
|
// Execute open dispatcher(s)
|
|
806
822
|
for (let i = 0; i < openDispatcherGroup.length; i++) {
|
|
807
823
|
const args = [];
|
|
808
|
-
const
|
|
809
|
-
const metadata: Record<string, TArgumentsMetadata> =
|
|
810
|
-
Reflect.getOwnMetadata(argumentsKey, collection.class, collection.funcName) || {};
|
|
811
|
-
|
|
812
|
-
if (metadata) {
|
|
813
|
-
for (const [_key, argsMetadata] of Object.entries(metadata)) {
|
|
814
|
-
switch (argsMetadata.type) {
|
|
815
|
-
case requestArgsKey:
|
|
816
|
-
args[argsMetadata.index] = !argsMetadata.zodSchema
|
|
817
|
-
? request
|
|
818
|
-
: await argumentsResolution(
|
|
819
|
-
request,
|
|
820
|
-
argsMetadata.zodSchema,
|
|
821
|
-
argsMetadata.index,
|
|
822
|
-
collection.funcName
|
|
823
|
-
);
|
|
824
|
-
break;
|
|
825
|
-
case requestBodyArgsKey:
|
|
826
|
-
args[argsMetadata.index] = !argsMetadata.zodSchema
|
|
827
|
-
? await request[argsMetadata.parser || "json"]()
|
|
828
|
-
: await argumentsResolution(
|
|
829
|
-
await request[argsMetadata.parser || "json"](),
|
|
830
|
-
argsMetadata.zodSchema,
|
|
831
|
-
argsMetadata.index,
|
|
832
|
-
collection.funcName
|
|
833
|
-
);
|
|
834
|
-
break;
|
|
835
|
-
case contextArgsKey:
|
|
836
|
-
args[argsMetadata.index] = !argsMetadata.key
|
|
837
|
-
? contextHook
|
|
838
|
-
: contextHook.get(argsMetadata.key);
|
|
839
|
-
break;
|
|
840
|
-
case requestHeadersArgsKey:
|
|
841
|
-
args[argsMetadata.index] = !argsMetadata.zodSchema
|
|
842
|
-
? request.headers
|
|
843
|
-
: await argumentsResolution(
|
|
844
|
-
request.headers.toJSON(),
|
|
845
|
-
argsMetadata.zodSchema,
|
|
846
|
-
argsMetadata.index,
|
|
847
|
-
collection.funcName
|
|
848
|
-
);
|
|
849
|
-
break;
|
|
850
|
-
case responseHeadersArgsKey:
|
|
851
|
-
args[argsMetadata.index] = context[argsMetadata.type];
|
|
852
|
-
break;
|
|
853
|
-
case requestHeaderArgsKey:
|
|
854
|
-
args[argsMetadata.index] = !argsMetadata.zodSchema
|
|
855
|
-
? request.headers.get(argsMetadata.key) || undefined
|
|
856
|
-
: await argumentsResolution(
|
|
857
|
-
request.headers.get(argsMetadata.key) || undefined,
|
|
858
|
-
argsMetadata.zodSchema,
|
|
859
|
-
argsMetadata.index,
|
|
860
|
-
collection.funcName
|
|
861
|
-
);
|
|
862
|
-
break;
|
|
863
|
-
case paramArgsKey:
|
|
864
|
-
args[argsMetadata.index] = !argsMetadata.zodSchema
|
|
865
|
-
? context[paramsArgsKey][argsMetadata.key] || undefined
|
|
866
|
-
: await argumentsResolution(
|
|
867
|
-
context[paramsArgsKey][argsMetadata.key],
|
|
868
|
-
argsMetadata.zodSchema,
|
|
869
|
-
argsMetadata.index,
|
|
870
|
-
collection.funcName
|
|
871
|
-
);
|
|
872
|
-
break;
|
|
873
|
-
case routeModelArgsKey:
|
|
874
|
-
args[argsMetadata.index] = context[routeModelArgsKey];
|
|
875
|
-
break;
|
|
876
|
-
default:
|
|
877
|
-
args[argsMetadata.index] = !argsMetadata.zodSchema
|
|
878
|
-
? context[argsMetadata.type]
|
|
879
|
-
: await argumentsResolution(
|
|
880
|
-
context[argsMetadata.type],
|
|
881
|
-
argsMetadata.zodSchema,
|
|
882
|
-
argsMetadata.index,
|
|
883
|
-
collection.funcName
|
|
884
|
-
);
|
|
885
|
-
break;
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
}
|
|
824
|
+
const { func: handler, funcName: functionName, argumentsMetadata } = openDispatcherGroup[i];
|
|
889
825
|
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
// Execute controller action
|
|
894
|
-
const controllerActionArguments: any[] = [];
|
|
895
|
-
const controllerActionCollection = model;
|
|
896
|
-
const controllerActionMetadata: Record<string, TArgumentsMetadata> =
|
|
897
|
-
Reflect.getOwnMetadata(
|
|
898
|
-
argumentsKey,
|
|
899
|
-
controllerActionCollection.class,
|
|
900
|
-
controllerActionCollection.funcName
|
|
901
|
-
) || {};
|
|
902
|
-
|
|
903
|
-
if (controllerActionMetadata) {
|
|
904
|
-
for (const [_key, argsMetadata] of Object.entries(controllerActionMetadata)) {
|
|
905
|
-
switch (argsMetadata.type) {
|
|
826
|
+
for (const [_key, argMetadata] of Object.entries(argumentsMetadata)) {
|
|
827
|
+
switch (argMetadata.type) {
|
|
906
828
|
case requestArgsKey:
|
|
907
|
-
|
|
829
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
908
830
|
? request
|
|
909
831
|
: await argumentsResolution(
|
|
910
832
|
request,
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
833
|
+
argMetadata.zodSchema,
|
|
834
|
+
argMetadata.index,
|
|
835
|
+
functionName
|
|
914
836
|
);
|
|
915
837
|
break;
|
|
916
838
|
case requestBodyArgsKey:
|
|
917
|
-
|
|
918
|
-
? await request[
|
|
839
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
840
|
+
? await request[argMetadata.parser || "json"]()
|
|
919
841
|
: await argumentsResolution(
|
|
920
|
-
await request[
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
842
|
+
await request[argMetadata.parser || "json"](),
|
|
843
|
+
argMetadata.zodSchema,
|
|
844
|
+
argMetadata.index,
|
|
845
|
+
functionName
|
|
924
846
|
);
|
|
925
847
|
break;
|
|
926
848
|
case contextArgsKey:
|
|
927
|
-
|
|
849
|
+
args[argMetadata.index] = !argMetadata.key
|
|
928
850
|
? contextHook
|
|
929
|
-
: contextHook.get(
|
|
851
|
+
: contextHook.get(argMetadata.key);
|
|
930
852
|
break;
|
|
931
853
|
case requestHeadersArgsKey:
|
|
932
|
-
|
|
854
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
933
855
|
? request.headers
|
|
934
856
|
: await argumentsResolution(
|
|
935
857
|
request.headers.toJSON(),
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
858
|
+
argMetadata.zodSchema,
|
|
859
|
+
argMetadata.index,
|
|
860
|
+
functionName
|
|
939
861
|
);
|
|
940
862
|
break;
|
|
941
863
|
case responseHeadersArgsKey:
|
|
942
|
-
|
|
864
|
+
args[argMetadata.index] = context[argMetadata.type];
|
|
943
865
|
break;
|
|
944
866
|
case requestHeaderArgsKey:
|
|
945
|
-
|
|
946
|
-
? request.headers.get(
|
|
867
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
868
|
+
? request.headers.get(argMetadata.key) || undefined
|
|
947
869
|
: await argumentsResolution(
|
|
948
|
-
request.headers.get(
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
870
|
+
request.headers.get(argMetadata.key) || undefined,
|
|
871
|
+
argMetadata.zodSchema,
|
|
872
|
+
argMetadata.index,
|
|
873
|
+
functionName
|
|
952
874
|
);
|
|
953
875
|
break;
|
|
954
876
|
case paramArgsKey:
|
|
955
|
-
|
|
956
|
-
? context[paramsArgsKey][
|
|
877
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
878
|
+
? context[paramsArgsKey][argMetadata.key] || undefined
|
|
957
879
|
: await argumentsResolution(
|
|
958
|
-
context[paramsArgsKey][
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
880
|
+
context[paramsArgsKey][argMetadata.key],
|
|
881
|
+
argMetadata.zodSchema,
|
|
882
|
+
argMetadata.index,
|
|
883
|
+
functionName
|
|
962
884
|
);
|
|
963
885
|
break;
|
|
964
886
|
case routeModelArgsKey:
|
|
965
|
-
|
|
887
|
+
args[argMetadata.index] = context[routeModelArgsKey];
|
|
966
888
|
break;
|
|
967
889
|
default:
|
|
968
|
-
|
|
969
|
-
? context[
|
|
890
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
891
|
+
? context[argMetadata.type]
|
|
970
892
|
: await argumentsResolution(
|
|
971
|
-
context[
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
893
|
+
context[argMetadata.type],
|
|
894
|
+
argMetadata.zodSchema,
|
|
895
|
+
argMetadata.index,
|
|
896
|
+
functionName
|
|
975
897
|
);
|
|
976
898
|
break;
|
|
977
899
|
}
|
|
978
900
|
}
|
|
901
|
+
|
|
902
|
+
context[responseBodyArgsKey] = await handler(...args);
|
|
979
903
|
}
|
|
980
904
|
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
905
|
+
// Execute controller action
|
|
906
|
+
const controllerActionArguments: any[] = [];
|
|
907
|
+
const {
|
|
908
|
+
func: controllerAction,
|
|
909
|
+
funcName: controllerActionName,
|
|
910
|
+
argumentsMetadata: controllerActionArgumentsMetadata
|
|
911
|
+
} = model;
|
|
912
|
+
|
|
913
|
+
for (const [_key, argMetadata] of Object.entries(controllerActionArgumentsMetadata)) {
|
|
914
|
+
switch (argMetadata.type) {
|
|
915
|
+
case requestArgsKey:
|
|
916
|
+
controllerActionArguments[argMetadata.index] = !argMetadata.zodSchema
|
|
917
|
+
? request
|
|
918
|
+
: await argumentsResolution(
|
|
919
|
+
request,
|
|
920
|
+
argMetadata.zodSchema,
|
|
921
|
+
argMetadata.index,
|
|
922
|
+
controllerActionName
|
|
923
|
+
);
|
|
924
|
+
break;
|
|
925
|
+
case requestBodyArgsKey:
|
|
926
|
+
controllerActionArguments[argMetadata.index] = !argMetadata.zodSchema
|
|
927
|
+
? await request[argMetadata.parser || "json"]()
|
|
928
|
+
: await argumentsResolution(
|
|
929
|
+
await request[argMetadata.parser || "json"](),
|
|
930
|
+
argMetadata.zodSchema,
|
|
931
|
+
argMetadata.index,
|
|
932
|
+
controllerActionName
|
|
933
|
+
);
|
|
934
|
+
break;
|
|
935
|
+
case contextArgsKey:
|
|
936
|
+
controllerActionArguments[argMetadata.index] = !argMetadata.key
|
|
937
|
+
? contextHook
|
|
938
|
+
: contextHook.get(argMetadata.key);
|
|
939
|
+
break;
|
|
940
|
+
case requestHeadersArgsKey:
|
|
941
|
+
controllerActionArguments[argMetadata.index] = !argMetadata.zodSchema
|
|
942
|
+
? request.headers
|
|
943
|
+
: await argumentsResolution(
|
|
944
|
+
request.headers.toJSON(),
|
|
945
|
+
argMetadata.zodSchema,
|
|
946
|
+
argMetadata.index,
|
|
947
|
+
controllerActionName
|
|
948
|
+
);
|
|
949
|
+
break;
|
|
950
|
+
case responseHeadersArgsKey:
|
|
951
|
+
controllerActionArguments[argMetadata.index] = context[argMetadata.type];
|
|
952
|
+
break;
|
|
953
|
+
case requestHeaderArgsKey:
|
|
954
|
+
controllerActionArguments[argMetadata.index] = !argMetadata.zodSchema
|
|
955
|
+
? request.headers.get(argMetadata.key) || undefined
|
|
956
|
+
: await argumentsResolution(
|
|
957
|
+
request.headers.get(argMetadata.key) || undefined,
|
|
958
|
+
argMetadata.zodSchema,
|
|
959
|
+
argMetadata.index,
|
|
960
|
+
controllerActionName
|
|
961
|
+
);
|
|
962
|
+
break;
|
|
963
|
+
case paramArgsKey:
|
|
964
|
+
controllerActionArguments[argMetadata.index] = !argMetadata.zodSchema
|
|
965
|
+
? context[paramsArgsKey][argMetadata.key] || undefined
|
|
966
|
+
: await argumentsResolution(
|
|
967
|
+
context[paramsArgsKey][argMetadata.key],
|
|
968
|
+
argMetadata.zodSchema,
|
|
969
|
+
argMetadata.index,
|
|
970
|
+
controllerActionName
|
|
971
|
+
);
|
|
972
|
+
break;
|
|
973
|
+
case routeModelArgsKey:
|
|
974
|
+
controllerActionArguments[argMetadata.index] = context[routeModelArgsKey];
|
|
975
|
+
break;
|
|
976
|
+
default:
|
|
977
|
+
controllerActionArguments[argMetadata.index] = !argMetadata.zodSchema
|
|
978
|
+
? context[argMetadata.type]
|
|
979
|
+
: await argumentsResolution(
|
|
980
|
+
context[argMetadata.type],
|
|
981
|
+
argMetadata.zodSchema,
|
|
982
|
+
argMetadata.index,
|
|
983
|
+
controllerActionName
|
|
984
|
+
);
|
|
985
|
+
break;
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
context[responseBodyArgsKey] = await controllerAction(...controllerActionArguments);
|
|
984
990
|
|
|
985
991
|
// Execute close dispatcher(s)
|
|
986
992
|
for (let i = 0; i < closeDispatcherGroup.length; i++) {
|
|
987
993
|
const args = [];
|
|
988
|
-
const
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
994
|
+
const {
|
|
995
|
+
func: handler,
|
|
996
|
+
funcName: functionName,
|
|
997
|
+
argumentsMetadata
|
|
998
|
+
} = closeDispatcherGroup[i];
|
|
999
|
+
|
|
1000
|
+
for (const [_key, argMetadata] of Object.entries(argumentsMetadata)) {
|
|
1001
|
+
switch (argMetadata.type) {
|
|
1002
|
+
case requestArgsKey:
|
|
1003
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1004
|
+
? request
|
|
1005
|
+
: await argumentsResolution(
|
|
1006
|
+
request,
|
|
1007
|
+
argMetadata.zodSchema,
|
|
1008
|
+
argMetadata.index,
|
|
1009
|
+
functionName
|
|
1010
|
+
);
|
|
1011
|
+
break;
|
|
1012
|
+
case requestBodyArgsKey:
|
|
1013
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1014
|
+
? await request[argMetadata.parser || "json"]()
|
|
1015
|
+
: await argumentsResolution(
|
|
1016
|
+
await request[argMetadata.parser || "json"](),
|
|
1017
|
+
argMetadata.zodSchema,
|
|
1018
|
+
argMetadata.index,
|
|
1019
|
+
functionName
|
|
1020
|
+
);
|
|
1021
|
+
break;
|
|
1022
|
+
case contextArgsKey:
|
|
1023
|
+
args[argMetadata.index] = !argMetadata.key
|
|
1024
|
+
? contextHook
|
|
1025
|
+
: contextHook.get(argMetadata.key);
|
|
1026
|
+
break;
|
|
1027
|
+
case requestHeadersArgsKey:
|
|
1028
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1029
|
+
? request.headers
|
|
1030
|
+
: await argumentsResolution(
|
|
1031
|
+
request.headers.toJSON(),
|
|
1032
|
+
argMetadata.zodSchema,
|
|
1033
|
+
argMetadata.index,
|
|
1034
|
+
functionName
|
|
1035
|
+
);
|
|
1036
|
+
break;
|
|
1037
|
+
case responseHeadersArgsKey:
|
|
1038
|
+
args[argMetadata.index] = context[argMetadata.type];
|
|
1039
|
+
break;
|
|
1040
|
+
case requestHeaderArgsKey:
|
|
1041
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1042
|
+
? request.headers.get(argMetadata.key) || undefined
|
|
1043
|
+
: await argumentsResolution(
|
|
1044
|
+
request.headers.get(argMetadata.key) || undefined,
|
|
1045
|
+
argMetadata.zodSchema,
|
|
1046
|
+
argMetadata.index,
|
|
1047
|
+
functionName
|
|
1048
|
+
);
|
|
1049
|
+
break;
|
|
1050
|
+
case paramArgsKey:
|
|
1051
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1052
|
+
? context[paramsArgsKey][argMetadata.key] || undefined
|
|
1053
|
+
: await argumentsResolution(
|
|
1054
|
+
context[paramsArgsKey][argMetadata.key],
|
|
1055
|
+
argMetadata.zodSchema,
|
|
1056
|
+
argMetadata.index,
|
|
1057
|
+
functionName
|
|
1058
|
+
);
|
|
1059
|
+
break;
|
|
1060
|
+
case routeModelArgsKey:
|
|
1061
|
+
args[argMetadata.index] = context[routeModelArgsKey];
|
|
1062
|
+
break;
|
|
1063
|
+
default:
|
|
1064
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1065
|
+
? context[argMetadata.type]
|
|
1066
|
+
: await argumentsResolution(
|
|
1067
|
+
context[argMetadata.type],
|
|
1068
|
+
argMetadata.zodSchema,
|
|
1069
|
+
argMetadata.index,
|
|
1070
|
+
functionName
|
|
1071
|
+
);
|
|
1072
|
+
break;
|
|
1067
1073
|
}
|
|
1068
1074
|
}
|
|
1069
1075
|
|
|
1070
|
-
await
|
|
1076
|
+
await handler(...args);
|
|
1071
1077
|
}
|
|
1072
1078
|
|
|
1073
1079
|
if (context[responseBodyArgsKey] instanceof Response) {
|
|
@@ -1077,93 +1083,89 @@ const httpFetcher = async (
|
|
|
1077
1083
|
// Execute end middleware(s)
|
|
1078
1084
|
for (let i = 0; i < endMiddlewareGroup.length; i++) {
|
|
1079
1085
|
const args = [];
|
|
1080
|
-
const
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
collection.funcName
|
|
1160
|
-
);
|
|
1161
|
-
break;
|
|
1162
|
-
}
|
|
1086
|
+
const { func: handler, funcName: functionName, argumentsMetadata } = endMiddlewareGroup[i];
|
|
1087
|
+
|
|
1088
|
+
for (const [_key, argMetadata] of Object.entries(argumentsMetadata)) {
|
|
1089
|
+
switch (argMetadata.type) {
|
|
1090
|
+
case requestArgsKey:
|
|
1091
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1092
|
+
? request
|
|
1093
|
+
: await argumentsResolution(
|
|
1094
|
+
request,
|
|
1095
|
+
argMetadata.zodSchema,
|
|
1096
|
+
argMetadata.index,
|
|
1097
|
+
functionName
|
|
1098
|
+
);
|
|
1099
|
+
break;
|
|
1100
|
+
case requestBodyArgsKey:
|
|
1101
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1102
|
+
? await request[argMetadata.parser || "json"]()
|
|
1103
|
+
: await argumentsResolution(
|
|
1104
|
+
await request[argMetadata.parser || "json"](),
|
|
1105
|
+
argMetadata.zodSchema,
|
|
1106
|
+
argMetadata.index,
|
|
1107
|
+
functionName
|
|
1108
|
+
);
|
|
1109
|
+
break;
|
|
1110
|
+
case contextArgsKey:
|
|
1111
|
+
args[argMetadata.index] = !argMetadata.key
|
|
1112
|
+
? contextHook
|
|
1113
|
+
: contextHook.get(argMetadata.key);
|
|
1114
|
+
break;
|
|
1115
|
+
case requestHeadersArgsKey:
|
|
1116
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1117
|
+
? request.headers
|
|
1118
|
+
: await argumentsResolution(
|
|
1119
|
+
request.headers.toJSON(),
|
|
1120
|
+
argMetadata.zodSchema,
|
|
1121
|
+
argMetadata.index,
|
|
1122
|
+
functionName
|
|
1123
|
+
);
|
|
1124
|
+
break;
|
|
1125
|
+
case responseHeadersArgsKey:
|
|
1126
|
+
args[argMetadata.index] = context[argMetadata.type];
|
|
1127
|
+
break;
|
|
1128
|
+
case requestHeaderArgsKey:
|
|
1129
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1130
|
+
? request.headers.get(argMetadata.key) || undefined
|
|
1131
|
+
: await argumentsResolution(
|
|
1132
|
+
request.headers.get(argMetadata.key) || undefined,
|
|
1133
|
+
argMetadata.zodSchema,
|
|
1134
|
+
argMetadata.index,
|
|
1135
|
+
functionName
|
|
1136
|
+
);
|
|
1137
|
+
break;
|
|
1138
|
+
case paramArgsKey:
|
|
1139
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1140
|
+
? context[paramsArgsKey][argMetadata.key] || undefined
|
|
1141
|
+
: await argumentsResolution(
|
|
1142
|
+
context[paramsArgsKey][argMetadata.key],
|
|
1143
|
+
argMetadata.zodSchema,
|
|
1144
|
+
argMetadata.index,
|
|
1145
|
+
functionName
|
|
1146
|
+
);
|
|
1147
|
+
break;
|
|
1148
|
+
case routeModelArgsKey:
|
|
1149
|
+
args[argMetadata.index] = context[routeModelArgsKey];
|
|
1150
|
+
break;
|
|
1151
|
+
default:
|
|
1152
|
+
args[argMetadata.index] = !argMetadata.zodSchema
|
|
1153
|
+
? !(argMetadata.type in context)
|
|
1154
|
+
? undefined
|
|
1155
|
+
: context[argMetadata.type]
|
|
1156
|
+
: await argumentsResolution(
|
|
1157
|
+
!(argMetadata.type in context)
|
|
1158
|
+
? undefined
|
|
1159
|
+
: context[argMetadata.type],
|
|
1160
|
+
argMetadata.zodSchema,
|
|
1161
|
+
argMetadata.index,
|
|
1162
|
+
functionName
|
|
1163
|
+
);
|
|
1164
|
+
break;
|
|
1163
1165
|
}
|
|
1164
1166
|
}
|
|
1165
1167
|
|
|
1166
|
-
context[responseBodyArgsKey] = await
|
|
1168
|
+
context[responseBodyArgsKey] = await handler(...args);
|
|
1167
1169
|
|
|
1168
1170
|
if (context[responseBodyArgsKey] instanceof Response) {
|
|
1169
1171
|
return responseConverter(context[responseBodyArgsKey]);
|