UNPKG

waibu-mpa

Version:

MPA support for Waibu Framework

33 lines (29 loc) 1.09 kB
import notFoundHandler from './not-found-handler.js' async function errorHandler (err, req, reply) { const { resolveTemplate, compile } = this.app.bajoTemplate const { fs } = this.app.lib err.statusCode = err.statusCode ?? 500 reply.code(err.statusCode) reply.header('Content-Type', `text/html; charset=${this.config.page.charset}`) reply.header('Content-Language', req.lang) if (err.message === '_notFound' || err.statusCode === 404) { return await notFoundHandler.call(this, err, req, reply) } if (err.noContent) return '' const ns = err.ns ?? this.ns // let result let tpl = `${ns}.template:/${err.statusCode ?? 500}.html` try { resolveTemplate(tpl) } catch (err) { tpl = `${this.ns}.template:/500.html` } try { return await reply.view(tpl, { error: err }, { noFlash: true }) } catch (err) { // only going here if something happened in reply.view const content = fs.readFileSync(resolveTemplate(tpl).file, 'utf8') return await compile(content, { error: err }) } } export default errorHandler