Spaces:
Running
Running
| ; | |
| function assign(obj, props) { | |
| for (const key in props) { | |
| Object.defineProperty(obj, key, { | |
| value: props[key], | |
| enumerable: true, | |
| configurable: true, | |
| }); | |
| } | |
| return obj; | |
| } | |
| function createError(err, code, props) { | |
| if (!err || typeof err === 'string') { | |
| throw new TypeError('Please pass an Error to err-code'); | |
| } | |
| if (!props) { | |
| props = {}; | |
| } | |
| if (typeof code === 'object') { | |
| props = code; | |
| code = undefined; | |
| } | |
| if (code != null) { | |
| props.code = code; | |
| } | |
| try { | |
| return assign(err, props); | |
| } catch (_) { | |
| props.message = err.message; | |
| props.stack = err.stack; | |
| const ErrClass = function () {}; | |
| ErrClass.prototype = Object.create(Object.getPrototypeOf(err)); | |
| return assign(new ErrClass(), props); | |
| } | |
| } | |
| module.exports = createError; | |