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
 | |
|   });
 |