summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime.ts22
1 files changed, 20 insertions, 2 deletions
diff --git a/runtime.ts b/runtime.ts
index 1e031e7f7..b805259ca 100644
--- a/runtime.ts
+++ b/runtime.ts
@@ -10,6 +10,8 @@ import * as util from "./util";
import { log } from "./util";
import * as os from "./os";
+const EOL = "\n";
+
// This class represents a module. We call it FileModule to make it explicit
// that each module represents a single file.
// Access to FileModule instances should only be done thru the static method
@@ -151,7 +153,12 @@ class Compiler {
.concat(this.service.getSyntacticDiagnostics(fileName))
.concat(this.service.getSemanticDiagnostics(fileName));
if (diagnostics.length > 0) {
- throw Error("diagnotics");
+ const errMsg = ts.formatDiagnosticsWithColorAndContext(
+ diagnostics,
+ formatDiagnosticsHost
+ );
+ console.log(errMsg);
+ os.exit(1);
}
util.log("compile output", output);
@@ -199,7 +206,6 @@ class TypeScriptHost implements ts.LanguageServiceHost {
}
getNewLine() {
- const EOL = "\n";
return EOL;
}
@@ -242,3 +248,15 @@ class TypeScriptHost implements ts.LanguageServiceHost {
});
}
}
+
+const formatDiagnosticsHost: ts.FormatDiagnosticsHost = {
+ getCurrentDirectory(): string {
+ return ".";
+ },
+ getCanonicalFileName(fileName: string): string {
+ return fileName;
+ },
+ getNewLine(): string {
+ return EOL;
+ }
+};