UNPKG

@mark01/express-utils

Version:

npm package that contains utilities for express.js

39 lines (38 loc) 1.02 kB
function isObject(value) { return typeof value === 'object' && value != null; } function getObjectMessage(obj) { if (typeof obj.message === 'string') { return obj.message; } if (obj.toString !== Object.prototype.toString) { return obj.toString(); } try { return JSON.stringify(obj); } catch { return String(obj); } } export function isError(err) { return (isObject(err) && typeof err.name === 'string' && typeof err.message === 'string' && (!('stack' in err) || typeof err.stack === 'string')); } export function asError(err) { if (isError(err)) return err; const error = new Error(isObject(err) ? getObjectMessage(err) : String(err)); if (isObject(err) && err.constructor && err.constructor.name !== 'Object') { error.name = err.constructor.name; } else if (!isObject(err)) { error.name = typeof err; } else { error.name = 'Object'; } return error; }