@@ -38,7 +38,10 @@ export function createBaseHandler(
3838 if ( pathname . startsWith ( serverFunctionTest ) ) {
3939 const serverFnResponse = await handleServerFunction ( e ) ;
4040
41- if ( serverFnResponse instanceof Response ) return serverFnResponse ;
41+ if ( serverFnResponse instanceof Response ) {
42+ writeEventResponseHeaders ( serverFnResponse . headers )
43+ return serverFnResponse ;
44+ }
4245
4346 return new Response ( serverFnResponse as any , {
4447 headers : e . res . headers ,
@@ -56,7 +59,11 @@ export function createBaseHandler(
5659 // @ts -expect-error
5760 sharedConfig . context = { event } ;
5861 const res = await fn ! ( event ) ;
59- if ( res !== undefined ) return res ;
62+ if ( res !== undefined ) {
63+ if ( res instanceof Response ) writeEventResponseHeaders ( res . headers )
64+
65+ return res ;
66+ }
6067 if ( event . request . method !== "GET" ) {
6168 throw new Error (
6269 `API handler for ${ event . request . method } "${ event . request . url } " did not return a response.` ,
@@ -222,3 +229,11 @@ function handleStreamCompleteRedirect(context: PageEvent) {
222229 to && write ( `<script>window.location="${ to } "</script>` ) ;
223230 } ;
224231}
232+
233+ function writeEventResponseHeaders ( target : Headers ) {
234+ const event = getRequestEvent ( ) ! ;
235+
236+ for ( const [ name , value ] of event . response . headers ) {
237+ if ( ! target . has ( name ) ) target . set ( name , value ) ;
238+ }
239+ }
0 commit comments