11import { customErrorTypes } from "~/types/error" ;
22import type { HttpMethod } from "~/types/http" ;
33import type { RouteHandler , RouteMethodHandler } from "~/types/next" ;
4- import type { ResponseDefinition } from "~/types/response" ;
4+ import type { ResponseCollection } from "~/types/response" ;
55import { parseRequestBody , resolveRequestBody } from "./body" ;
66import { resolveParams } from "./params" ;
77import parsePathParams from "./path-params" ;
@@ -40,6 +40,7 @@ type RouteOptions<
4040 RequestBodyOutput ,
4141 Req extends Request ,
4242 Res extends Response ,
43+ ResponseDefinitions extends Record < string , unknown > ,
4344> = {
4445 operationId : string ,
4546 method : Method ,
@@ -52,7 +53,7 @@ type RouteOptions<
5253 source : ActionSource < PathParamsOutput , QueryParamsOutput , RequestBodyOutput > ,
5354 request : Req
5455 ) => Res | Promise < Res > ,
55- responses : Record < string , ResponseDefinition > ,
56+ responses : ResponseCollection < ResponseDefinitions > ,
5657 handleErrors ?: (
5758 errorType : typeof customErrorTypes [ number ] | "UNKNOWN_ERROR" ,
5859 issues ?: ZodIssue [ ]
@@ -64,9 +65,18 @@ type RouteOptions<
6465} & ( RouteWithBody < RequestBodyInput , RequestBodyOutput > | RouteWithoutBody ) ;
6566
6667function defineRoute <
67- M extends HttpMethod , PPI , PPO , QPI , QPO , RBI , RBO , MwReq extends Request , MwRes extends Response ,
68+ M extends HttpMethod ,
69+ PPI ,
70+ PPO ,
71+ QPI ,
72+ QPO ,
73+ RBI ,
74+ RBO ,
75+ MwReq extends Request ,
76+ MwRes extends Response ,
77+ ResDef extends Record < string , unknown > ,
6878> ( input : RouteOptions <
69- M , PPI , PPO , QPI , QPO , RBI , RBO , MwReq , MwRes
79+ M , PPI , PPO , QPI , QPO , RBI , RBO , MwReq , MwRes , ResDef
7080> ) {
7181 const handler : RouteMethodHandler < PPI , MwReq , MwRes > = async ( request , context ) => {
7282 try {
0 commit comments