| 
									
										
										
										
											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] || {}; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function wrapHandledError(err, { | 
					
						
							|  |  |  |   type, | 
					
						
							|  |  |  |   message, | 
					
						
							| 
									
										
										
										
											2017-12-28 11:19:31 -08:00
										 |  |  |   redirectTo, | 
					
						
							|  |  |  |   status = 200 | 
					
						
							| 
									
										
										
										
											2017-07-13 11:39:07 -07:00
										 |  |  | }) { | 
					
						
							| 
									
										
										
										
											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
 | 
					
						
							| 
									
										
										
										
											2018-01-29 11:26:24 -08:00
										 |  |  | export const createValidatorErrorFormatter = (type, redirectTo) => | 
					
						
							| 
									
										
										
										
											2017-12-27 10:11:17 -08:00
										 |  |  |   ({ msg }) => wrapHandledError( | 
					
						
							|  |  |  |     new Error(msg), | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       type, | 
					
						
							|  |  |  |       message: msg, | 
					
						
							| 
									
										
										
										
											2017-12-28 11:19:31 -08:00
										 |  |  |       redirectTo, | 
					
						
							| 
									
										
										
										
											2018-01-29 11:26:24 -08:00
										 |  |  |       // we default to 400 as these are malformed requests
 | 
					
						
							|  |  |  |       status: 400 | 
					
						
							| 
									
										
										
										
											2017-12-27 10:11:17 -08:00
										 |  |  |     } | 
					
						
							|  |  |  |   ); |