UNPKG

caminho

Version:

Tool for creating efficient data pipelines in a JavaScript environment

44 lines 1.82 kB
import { __assign, __awaiter, __generator } from "tslib"; import { mergeMap } from 'rxjs'; import { getNewValueBag } from '../utils/valueBag'; export function pipe(params, loggers) { var getBag = params.provides ? valueBagGetterProvides(params.provides) : valueBagGetterNoProvides(); function wrappedStep(valueBag) { return __awaiter(this, void 0, void 0, function () { var startTime, value, newBag, err_1; return __generator(this, function (_a) { switch (_a.label) { case 0: loggers.onStepStarted([valueBag]); startTime = new Date(); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4, params.fn(__assign({}, valueBag))]; case 2: value = _a.sent(); newBag = getBag(valueBag, value); loggers.onStepFinished([newBag], startTime); return [2, newBag]; case 3: err_1 = _a.sent(); loggers.onStepFinished([valueBag], startTime, err_1); throw err_1; case 4: return [2]; } }); }); } return mergeMap(wrappedStep, params === null || params === void 0 ? void 0 : 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