From 5777eba18e3ebc290ef971c1005ac745818e7352 Mon Sep 17 00:00:00 2001 From: BradfordMedeiros Date: Mon, 29 May 2017 03:44:45 -0700 Subject: [PATCH] better error handling --- src/startServer.js | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/startServer.js b/src/startServer.js index b305c88..2c5fb62 100644 --- a/src/startServer.js +++ b/src/startServer.js @@ -49,7 +49,23 @@ const readSSLOptions = sslOpts => ({ cert: fs.readFileSync(path.resolve(opts.sslcert)), }); -const startServer = (theArgs, { onConnectionAccepted, onServerListen, onTerminalStart, onTerminalExit }) => { +const tryTerminalAction = (action, onTerminalError) => { + try{ + action(); + }catch(err){ + if (onTerminalError){ + onTerminalError(err); + } + } +}; + +const startServer = (theArgs, { + onConnectionAccepted, + onServerListen, + onTerminalStart, + onTerminalExit , + onTerminalError, +}) => { const app = createRoutes(); let httpserv; @@ -81,15 +97,21 @@ const startServer = (theArgs, { onConnectionAccepted, onServerListen, onTerminal } }); socket.on('resize', (data) => { - term.resize(data.col, data.row); + tryTerminalAction(() => { + term.resize(data.col, data.row); + }, onTerminalError) }); socket.on('input', (data) => { - term.write(data); + tryTerminalAction(() => { + term.write(data); + }, onTerminalError) }); socket.on('disconnect', () => { - term.end(); + tryTerminalAction(() => { + term.end(); + }, onTerminalError) }); - }) + }); return httpserv; };