UNPKG

caminho

Version:

Tool for creating efficient data pipelines in a JavaScript environment

36 lines 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pipe = pipe; exports.valueBagGetterNoProvides = valueBagGetterNoProvides; exports.valueBagGetterProvides = valueBagGetterProvides; const rxjs_1 = require("rxjs"); const valueBag_1 = require("../utils/valueBag"); 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 (0, rxjs_1.mergeMap)(wrappedStep, params?.maxConcurrency); } function valueBagGetterNoProvides() { return function getValueBagWithProvides(valueBag) { return valueBag; }; } function valueBagGetterProvides(provides) { return function getValueBagWithProvides(valueBag, value) { return (0, valueBag_1.getNewValueBag)(valueBag, provides, value); }; } //# sourceMappingURL=pipe.js.map