moar-js
Version:
Simple JavaScript files I use across projects
25 lines (23 loc) • 729 B
JavaScript
// eslint-disable-next-line complexity
const errorHandler = ({printStack = false, verboseDump = false} = {}) => (error, {
log,
id, ip, hostname, originalUrl, url, body, method,
},
reply) => {
const code = error.status || error.statusCode || 500
const response = {
description: error.description,
message: error.message,
code,
}
const message = printStack === true ? error : response
const basic = {
method, hostname, url, body,
}
const extras = {id, ip, originalUrl}
const dump = verboseDump === true ? {...basic, ...extras} : basic
if (code < 500) log.warn(dump, message)
if (code >= 500) log.error(dump, message)
return reply.code(code).send(response)
}
module.exports = errorHandler