From f04c7ed8334b933d104734ab32a1660ececeefad Mon Sep 17 00:00:00 2001 From: Orta Therox Date: Thu, 1 Aug 2019 17:36:09 -0400 Subject: [PATCH 1/2] 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 a9fbf2f3b6a..e1a9e3bb71f 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); } From f8b7a0577794f2e0755b67ac90a36046e605bade Mon Sep 17 00:00:00 2001 From: Orta Therox Date: Tue, 6 Aug 2019 14:09:37 -0400 Subject: [PATCH 2/2] Handle the variadic args for inline console.logs --- src/tsserver/server.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tsserver/server.ts b/src/tsserver/server.ts index e1a9e3bb71f..fcd176ef661 100644 --- a/src/tsserver/server.ts +++ b/src/tsserver/server.ts @@ -975,7 +975,7 @@ namespace ts.server { // 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); + console.log = (...args) => logger.msg(args.length === 1 ? args[0] : args.join(", "), Msg.Info); + console.warn = (...args) => logger.msg(args.length === 1 ? args[0] : args.join(", "), Msg.Err); + console.error = (...args) => logger.msg(args.length === 1 ? args[0] : args.join(", "), Msg.Err); }