33 lines
685 B
JavaScript
33 lines
685 B
JavaScript
const _handledError = Symbol('handledError');
|
|
|
|
export function isHandledError(err) {
|
|
return !!err[_handledError];
|
|
}
|
|
|
|
export function unwrapHandledError(err) {
|
|
return err[_handledError] || {};
|
|
}
|
|
|
|
export function wrapHandledError(err, {
|
|
type,
|
|
message,
|
|
redirectTo,
|
|
status = 200
|
|
}) {
|
|
err[_handledError] = { type, message, redirectTo, status };
|
|
return err;
|
|
}
|
|
|
|
// for use with express-validator error formatter
|
|
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
|
|
}
|
|
);
|