UNPKG

rambdax

Version:

Extended version of Rambda - a lightweight, faster alternative to Ramda

24 lines (19 loc) 573 B
import { type } from './type' export function pipeAsync(...inputArguments){ return async function (startArgument){ let argumentsToPass = startArgument while (inputArguments.length !== 0){ const fn = inputArguments.shift() const typeFn = type(fn) if (typeFn === 'Async'){ argumentsToPass = await fn(argumentsToPass) } else { argumentsToPass = fn(argumentsToPass) if (type(argumentsToPass) === 'Promise'){ argumentsToPass = await argumentsToPass } } } return argumentsToPass } }