@@ -227,7 +227,11 @@ export class MockttpStandalone {
227
227
const mockServerRouter = express . Router ( ) ;
228
228
this . routers [ mockPort ] = mockServerRouter ;
229
229
230
- mockServerRouter . post ( '/stop' , async ( req , res ) => {
230
+ let running = true ;
231
+ const stopServer = async ( ) => {
232
+ if ( ! running ) return ;
233
+ running = false ;
234
+
231
235
await mockServer . stop ( ) ;
232
236
233
237
this . mockServers = _ . reject ( this . mockServers , mockServer ) ;
@@ -239,7 +243,10 @@ export class MockttpStandalone {
239
243
this . streamServers [ mockPort ] . close ( ) ;
240
244
this . streamServers [ mockPort ] . emit ( 'close' ) ;
241
245
delete this . streamServers [ mockPort ] ;
246
+ } ;
242
247
248
+ mockServerRouter . post ( '/stop' , async ( req , res ) => {
249
+ await stopServer ( ) ;
243
250
res . status ( 200 ) . send ( JSON . stringify ( {
244
251
success : true
245
252
} ) ) ;
@@ -269,6 +276,15 @@ export class MockttpStandalone {
269
276
serverSocket . end ( ) ;
270
277
} ) ;
271
278
279
+ // Handle errors by logging & stopping this server instance
280
+ const onStreamError = ( e : Error ) => {
281
+ console . error ( "Error in server standalone stream, shutting down mock server" ) ;
282
+ console . error ( e ) ;
283
+ stopServer ( ) ;
284
+ } ;
285
+ wsSocket . on ( 'error' , onStreamError ) ;
286
+ serverSocket . on ( 'error' , onStreamError ) ;
287
+
272
288
const schema = await this . loadSchema ( 'schema.gql' , mockServer , serverSocket ) ;
273
289
274
290
this . subscriptionServers [ mockPort ] = SubscriptionServer . create ( {
0 commit comments