From be7585fecbe9e757f3b26566793d1c07b267ac2c Mon Sep 17 00:00:00 2001 From: engin0223 Date: Thu, 5 Mar 2026 17:14:14 +0300 Subject: [PATCH] fix(node): enable asynchronous operation support in Node.js API --- src/node/NodeRecipe.mjs | 15 ++++++++------- src/node/api.mjs | 6 +++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/node/NodeRecipe.mjs b/src/node/NodeRecipe.mjs index bad8fc27..ade9ecb5 100644 --- a/src/node/NodeRecipe.mjs +++ b/src/node/NodeRecipe.mjs @@ -88,16 +88,17 @@ class NodeRecipe { * @param {NodeDish} dish * @returns {NodeDish} */ - execute(dish) { - return this.opList.reduce((prev, curr) => { - // CASE where opList item is op and args + async execute(dish) { + let prev = dish; + for (const curr of this.opList) { if (Object.prototype.hasOwnProperty.call(curr, "op") && Object.prototype.hasOwnProperty.call(curr, "args")) { - return curr.op(prev, curr.args); + prev = await curr.op(prev, curr.args); + } else { + prev = await curr(prev); } - // CASE opList item is just op. - return curr(prev); - }, dish); + } + return prev; } } diff --git a/src/node/api.mjs b/src/node/api.mjs index 88b3f834..7ac25ac8 100644 --- a/src/node/api.mjs +++ b/src/node/api.mjs @@ -324,10 +324,10 @@ export function help(input) { * @returns {NodeDish} of the result * @throws {TypeError} if invalid recipe given. */ -export function bake(input, recipeConfig) { - const recipe = new NodeRecipe(recipeConfig); +export async function bake(input, recipeConfig) { + const recipe = new NodeRecipe(recipeConfig); const dish = ensureIsDish(input); - return recipe.execute(dish); + return await recipe.execute(dish); }