SamuelGalaxys's picture
Upload 1921 files
e4a10af
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("util");
const verror_1 = require("verror");
const VError = require("verror");
function subinspect(obj, options) {
options = Object.assign({}, options, { depth: options.depth == null ? null : options.depth - 1 });
return util_1.inspect(obj, options);
}
class PrettyVError extends VError {
static errorFromList(errors) {
switch (errors.length) {
case 0: return null;
case 1: return errors[0];
default: return new PrettyMultiError(errors);
}
}
constructor(...params) {
super(...params);
this._ownStack = this.stack;
Object.defineProperty(this, "stack", {
get() {
return this[util_1.inspect.custom]();
},
set(stack) {
this._ownStack = stack;
},
configurable: true
});
}
[util_1.inspect.custom](depth = util_1.inspect.defaultOptions.depth || 2, options = Object.assign({ stylize(s) { return s; } }, util_1.inspect.defaultOptions)) {
if (depth < 0)
return this.toString();
const cause = this.cause();
return `${this._ownStack}${cause ? `\ncaused by: ${subinspect(cause, options)}` : ""}`;
}
}
exports.PrettyVError = PrettyVError;
PrettyVError.prototype.name = Error.prototype.name;
PrettyVError.prototype.toString = Error.prototype.toString;
class PrettyMultiError extends verror_1.MultiError {
constructor(errors) {
super(errors);
this._ownStack = this.stack;
Object.defineProperty(this, "stack", {
get() {
return this[util_1.inspect.custom]();
},
set(stack) {
this._ownStack = stack;
},
configurable: true
});
}
[util_1.inspect.custom](depth = util_1.inspect.defaultOptions.depth || 2, options = Object.assign({ stylize(s) { return s; } }, util_1.inspect.defaultOptions)) {
if (depth < 0)
return options.stylize(this.toString(), "special");
const errors = this.errors();
switch (errors.length) {
case 0: return `${this.toString()} (empty)`;
case 1: return util_1.inspect(errors[0]);
default: return `${errors.length} errors:\n${errors.map((error, errorIndex) => {
const isLastError = errorIndex + 1 === errors.length;
const formattedError = util_1.inspect(error, Object.assign({}, options, { depth: options.depth == null ? null : options.depth - 1 }));
let lines = formattedError.split(/\r\n|\r|\n/);
const firstLinePrefix = isLastError ? "β””" : "β”œ";
const restLinePrefix = isLastError ? " " : "β”‚";
lines = lines.map((line, lineIndex) => {
const isFirstLine = lineIndex === 0;
return `${isFirstLine ? firstLinePrefix : restLinePrefix} ${line}`;
});
return lines.join("\n");
}).join("\n")}`;
}
}
}
exports.PrettyMultiError = PrettyMultiError;
PrettyMultiError.prototype.name = Error.prototype.name;
PrettyMultiError.prototype.toString = Error.prototype.toString;
//# sourceMappingURL=format-verror.js.map