feat: adding linter for commits
This commit is contained in:
151
node_modules/make-error/index.js
generated
vendored
Normal file
151
node_modules/make-error/index.js
generated
vendored
Normal file
@ -0,0 +1,151 @@
|
||||
// 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;
|
Reference in New Issue
Block a user