diff --git a/src/server/server.ts b/src/server/server.ts index e29e79ac6ede1..5932fe759ca36 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -183,6 +183,11 @@ namespace ts.server { process.on("uncaughtException", function(err: Error) { ioSession.logError(err, "unknown"); }); - // Start listening - ioSession.listen(); -} \ No newline at end of file + + process.nextTick(() => { + // Start listening, but leave potential for extensions + ioSession.listen(); + }); + + module.exports = ioSession; +} diff --git a/src/server/session.ts b/src/server/session.ts index dae2384ce546d..c892cd56d304f 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -949,7 +949,7 @@ namespace ts.server { exit() { } - private handlers: Map<(request: protocol.Request) => {response?: any, responseRequired?: boolean}> = { + handlers: Map<(request: protocol.Request) => {response?: any, responseRequired?: boolean}> = { [CommandNames.Exit]: () => { this.exit(); return { responseRequired: false};