shelving
Version:
Toolkit for using data in JavaScript.
19 lines (18 loc) • 626 B
JavaScript
/** An error that provides additional helpful functionality. */
export class BaseError extends Error {
constructor(message, options) {
if (options) {
super(message, options);
const { cause, caller = BaseError, ...rest } = options;
for (const [key, value] of Object.entries(rest))
this[key] = value;
Error.captureStackTrace(this, caller);
}
else {
super(message);
Error.captureStackTrace(this, BaseError);
}
}
}
BaseError.prototype.name = "BaseError";
BaseError.prototype.message = "Unknown error";