UNPKG

http-errors-enhanced-cjs

Version:

Create HTTP errors with additional properties for any framework.

65 lines (64 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { addAdditionalProperties: null, lowerFirst: null, pascalCase: null, serializeError: null, upperFirst: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addAdditionalProperties: function() { return addAdditionalProperties; }, lowerFirst: function() { return lowerFirst; }, pascalCase: function() { return pascalCase; }, serializeError: function() { return serializeError; }, upperFirst: function() { return upperFirst; } }); const processRoot = process.cwd(); function pascalCase(original) { const rest = original.slice(1).toLowerCase().replaceAll(/(\s+[a-z])/g, (_, char)=>char.toUpperCase().trim()); return original.slice(0, 1).toUpperCase() + rest; } function upperFirst(original) { return original.slice(0, 1).toUpperCase() + original.slice(1); } function lowerFirst(original) { return original.slice(0, 1).toLowerCase() + original.slice(1); } function addAdditionalProperties(target, source) { for(const v in source){ if (v in target) { continue; } target[v] = source[v]; } } function serializeError(error, omitStack = false) { const tag = error.code ?? error.name ?? 'Error'; const serialized = { message: `[${tag}] ${error.message}` }; if (!omitStack) { serialized.stack = (error.stack ?? '').split('\n').slice(1).map((s)=>s.trim().replace(/^at /, '').replace(processRoot, '$ROOT')); } addAdditionalProperties(serialized, error); return serialized; }