diff options
Diffstat (limited to 'cli/tsc/99_main_compiler.js')
-rw-r--r-- | cli/tsc/99_main_compiler.js | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/cli/tsc/99_main_compiler.js b/cli/tsc/99_main_compiler.js index 14fcfa2bc..b50e32c76 100644 --- a/cli/tsc/99_main_compiler.js +++ b/cli/tsc/99_main_compiler.js @@ -511,15 +511,23 @@ delete Object.prototype.__proto__; } case "getDiagnostics": { try { - const diagnostics = [ - ...languageService.getSemanticDiagnostics(request.specifier), - ...languageService.getSuggestionDiagnostics(request.specifier), - ...languageService.getSyntacticDiagnostics(request.specifier), - ].filter(({ code }) => !IGNORED_DIAGNOSTICS.includes(code)); - return respond(id, fromTypeScriptDiagnostic(diagnostics)); + /** @type {Record<string, any[]>} */ + const diagnosticMap = {}; + for (const specifier of request.specifiers) { + diagnosticMap[specifier] = fromTypeScriptDiagnostic([ + ...languageService.getSemanticDiagnostics(specifier), + ...languageService.getSuggestionDiagnostics(specifier), + ...languageService.getSyntacticDiagnostics(specifier), + ].filter(({ code }) => !IGNORED_DIAGNOSTICS.includes(code))); + } + return respond(id, diagnosticMap); } catch (e) { - error(e); - return respond(id, []); + if ("stack" in e) { + error(e.stack); + } else { + error(e); + } + return respond(id, {}); } } case "getQuickInfo": { |