UNPKG

caminho

Version:

Tool for creating efficient data pipelines in a JavaScript environment

31 lines 1.11 kB
import { mergeMap } from 'rxjs'; import { getNewValueBag } from '../utils/valueBag'; export function pipe(params, loggers) { const getBag = params.provides ? valueBagGetterProvides(params.provides) : valueBagGetterNoProvides(); async function wrappedStep(valueBag) { loggers.onStepStarted([valueBag]); const startTime = new Date(); try { const value = await params.fn({ ...valueBag }); const newBag = getBag(valueBag, value); loggers.onStepFinished([newBag], startTime); return newBag; } catch (err) { loggers.onStepFinished([valueBag], startTime, err); throw err; } } return mergeMap(wrappedStep, params?.maxConcurrency); } export function valueBagGetterNoProvides() { return function getValueBagWithProvides(valueBag) { return valueBag; }; } export function valueBagGetterProvides(provides) { return function getValueBagWithProvides(valueBag, value) { return getNewValueBag(valueBag, provides, value); }; } //# sourceMappingURL=pipe.js.map