@@ -32,7 +32,6 @@ import {
3232 NodeResponse ,
3333 normalizeNodeRequest ,
3434 sendNodeResponse ,
35- ServerAdapterRequestAbortSignal ,
3635} from './utils.js' ;
3736import {
3837 fakePromise ,
@@ -319,7 +318,7 @@ function createServerAdapter<
319318 ? completeAssign ( defaultServerContext , ...ctx )
320319 : defaultServerContext ;
321320
322- const signal = new ServerAdapterRequestAbortSignal ( ) ;
321+ const controller = new AbortController ( ) ;
323322 const originalResEnd = res . end . bind ( res ) ;
324323 let resEnded = false ;
325324 res . end = function ( data : any ) {
@@ -328,16 +327,16 @@ function createServerAdapter<
328327 } ;
329328 const originalOnAborted = res . onAborted . bind ( res ) ;
330329 originalOnAborted ( function ( ) {
331- signal . sendAbort ( ) ;
330+ controller . abort ( ) ;
332331 } ) ;
333332 res . onAborted = function ( cb : ( ) => void ) {
334- signal . addEventListener ( 'abort' , cb ) ;
333+ controller . signal . addEventListener ( 'abort' , cb , { once : true } ) ;
335334 } ;
336335 const request = getRequestFromUWSRequest ( {
337336 req,
338337 res,
339338 fetchAPI,
340- signal ,
339+ controller ,
341340 } ) ;
342341 let response$ : Response | Promise < Response > | undefined ;
343342 try {
@@ -349,8 +348,8 @@ function createServerAdapter<
349348 return response$
350349 . catch ( ( e : any ) => handleErrorFromRequestHandler ( e , fetchAPI . Response ) )
351350 . then ( response => {
352- if ( ! signal . aborted && ! resEnded ) {
353- return sendResponseToUwsOpts ( res , response , signal , fetchAPI ) ;
351+ if ( ! controller . signal . aborted && ! resEnded ) {
352+ return sendResponseToUwsOpts ( res , response , controller , fetchAPI ) ;
354353 }
355354 } )
356355 . catch ( err => {
@@ -360,8 +359,8 @@ function createServerAdapter<
360359 } ) ;
361360 }
362361 try {
363- if ( ! signal . aborted && ! resEnded ) {
364- return sendResponseToUwsOpts ( res , response$ , signal , fetchAPI ) ;
362+ if ( ! controller . signal . aborted && ! resEnded ) {
363+ return sendResponseToUwsOpts ( res , response$ , controller , fetchAPI ) ;
365364 }
366365 } catch ( err : any ) {
367366 console . error (
@@ -406,13 +405,17 @@ function createServerAdapter<
406405 if ( isRequestInit ( initOrCtx ) ) {
407406 const request = new fetchAPI . Request ( input , initOrCtx ) ;
408407 const res$ = handleRequestWithWaitUntil ( request , ...restOfCtx ) ;
409- return handleAbortSignalAndPromiseResponse ( res$ , ( initOrCtx as RequestInit ) ?. signal ) ;
408+ const signal = ( initOrCtx as RequestInit ) . signal ;
409+ if ( signal ) {
410+ return handleAbortSignalAndPromiseResponse ( res$ , signal ) ;
411+ }
412+ return res$ ;
410413 }
411414 const request = new fetchAPI . Request ( input ) ;
412415 return handleRequestWithWaitUntil ( request , ...maybeCtx ) ;
413416 }
414417 const res$ = handleRequestWithWaitUntil ( input , ...maybeCtx ) ;
415- return handleAbortSignalAndPromiseResponse ( res$ , ( input as any ) . _signal ) ;
418+ return handleAbortSignalAndPromiseResponse ( res$ , input . signal ) ;
416419 } ;
417420
418421 const genericRequestHandler = (
0 commit comments