28 lines
		
	
	
		
			659 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			659 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
 | 
						|
  });
 |