84 lines
3.2 KiB
JavaScript
84 lines
3.2 KiB
JavaScript
"use strict";
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
var __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
var __publicField = (obj, key, value) => {
|
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
return value;
|
|
};
|
|
var GhostError_exports = {};
|
|
__export(GhostError_exports, {
|
|
GhostError: () => GhostError
|
|
});
|
|
module.exports = __toCommonJS(GhostError_exports);
|
|
var import_uuid = require("uuid");
|
|
var import_wrap_stack = require("./wrap-stack");
|
|
class GhostError extends Error {
|
|
constructor(options = {}) {
|
|
super();
|
|
__publicField(this, "statusCode");
|
|
__publicField(this, "errorType");
|
|
__publicField(this, "level");
|
|
__publicField(this, "id");
|
|
__publicField(this, "context");
|
|
__publicField(this, "help");
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
__publicField(this, "errorDetails");
|
|
__publicField(this, "code");
|
|
__publicField(this, "property");
|
|
__publicField(this, "redirect");
|
|
__publicField(this, "hideStack");
|
|
this.statusCode = 500;
|
|
this.errorType = "InternalServerError";
|
|
this.level = "normal";
|
|
this.message = "The server has encountered an error.";
|
|
this.id = (0, import_uuid.v1)();
|
|
this.id = options.id || this.id;
|
|
this.statusCode = options.statusCode || this.statusCode;
|
|
this.level = options.level || this.level;
|
|
this.context = options.context;
|
|
this.help = options.help;
|
|
this.errorType = this.name = options.errorType || this.errorType;
|
|
this.errorDetails = options.errorDetails;
|
|
this.code = options.code || null;
|
|
this.property = options.property || null;
|
|
this.redirect = options.redirect || null;
|
|
this.message = options.message || this.message;
|
|
this.hideStack = options.hideStack || false;
|
|
if (options.err) {
|
|
if (typeof options.err === "string") {
|
|
options.err = new Error(options.err);
|
|
}
|
|
Object.getOwnPropertyNames(options.err).forEach((property) => {
|
|
if (["errorType", "name", "statusCode", "message", "level"].indexOf(property) !== -1) {
|
|
return;
|
|
}
|
|
if (property === "code") {
|
|
this[property] = this[property] || options.err[property];
|
|
return;
|
|
}
|
|
if (property === "stack" && !this.hideStack) {
|
|
this[property] = (0, import_wrap_stack.wrapStack)(this, options.err);
|
|
return;
|
|
}
|
|
this[property] = options.err[property] || this[property];
|
|
});
|
|
}
|
|
}
|
|
}
|