UNPKG

rambda

Version:

Lightweight faster alternative to Ramda

36 lines (30 loc) 836 B
function flagIs(inputArguments){ return ( inputArguments === undefined || inputArguments === null || Number.isNaN(inputArguments) === true ) } export function defaultTo(defaultArgument, ...inputArguments){ if (arguments.length === 1){ return _inputArguments => defaultTo(defaultArgument, _inputArguments) } else if (arguments.length === 2){ return flagIs(inputArguments[ 0 ]) ? defaultArgument : inputArguments[ 0 ] } const limit = inputArguments.length - 1 let len = limit + 1 let ready = false let holder while (!ready){ const instance = inputArguments[ limit - len + 1 ] if (len === 0){ ready = true } else if (flagIs(instance)){ len -= 1 } else { holder = instance ready = true } } return holder === undefined ? defaultArgument : holder }