@@ -65,7 +65,11 @@ export const route = <T extends Record<string, RouteOperationDefinition>>(
6565 let middlewareOptions : BaseOptions = { } ;
6666
6767 if ( middleware1 ) {
68- const res = await middleware1 ( reqClone , { ...context , params : await context . params } , middlewareOptions ) ;
68+ const res = await middleware1 (
69+ reqClone ,
70+ { ...context , params : await context . params } ,
71+ middlewareOptions
72+ ) ;
6973
7074 const isOptionsResponse = ( res : unknown ) : res is BaseOptions =>
7175 typeof res === 'object' ;
@@ -77,7 +81,11 @@ export const route = <T extends Record<string, RouteOperationDefinition>>(
7781 }
7882
7983 if ( middleware2 ) {
80- const res2 = await middleware2 ( reqClone , { ...context , params : await context . params } , middlewareOptions ) ;
84+ const res2 = await middleware2 (
85+ reqClone ,
86+ { ...context , params : await context . params } ,
87+ middlewareOptions
88+ ) ;
8189
8290 if ( res2 instanceof Response ) {
8391 return res2 ;
@@ -88,7 +96,7 @@ export const route = <T extends Record<string, RouteOperationDefinition>>(
8896 if ( middleware3 ) {
8997 const res3 = await middleware3 (
9098 reqClone ,
91- { ...context , params : await context . params } ,
99+ { ...context , params : await context . params } ,
92100 middlewareOptions
93101 ) ;
94102
@@ -165,16 +173,16 @@ export const route = <T extends Record<string, RouteOperationDefinition>>(
165173 try {
166174 const formData = await reqClone . formData ( ) ;
167175
168- const { valid , errors , data } = validateSchema ( {
176+ const result = validateSchema ( {
169177 schema : bodySchema ,
170178 obj : formData
171179 } ) ;
172180
173- if ( ! valid ) {
181+ if ( ! result . valid ) {
174182 return NextResponse . json (
175183 {
176184 message : DEFAULT_ERRORS . invalidRequestBody ,
177- errors
185+ errors : result . errors
178186 } ,
179187 {
180188 status : 400
@@ -186,14 +194,16 @@ export const route = <T extends Record<string, RouteOperationDefinition>>(
186194 reqClone = new NextRequest ( reqClone . url , {
187195 method : reqClone . method ,
188196 headers : reqClone . headers ,
189- body : JSON . stringify ( data )
197+ body : JSON . stringify ( result . data )
190198 } ) ;
191199
192200 // Return parsed form data.
193201 reqClone . formData = async ( ) => {
194202 const formData = new FormData ( ) ;
195203
196- for ( const [ key , value ] of Object . entries ( data ) ) {
204+ for ( const [ key , value ] of Object . entries (
205+ result . data as Record < string , unknown >
206+ ) ) {
197207 formData . append ( key , value as string | Blob ) ;
198208 }
199209
@@ -239,7 +249,7 @@ export const route = <T extends Record<string, RouteOperationDefinition>>(
239249 url . searchParams . delete ( key ) ;
240250
241251 if ( data [ key ] ) {
242- url . searchParams . append ( key , data [ key ] ) ;
252+ url . searchParams . append ( key , data [ key ] as string ) ;
243253 }
244254 } ) ;
245255
@@ -268,13 +278,13 @@ export const route = <T extends Record<string, RouteOperationDefinition>>(
268278 ) ;
269279 }
270280
271- context . params = data ;
281+ context . params = Promise . resolve ( data ) ;
272282 }
273283 }
274284
275285 const res = await handler ?.(
276286 reqClone as TypedNextRequest ,
277- { ...context , params : await context . params } ,
287+ { ...context , params : await context . params } ,
278288 middlewareOptions
279289 ) ;
280290
0 commit comments