You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							24 lines
						
					
					
						
							803 B
						
					
					
				
			
		
		
	
	
							24 lines
						
					
					
						
							803 B
						
					
					
				# Delegates to `succ` on sucecss or to `fail` on error | 
						|
# ex: Thing.load 123, iferr cb, (thing) -> ... | 
						|
iferr = (fail, succ) -> (err, a...) -> | 
						|
  if err? then fail err | 
						|
  else succ? a... | 
						|
 | 
						|
# Like iferr, but also catches errors thrown from `succ` and passes to `fail` | 
						|
tiferr = (fail, succ) -> iferr fail, (a...) -> | 
						|
  try succ a... | 
						|
  catch err then fail err | 
						|
 | 
						|
# Delegate to the success function on success, or throw the error otherwise | 
						|
# ex: Thing.load 123, throwerr (thing) -> ... | 
						|
throwerr = iferr.bind null, (err) -> throw err | 
						|
 | 
						|
# Prints errors when one is passed, or does nothing otherwise | 
						|
# ex: thing.save printerr | 
						|
printerr = iferr (err) -> console.error err.stack or err | 
						|
 | 
						|
module.exports = exports = iferr | 
						|
exports.iferr = iferr | 
						|
exports.tiferr = tiferr | 
						|
exports.throwerr = throwerr | 
						|
exports.printerr = printerr
 | 
						|
 |