2017-07-13 18:39:07 +00:00
|
|
|
const _handledError = Symbol('handledError');
|
|
|
|
|
|
|
|
export function isHandledError(err) {
|
|
|
|
return !!err[_handledError];
|
|
|
|
}
|
|
|
|
|
|
|
|
export function unwrapHandledError(err) {
|
|
|
|
return err[_handledError] || {};
|
|
|
|
}
|
|
|
|
|
2019-02-18 19:32:49 +00:00
|
|
|
export function wrapHandledError(
|
|
|
|
err,
|
|
|
|
{ type, message, redirectTo, status = 200 }
|
|
|
|
) {
|
2017-12-28 19:19:31 +00:00
|
|
|
err[_handledError] = { type, message, redirectTo, status };
|
2017-07-13 18:39:07 +00:00
|
|
|
return err;
|
|
|
|
}
|
2017-12-27 18:11:17 +00:00
|
|
|
|
2018-01-23 01:08:33 +00:00
|
|
|
// for use with express-validator error formatter
|
2019-02-18 19:32:49 +00:00
|
|
|
export const createValidatorErrorFormatter = (type, redirectTo) => ({ msg }) =>
|
|
|
|
wrapHandledError(new Error(msg), {
|
|
|
|
type,
|
|
|
|
message: msg,
|
|
|
|
redirectTo,
|
|
|
|
// we default to 400 as these are malformed requests
|
|
|
|
status: 400
|
|
|
|
});
|