@@ -403,7 +403,7 @@ function externalPreviewServer(
403403) : Promise < PreviewServer > {
404404 // run a control channel server for handling render requests
405405 // if there was a renderToken() passed
406- let controlListener : Deno . Listener | undefined ;
406+ let stop : ( ) => void | undefined ;
407407 if ( renderToken ( ) ) {
408408 const outputDir = projectOutputDir ( project ) ;
409409 const handlerOptions : HttpFileRequestOptions = {
@@ -425,12 +425,12 @@ function externalPreviewServer(
425425
426426 const handler = httpFileRequestHandler ( handlerOptions ) ;
427427 const port = findOpenPort ( ) ;
428- controlListener = Deno . listen ( { port , hostname : kLocalhost } ) ;
429- handleHttpRequests ( controlListener , handler ) . then ( ( ) => {
430- // terminanted
431- } ) . catch ( ( _error ) => {
432- // ignore errors
433- } ) ;
428+ ( { stop } = handleHttpRequests ( {
429+ port ,
430+ hostname : kLocalhost ,
431+ handler ,
432+ } ) ) ;
433+ // .abortController ;
434434 info ( `Preview service running (${ port } )` ) ;
435435 }
436436
@@ -467,9 +467,7 @@ function externalPreviewServer(
467467 return server . serve ( ) ;
468468 } ,
469469 stop : ( ) => {
470- if ( controlListener ) {
471- controlListener . close ( ) ;
472- }
470+ stop ?.( ) ;
473471 return server . stop ( ) ;
474472 } ,
475473 } ) ;
@@ -772,15 +770,21 @@ async function internalPreviewServer(
772770 const path = ( targetPath && targetPath !== "index.html" ) ? targetPath : "" ;
773771
774772 // start listening
775- const listener = Deno . listen ( { port : options . port ! , hostname : options . host } ) ;
773+ let stop : ( ) => void | undefined ;
776774
777775 return {
778776 start : ( ) => Promise . resolve ( path ) ,
779777 serve : async ( ) => {
780- await handleHttpRequests ( listener , handler ) ;
778+ const { server, stop : stopServer } = handleHttpRequests ( {
779+ port : options . port ! ,
780+ hostname : options . host ,
781+ handler,
782+ } ) ;
783+ stop = stopServer ;
784+ await server . finished ;
781785 } ,
782786 stop : ( ) => {
783- listener . close ( ) ;
787+ stop ?. ( ) ;
784788 return Promise . resolve ( ) ;
785789 } ,
786790 } ;
0 commit comments