File tree 3 files changed +17
-1
lines changed
3 files changed +17
-1
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' astro ' : patch
3
+ ---
4
+
5
+ Fix bug causing ` astro preview ` server to close immediately
Original file line number Diff line number Diff line change @@ -138,7 +138,8 @@ export async function cli(args: string[]) {
138
138
139
139
case 'preview' : {
140
140
try {
141
- return await preview ( config , { logging } ) ; // this will keep running
141
+ const server = await preview ( config , { logging } ) ;
142
+ return await server . closed ( ) ; // keep alive until the server is closed
142
143
} catch ( err ) {
143
144
return throwAndExit ( err ) ;
144
145
}
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ export interface PreviewServer {
18
18
host ?: string ;
19
19
port : number ;
20
20
server : http . Server ;
21
+ closed ( ) : Promise < void > ;
21
22
stop ( ) : Promise < void > ;
22
23
}
23
24
@@ -133,9 +134,18 @@ export default async function preview(
133
134
// Start listening on `hostname:port`.
134
135
await startServer ( startServerTime ) ;
135
136
137
+ // Resolves once the server is closed
138
+ function closed ( ) {
139
+ return new Promise < void > ( ( resolve , reject ) => {
140
+ httpServer ! . addListener ( 'close' , resolve ) ;
141
+ httpServer ! . addListener ( 'error' , reject ) ;
142
+ } )
143
+ }
144
+
136
145
return {
137
146
host,
138
147
port,
148
+ closed,
139
149
server : httpServer ! ,
140
150
stop : async ( ) => {
141
151
await new Promise ( ( resolve , reject ) => {
You can’t perform that action at this time.
0 commit comments