@andre_garvin/pipe
Version:
shell piping in nodeJS
24 lines (18 loc) • 519 B
JavaScript
function pipe(arrFuncs, data, ...args) {
if (!Array.isArray(arrFuncs)) {
arrFuncs = [arrFuncs]
}
return arrFuncs.reduce((newTransformedData, func) => {
data = func(newTransformedData, ...args)
return data;
}, data)
}
module.exports = pipe
async function asyncPipe(arrFuncs = [], data, ...args) {
if (!Array.isArray(arrFuncs)) {
arrFuncs = [ arrFuncs ]
}
arrFuns = arrFuncs.map(async func => await func)
return await pipe(arrFuncs, await data, await args)
}
module.exports.Promise = asyncPipe;