diff --git a/src/core/Chef.js b/src/core/Chef.js index 8192640f..81eb0595 100755 --- a/src/core/Chef.js +++ b/src/core/Chef.js @@ -34,7 +34,7 @@ var Chef = function() { * @returns {number} response.duration - The number of ms it took to execute the recipe * @returns {number} response.error - The error object thrown by a failed operation (false if no error) */ -Chef.prototype.bake = function(inputText, recipeConfig, options, progress, step) { +Chef.prototype.bake = async function(inputText, recipeConfig, options, progress, step) { var startTime = new Date().getTime(), recipe = new Recipe(recipeConfig), containsFc = recipe.containsFlowControl(), @@ -72,7 +72,7 @@ Chef.prototype.bake = function(inputText, recipeConfig, options, progress, step) } try { - progress = recipe.execute(this.dish, progress); + progress = await recipe.execute(this.dish, progress); } catch (err) { // Return the error in the result so that everything else gets correctly updated // rather than throwing it here and losing state info. diff --git a/src/core/FlowControl.js b/src/core/FlowControl.js index 54541f74..015e5904 100755 --- a/src/core/FlowControl.js +++ b/src/core/FlowControl.js @@ -38,7 +38,7 @@ const FlowControl = { * @param {Operation[]} state.opList - The list of operations in the recipe. * @returns {Object} The updated state of the recipe. */ - runFork: function(state) { + runFork: async function(state) { var opList = state.opList, inputType = opList[state.progress].inputType, outputType = opList[state.progress].outputType, @@ -73,7 +73,7 @@ const FlowControl = { for (i = 0; i < inputs.length; i++) { var dish = new Dish(inputs[i], inputType); try { - progress = recipe.execute(dish, 0); + progress = await recipe.execute(dish, 0); } catch (err) { if (!ignoreErrors) { throw err; diff --git a/src/core/Recipe.js b/src/core/Recipe.js index b0a39673..ed8c19b0 100755 --- a/src/core/Recipe.js +++ b/src/core/Recipe.js @@ -145,7 +145,7 @@ Recipe.prototype.lastOpIndex = function(startIndex) { * @param {number} [startFrom=0] - The index of the Operation to start executing from * @returns {number} - The final progress through the recipe */ -Recipe.prototype.execute = function(dish, startFrom) { +Recipe.prototype.execute = async function(dish, startFrom) { startFrom = startFrom || 0; var op, input, output, numJumps = 0; @@ -170,11 +170,11 @@ Recipe.prototype.execute = function(dish, startFrom) { "numJumps" : numJumps }; - state = op.run(state); + state = await op.run(state); i = state.progress; numJumps = state.numJumps; } else { - output = op.run(input, op.getIngValues()); + output = await op.run(input, op.getIngValues()); dish.set(output, op.outputType); } } catch (err) { diff --git a/src/web/App.js b/src/web/App.js index 59121bd9..945b28e0 100755 --- a/src/web/App.js +++ b/src/web/App.js @@ -73,11 +73,11 @@ App.prototype.handleError = function(err) { * @param {boolean} [step] - Set to true if we should only execute one operation instead of the * whole recipe. */ -App.prototype.bake = function(step) { +App.prototype.bake = async function(step) { var response; try { - response = this.chef.bake( + response = await this.chef.bake( this.getInput(), // The user's input this.getRecipeConfig(), // The configuration of the recipe this.options, // Options set by the user diff --git a/test/TestRegister.js b/test/TestRegister.js index fdd3431b..bfdb6974 100644 --- a/test/TestRegister.js +++ b/test/TestRegister.js @@ -40,13 +40,13 @@ import Chef from "../src/core/Chef.js"; this.tests.map(function(test, i) { var chef = new Chef(); - return Promise.resolve(chef.bake( + return chef.bake( test.input, test.recipeConfig, {}, 0, false - )) + ) .then(function(result) { var ret = { test: test,