enolib
Version:
The eno standard library
42 lines (33 loc) • 812 B
JavaScript
class EnoError extends Error {
constructor(text, snippet, selection) {
super(`${text}\n\n${snippet}`);
this.selection = selection;
this.snippet = snippet;
this.text = text;
if(Error.captureStackTrace) {
Error.captureStackTrace(this, EnoError);
}
}
get cursor() {
return this.selection.from;
}
}
class ParseError extends EnoError {
constructor(...args) {
super(...args);
if(Error.captureStackTrace) {
Error.captureStackTrace(this, ParseError);
}
}
}
class ValidationError extends EnoError {
constructor(...args) {
super(...args);
if(Error.captureStackTrace) {
Error.captureStackTrace(this, ValidationError);
}
}
}
exports.EnoError = EnoError;
exports.ParseError = ParseError;
exports.ValidationError = ValidationError;