Server IP : 103.191.208.50 / Your IP : 216.73.216.226 Web Server : LiteSpeed System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64 User : celkcksm ( 1031) PHP Version : 5.6.40 Disable Function : show_source, system, shell_exec, passthru, exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /opt/bitninja-dispatcher/node_modules/make-error/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
// ISC @ Julien Fontanet "use strict"; // =================================================================== var construct = typeof Reflect !== "undefined" ? Reflect.construct : undefined; var defineProperty = Object.defineProperty; // ------------------------------------------------------------------- var captureStackTrace = Error.captureStackTrace; if (captureStackTrace === undefined) { captureStackTrace = function captureStackTrace(error) { var container = new Error(); defineProperty(error, "stack", { configurable: true, get: function getStack() { var stack = container.stack; // Replace property with value for faster future accesses. defineProperty(this, "stack", { configurable: true, value: stack, writable: true, }); return stack; }, set: function setStack(stack) { defineProperty(error, "stack", { configurable: true, value: stack, writable: true, }); }, }); }; } // ------------------------------------------------------------------- function BaseError(message) { if (message !== undefined) { defineProperty(this, "message", { configurable: true, value: message, writable: true, }); } var cname = this.constructor.name; if (cname !== undefined && cname !== this.name) { defineProperty(this, "name", { configurable: true, value: cname, writable: true, }); } captureStackTrace(this, this.constructor); } BaseError.prototype = Object.create(Error.prototype, { // See: https://github.com/JsCommunity/make-error/issues/4 constructor: { configurable: true, value: BaseError, writable: true, }, }); // ------------------------------------------------------------------- // Sets the name of a function if possible (depends of the JS engine). var setFunctionName = (function() { function setFunctionName(fn, name) { return defineProperty(fn, "name", { configurable: true, value: name, }); } try { var f = function() {}; setFunctionName(f, "foo"); if (f.name === "foo") { return setFunctionName; } } catch (_) {} })(); // ------------------------------------------------------------------- function makeError(constructor, super_) { if (super_ == null || super_ === Error) { super_ = BaseError; } else if (typeof super_ !== "function") { throw new TypeError("super_ should be a function"); } var name; if (typeof constructor === "string") { name = constructor; constructor = construct !== undefined ? function() { return construct(super_, arguments, this.constructor); } : function() { super_.apply(this, arguments); }; // If the name can be set, do it once and for all. if (setFunctionName !== undefined) { setFunctionName(constructor, name); name = undefined; } } else if (typeof constructor !== "function") { throw new TypeError("constructor should be either a string or a function"); } // Also register the super constructor also as `constructor.super_` just // like Node's `util.inherits()`. // // eslint-disable-next-line dot-notation constructor.super_ = constructor["super"] = super_; var properties = { constructor: { configurable: true, value: constructor, writable: true, }, }; // If the name could not be set on the constructor, set it on the // prototype. if (name !== undefined) { properties.name = { configurable: true, value: name, writable: true, }; } constructor.prototype = Object.create(super_.prototype, properties); return constructor; } exports = module.exports = makeError; exports.BaseError = BaseError;