From f04c7ed8334b933d104734ab32a1660ececeefad Mon Sep 17 00:00:00 2001 From: Orta Therox Date: Thu, 1 Aug 2019 17:36:09 -0400 Subject: [PATCH] Supress console.log & others inside the TS Server runtime so that language service plugins don't accidentally use them and kill the server - fixes #31209 --- src/tsserver/server.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/tsserver/server.ts b/src/tsserver/server.ts index a9fbf2f3b6..e1a9e3bb71 100644 --- a/src/tsserver/server.ts +++ b/src/tsserver/server.ts @@ -970,4 +970,12 @@ namespace ts.server { if (ts.sys.tryEnableSourceMapsForHost && /^development$/i.test(ts.sys.getEnvironmentVariable("NODE_ENV"))) { ts.sys.tryEnableSourceMapsForHost(); } + + // Overwrites the current console messages to instead write to + // the log. This is so that language service plugins which use + // console.log don't break the message passing between tsserver + // and the client + console.log = (msg) => logger.msg(msg, Msg.Info); + console.warn = (msg) => logger.msg(msg, Msg.Err); + console.error = (msg) => logger.msg(msg, Msg.Err); }