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