HttpErrorPages/lib/dispatcher.js
2020-11-15 11:55:57 +01:00

36 lines
No EOL
1 KiB
JavaScript

// generic error dispatching
module.exports = function dispatch(opt, resources, page, httpStatusCode, err){
// page available ?
if (!resources.pages[page]){
// use "internal server error" as default
page = '500';
httpStatusCode = null;
}
// extract page date
// page found ? fallback in case http500 template not exists
const pageData = resources.pages[page] || {
title: 'Internal Server Error',
message: 'Additionally, FileNotFound was encountered while trying to use an ErrorDocument to handle the request'
};
// create template variables
const templateVars = Object.assign({}, {
title: pageData.title,
message: pageData.message,
code: httpStatusCode || 500,
language: opt.lang.substr(0, 2),
error: err
}, opt.payload);
// debug error handler set ?
if (opt.onError){
opt.onError(templateVars);
}
return {
pageData: pageData,
templateVars: templateVars
};
}