@@ -71,6 +71,19 @@ import {
7171 resolvePrefixedPath ,
7272} from './utils.js' ;
7373
74+ type MiddlewareOrHandler <
75+ TReqBody = never ,
76+ TResBody extends HandlerResponse = HandlerResponse ,
77+ > = Middleware [ ] | RouteHandler | TypedRouteHandler < TReqBody , TResBody > ;
78+
79+ type HandlerOrOptions <
80+ TReqBody = never ,
81+ TResBody extends HandlerResponse = HandlerResponse ,
82+ > =
83+ | RouteHandler
84+ | TypedRouteHandler < TReqBody , TResBody >
85+ | { validation : ValidationConfig < TReqBody , TResBody > } ;
86+
7487class Router {
7588 protected context : Record < string , unknown > ;
7689
@@ -589,14 +602,8 @@ class Router {
589602 > (
590603 method : HttpMethod ,
591604 path : Path ,
592- middlewareOrHandler ?:
593- | Middleware [ ]
594- | RouteHandler
595- | TypedRouteHandler < TReqBody , TResBody > ,
596- handlerOrOptions ?:
597- | RouteHandler
598- | TypedRouteHandler < TReqBody , TResBody >
599- | { validation : ValidationConfig < TReqBody , TResBody > } ,
605+ middlewareOrHandler ?: MiddlewareOrHandler < TReqBody , TResBody > ,
606+ handlerOrOptions ?: HandlerOrOptions < TReqBody , TResBody > ,
600607 options ?: { validation : ValidationConfig < TReqBody , TResBody > }
601608 ) : MethodDecorator | undefined {
602609 // Case 1: method(path, [middleware], handler, { validation })
@@ -670,14 +677,8 @@ class Router {
670677 TResBody extends HandlerResponse = HandlerResponse ,
671678 > (
672679 path : Path ,
673- middlewareOrHandler ?:
674- | Middleware [ ]
675- | RouteHandler
676- | TypedRouteHandler < TReqBody , TResBody > ,
677- handlerOrOptions ?:
678- | RouteHandler
679- | TypedRouteHandler < TReqBody , TResBody >
680- | { validation : ValidationConfig < TReqBody , TResBody > } ,
680+ middlewareOrHandler ?: MiddlewareOrHandler < TReqBody , TResBody > ,
681+ handlerOrOptions ?: HandlerOrOptions < TReqBody , TResBody > ,
681682 options ?: { validation : ValidationConfig < TReqBody , TResBody > }
682683 ) : MethodDecorator | undefined {
683684 return this . #handleHttpMethod< TReqBody , TResBody > (
@@ -719,14 +720,8 @@ class Router {
719720 TResBody extends HandlerResponse = HandlerResponse ,
720721 > (
721722 path : Path ,
722- middlewareOrHandler ?:
723- | Middleware [ ]
724- | RouteHandler
725- | TypedRouteHandler < TReqBody , TResBody > ,
726- handlerOrOptions ?:
727- | RouteHandler
728- | TypedRouteHandler < TReqBody , TResBody >
729- | { validation : ValidationConfig < TReqBody , TResBody > } ,
723+ middlewareOrHandler ?: MiddlewareOrHandler < TReqBody , TResBody > ,
724+ handlerOrOptions ?: HandlerOrOptions < TReqBody , TResBody > ,
730725 options ?: { validation : ValidationConfig < TReqBody , TResBody > }
731726 ) : MethodDecorator | undefined {
732727 return this . #handleHttpMethod< TReqBody , TResBody > (
@@ -764,14 +759,8 @@ class Router {
764759 TResBody extends HandlerResponse = HandlerResponse ,
765760 > (
766761 path : Path ,
767- middlewareOrHandler ?:
768- | Middleware [ ]
769- | RouteHandler
770- | TypedRouteHandler < TReqBody , TResBody > ,
771- handlerOrOptions ?:
772- | RouteHandler
773- | TypedRouteHandler < TReqBody , TResBody >
774- | { validation : ValidationConfig < TReqBody , TResBody > } ,
762+ middlewareOrHandler ?: MiddlewareOrHandler < TReqBody , TResBody > ,
763+ handlerOrOptions ?: HandlerOrOptions < TReqBody , TResBody > ,
775764 options ?: { validation : ValidationConfig < TReqBody , TResBody > }
776765 ) : MethodDecorator | undefined {
777766 return this . #handleHttpMethod< TReqBody , TResBody > (
@@ -813,14 +802,8 @@ class Router {
813802 TResBody extends HandlerResponse = HandlerResponse ,
814803 > (
815804 path : Path ,
816- middlewareOrHandler ?:
817- | Middleware [ ]
818- | RouteHandler
819- | TypedRouteHandler < TReqBody , TResBody > ,
820- handlerOrOptions ?:
821- | RouteHandler
822- | TypedRouteHandler < TReqBody , TResBody >
823- | { validation : ValidationConfig < TReqBody , TResBody > } ,
805+ middlewareOrHandler ?: MiddlewareOrHandler < TReqBody , TResBody > ,
806+ handlerOrOptions ?: HandlerOrOptions < TReqBody , TResBody > ,
824807 options ?: { validation : ValidationConfig < TReqBody , TResBody > }
825808 ) : MethodDecorator | undefined {
826809 return this . #handleHttpMethod< TReqBody , TResBody > (
@@ -862,14 +845,8 @@ class Router {
862845 TResBody extends HandlerResponse = HandlerResponse ,
863846 > (
864847 path : Path ,
865- middlewareOrHandler ?:
866- | Middleware [ ]
867- | RouteHandler
868- | TypedRouteHandler < TReqBody , TResBody > ,
869- handlerOrOptions ?:
870- | RouteHandler
871- | TypedRouteHandler < TReqBody , TResBody >
872- | { validation : ValidationConfig < TReqBody , TResBody > } ,
848+ middlewareOrHandler ?: MiddlewareOrHandler < TReqBody , TResBody > ,
849+ handlerOrOptions ?: HandlerOrOptions < TReqBody , TResBody > ,
873850 options ?: { validation : ValidationConfig < TReqBody , TResBody > }
874851 ) : MethodDecorator | undefined {
875852 return this . #handleHttpMethod< TReqBody , TResBody > (
@@ -911,14 +888,8 @@ class Router {
911888 TResBody extends HandlerResponse = HandlerResponse ,
912889 > (
913890 path : Path ,
914- middlewareOrHandler ?:
915- | Middleware [ ]
916- | RouteHandler
917- | TypedRouteHandler < TReqBody , TResBody > ,
918- handlerOrOptions ?:
919- | RouteHandler
920- | TypedRouteHandler < TReqBody , TResBody >
921- | { validation : ValidationConfig < TReqBody , TResBody > } ,
891+ middlewareOrHandler ?: MiddlewareOrHandler < TReqBody , TResBody > ,
892+ handlerOrOptions ?: HandlerOrOptions < TReqBody , TResBody > ,
922893 options ?: { validation : ValidationConfig < TReqBody , TResBody > }
923894 ) : MethodDecorator | undefined {
924895 return this . #handleHttpMethod< TReqBody , TResBody > (
@@ -960,14 +931,8 @@ class Router {
960931 TResBody extends HandlerResponse = HandlerResponse ,
961932 > (
962933 path : Path ,
963- middlewareOrHandler ?:
964- | Middleware [ ]
965- | RouteHandler
966- | TypedRouteHandler < TReqBody , TResBody > ,
967- handlerOrOptions ?:
968- | RouteHandler
969- | TypedRouteHandler < TReqBody , TResBody >
970- | { validation : ValidationConfig < TReqBody , TResBody > } ,
934+ middlewareOrHandler ?: MiddlewareOrHandler < TReqBody , TResBody > ,
935+ handlerOrOptions ?: HandlerOrOptions < TReqBody , TResBody > ,
971936 options ?: { validation : ValidationConfig < TReqBody , TResBody > }
972937 ) : MethodDecorator | undefined {
973938 return this . #handleHttpMethod< TReqBody , TResBody > (
0 commit comments