From 823a95079ada5b03dbb79fa1f1af9eb774899674 Mon Sep 17 00:00:00 2001 From: fofolee Date: Wed, 9 Apr 2025 10:43:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E8=8C=83=E7=BC=96=E6=8E=92=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=9A=84Code=EF=BC=8C=E4=B8=BA=E6=AF=8F=E6=AE=B5?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=B7=BB=E5=8A=A0=E9=80=97=E5=8F=B7=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E6=8E=92eval=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/js/composer/generateCode.js | 41 ++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/js/composer/generateCode.js b/src/js/composer/generateCode.js index 2ce5b10..4eeefdf 100644 --- a/src/js/composer/generateCode.js +++ b/src/js/composer/generateCode.js @@ -4,13 +4,13 @@ export function generateCode(flow) { // 获取变量赋值代码,如果变量已经存在,则直接赋值,否则声明并赋值 const getVarAssignCode = (varName, varValue) => { if (usedVarNames.includes(varName)) { - return `${varName} = ${varValue};`; + return `${varName} = ${varValue}`; } usedVarNames.push(varName); if (!varValue) { - return `let ${varName};`; + return `let ${varName}`; } - return `let ${varName} = ${varValue};`; + return `let ${varName} = ${varValue}`; }; const getVarByPath = (name, path) => { @@ -36,10 +36,11 @@ export function generateCode(flow) { ); const indent = " "; + const comma = ";"; // 局部变量赋值 manualVars.forEach((v) => { - code.push(indent + getVarAssignCode(v.name, v.value)); + code.push(indent + getVarAssignCode(v.name, v.value) + comma); }); commands.forEach((cmd) => { @@ -65,7 +66,7 @@ export function generateCode(flow) { const extractVarCode = Object.entries(details) .map( ([path, varName]) => - `let ${varName} = ${getVarByPath(promiseName, path)}` + `let ${varName} = ${getVarByPath(promiseName, path)};` ) .join("\n"); @@ -80,20 +81,22 @@ export function generateCode(flow) { })`; } } - code.push(indent + cmdCode); + code.push(indent + cmdCode + comma); } else if (cmd.asyncMode === "await") { // 使用 await 模式 const promiseName = name || "__result"; cmdCode = getVarAssignCode(promiseName, `await ${cmdCode}`); - code.push(indent + cmdCode); + code.push(indent + cmdCode + comma); // 处理详细变量 if (details) { Object.entries(details).forEach(([path, varName]) => { code.push( - `${indent}${getVarAssignCode( - varName, - getVarByPath(promiseName, path) - )}` + indent + + `${getVarAssignCode( + varName, + getVarByPath(promiseName, path) + )}` + + comma ); }); } @@ -101,15 +104,17 @@ export function generateCode(flow) { // 非Async命令 const resultVarName = name || "__result"; cmdCode = getVarAssignCode(resultVarName, `${cmdCode}`); - code.push(indent + cmdCode); + code.push(indent + cmdCode + comma); // 处理详细变量 if (details) { Object.entries(details).forEach(([path, varName]) => { code.push( - `${indent}${getVarAssignCode( - varName, - getVarByPath(resultVarName, path) - )}` + indent + + `${getVarAssignCode( + varName, + getVarByPath(resultVarName, path) + )}` + + comma ); }); } @@ -119,11 +124,11 @@ export function generateCode(flow) { if (cmd.asyncMode === "await") { cmdCode = `await ${cmdCode}`; } - code.push(indent + cmdCode); + code.push(indent + cmdCode + comma); } }); - code.push("}"); // Close the function + code.push("};"); // Close the function // 如果是主函数,则自动执行 if (funcName === "main") {