Properly extend Error instead of implementing it, update the Error message and stack to appear in the console and error activity

This commit is contained in:
Panayot Cankov
2016-12-01 09:03:40 +02:00
committed by Vladimir Enchev
parent bc3910f9c8
commit 89ee3dc717
7 changed files with 97 additions and 120 deletions

View File

@@ -0,0 +1,22 @@
import { Source } from "./debug-common";
export * from "./debug-common";
export class ScopeError extends Error {
constructor(inner: Error, message?: string) {
let formattedMessage;
if (message && inner.message) {
formattedMessage = message + "\n > " + inner.message.replace("\n", "\n ");
} else {
formattedMessage = message || inner.message || undefined;
}
super(formattedMessage);
this.stack = "Error: " + this.message + "\n" + inner.stack.substr(inner.stack.indexOf("\n") + 1);
this.message = formattedMessage;
}
}
export class SourceError extends ScopeError {
constructor(child: Error, source: Source, message?: string) {
super(child, message ? message + " @" + source + "" : source + "");
}
}