Respect NO_COLOR in TypeScript output (#1736)

This commit is contained in:
Bartek Iwańczuk 2019-02-11 00:19:31 +01:00 committed by Ryan Dahl
parent fe8c5d358b
commit 1e837f3281
3 changed files with 9 additions and 4 deletions

View file

@ -68,6 +68,7 @@ interface Ts {
createLanguageService: typeof ts.createLanguageService;
/* tslint:disable-next-line:max-line-length */
formatDiagnosticsWithColorAndContext: typeof ts.formatDiagnosticsWithColorAndContext;
formatDiagnostics: typeof ts.formatDiagnostics;
}
/** A simple object structure for caching resolved modules and their contents.
@ -344,10 +345,10 @@ class Compiler implements ts.LanguageServiceHost, ts.FormatDiagnosticsHost {
...service.getSemanticDiagnostics(fileName)
];
if (diagnostics.length > 0) {
const errMsg = this._ts.formatDiagnosticsWithColorAndContext(
diagnostics,
this
);
const errMsg = os.noColor
? this._ts.formatDiagnostics(diagnostics, this)
: this._ts.formatDiagnosticsWithColorAndContext(diagnostics, this);
console.log(errMsg);
// All TypeScript errors are terminal for deno
this._os.exit(1);

View file

@ -308,6 +308,9 @@ const tsMock = {
createLanguageService() {
return {} as any;
},
formatDiagnostics(diagnostics: ReadonlyArray<any>, _host: any): string {
return JSON.stringify(diagnostics.map(({ messageText }) => messageText));
},
formatDiagnosticsWithColorAndContext(
diagnostics: ReadonlyArray<any>,
_host: any

View file

@ -264,6 +264,7 @@ export default function makeConfig(commandOptions) {
// bundle
[typescriptPath]: [
"createLanguageService",
"formatDiagnostics",
"formatDiagnosticsWithColorAndContext",
"ModuleKind",
"ScriptKind",