UNPKG

flowie

Version:

Library for creating, and working with flows

35 lines 1.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const debug_1 = __importDefault(require("debug")); const flowieResult_1 = __importDefault(require("../runtime/flowieResult")); const generateFunctionFromFlowDeclaration_1 = __importDefault(require("./generateFunctionFromFlowDeclaration")); const debug = debug_1.default('flowie:compiler'); function compileFlowDeclaration(preparedFlowieManager, flowieContainer) { const { generatedFlowFunction, generatedFlowFunctionWithContext } = generateFunctionFromFlowDeclaration_1.default(preparedFlowieManager, flowieContainer); debug('Flowie compiled'); const executeMainFlow = generatedFlowFunction(separateReportListFromResult); const executeMainFlowWithContext = generatedFlowFunctionWithContext(separateReportListFromResult); return function executeCompiledFlow(reporter, argument, context) { const executionArguments = { flowieContainer, argument, flowieResult: flowieResult_1.default, reporter }; if (context === undefined) { return executeMainFlow(executionArguments); } return executeMainFlowWithContext({ ...executionArguments, context }); }; } exports.default = compileFlowDeclaration; function separateReportListFromResult(listToConcatenate) { const emptyFunctionReportList = []; const emptyResultList = []; return listToConcatenate.reduce(concatenateReportListAndResult, [emptyFunctionReportList, emptyResultList]); } function concatenateReportListAndResult([functionReportList, resultList], [functionReport, result]) { return [ functionReportList.concat(functionReport), resultList.concat(result) ]; } //# sourceMappingURL=compileFlowDeclaration.js.map