otherwise
Version:
Executes fallback behavior if a function was unsuccessful.
12 lines (9 loc) • 415 B
JavaScript
const arrify = require('arrify')
const errate = require('errate')
const roadblock = require('roadblock')
module.exports = ({fallback, elseCall, elseReturn = fallback, elseThrow} = {}, {defaultErrorClass, args} = {}) =>
roadblock(elseCall, next => elseCall(next, ...arrify(args)), () => {
if (elseThrow) throw errate(elseThrow, defaultErrorClass, {forceClass: false})
return elseReturn
})