@@ -227,7 +227,11 @@ export class MockttpStandalone {
227227 const mockServerRouter = express . Router ( ) ;
228228 this . routers [ mockPort ] = mockServerRouter ;
229229
230- mockServerRouter . post ( '/stop' , async ( req , res ) => {
230+ let running = true ;
231+ const stopServer = async ( ) => {
232+ if ( ! running ) return ;
233+ running = false ;
234+
231235 await mockServer . stop ( ) ;
232236
233237 this . mockServers = _ . reject ( this . mockServers , mockServer ) ;
@@ -239,7 +243,10 @@ export class MockttpStandalone {
239243 this . streamServers [ mockPort ] . close ( ) ;
240244 this . streamServers [ mockPort ] . emit ( 'close' ) ;
241245 delete this . streamServers [ mockPort ] ;
246+ } ;
242247
248+ mockServerRouter . post ( '/stop' , async ( req , res ) => {
249+ await stopServer ( ) ;
243250 res . status ( 200 ) . send ( JSON . stringify ( {
244251 success : true
245252 } ) ) ;
@@ -269,6 +276,15 @@ export class MockttpStandalone {
269276 serverSocket . end ( ) ;
270277 } ) ;
271278
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+
272288 const schema = await this . loadSchema ( 'schema.gql' , mockServer , serverSocket ) ;
273289
274290 this . subscriptionServers [ mockPort ] = SubscriptionServer . create ( {
0 commit comments