| 
									
										
										
										
											2017-07-13 11:39:07 -07: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 11:19:31 -08:00
										 |  |  |   err[_handledError] = { type, message, redirectTo, status }; | 
					
						
							| 
									
										
										
										
											2017-07-13 11:39:07 -07:00
										 |  |  |   return err; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-12-27 10:11:17 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-22 17:08:33 -08: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 | 
					
						
							|  |  |  |   }); |