http-errors-enhanced-cjs
Version:
Create HTTP errors with additional properties for any framework.
65 lines (64 loc) • 1.8 kB
JavaScript
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;
}
;