mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 05:55:34 +08:00
规范编排生成的Code,为每段代码添加逗号;修复编排eval导致的BUG
This commit is contained in:
parent
39ee88b02a
commit
823a95079a
@ -4,13 +4,13 @@ export function generateCode(flow) {
|
|||||||
// 获取变量赋值代码,如果变量已经存在,则直接赋值,否则声明并赋值
|
// 获取变量赋值代码,如果变量已经存在,则直接赋值,否则声明并赋值
|
||||||
const getVarAssignCode = (varName, varValue) => {
|
const getVarAssignCode = (varName, varValue) => {
|
||||||
if (usedVarNames.includes(varName)) {
|
if (usedVarNames.includes(varName)) {
|
||||||
return `${varName} = ${varValue};`;
|
return `${varName} = ${varValue}`;
|
||||||
}
|
}
|
||||||
usedVarNames.push(varName);
|
usedVarNames.push(varName);
|
||||||
if (!varValue) {
|
if (!varValue) {
|
||||||
return `let ${varName};`;
|
return `let ${varName}`;
|
||||||
}
|
}
|
||||||
return `let ${varName} = ${varValue};`;
|
return `let ${varName} = ${varValue}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getVarByPath = (name, path) => {
|
const getVarByPath = (name, path) => {
|
||||||
@ -36,10 +36,11 @@ export function generateCode(flow) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const indent = " ";
|
const indent = " ";
|
||||||
|
const comma = ";";
|
||||||
|
|
||||||
// 局部变量赋值
|
// 局部变量赋值
|
||||||
manualVars.forEach((v) => {
|
manualVars.forEach((v) => {
|
||||||
code.push(indent + getVarAssignCode(v.name, v.value));
|
code.push(indent + getVarAssignCode(v.name, v.value) + comma);
|
||||||
});
|
});
|
||||||
|
|
||||||
commands.forEach((cmd) => {
|
commands.forEach((cmd) => {
|
||||||
@ -65,7 +66,7 @@ export function generateCode(flow) {
|
|||||||
const extractVarCode = Object.entries(details)
|
const extractVarCode = Object.entries(details)
|
||||||
.map(
|
.map(
|
||||||
([path, varName]) =>
|
([path, varName]) =>
|
||||||
`let ${varName} = ${getVarByPath(promiseName, path)}`
|
`let ${varName} = ${getVarByPath(promiseName, path)};`
|
||||||
)
|
)
|
||||||
.join("\n");
|
.join("\n");
|
||||||
|
|
||||||
@ -80,20 +81,22 @@ export function generateCode(flow) {
|
|||||||
})`;
|
})`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
code.push(indent + cmdCode);
|
code.push(indent + cmdCode + comma);
|
||||||
} else if (cmd.asyncMode === "await") {
|
} else if (cmd.asyncMode === "await") {
|
||||||
// 使用 await 模式
|
// 使用 await 模式
|
||||||
const promiseName = name || "__result";
|
const promiseName = name || "__result";
|
||||||
cmdCode = getVarAssignCode(promiseName, `await ${cmdCode}`);
|
cmdCode = getVarAssignCode(promiseName, `await ${cmdCode}`);
|
||||||
code.push(indent + cmdCode);
|
code.push(indent + cmdCode + comma);
|
||||||
// 处理详细变量
|
// 处理详细变量
|
||||||
if (details) {
|
if (details) {
|
||||||
Object.entries(details).forEach(([path, varName]) => {
|
Object.entries(details).forEach(([path, varName]) => {
|
||||||
code.push(
|
code.push(
|
||||||
`${indent}${getVarAssignCode(
|
indent +
|
||||||
varName,
|
`${getVarAssignCode(
|
||||||
getVarByPath(promiseName, path)
|
varName,
|
||||||
)}`
|
getVarByPath(promiseName, path)
|
||||||
|
)}` +
|
||||||
|
comma
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -101,15 +104,17 @@ export function generateCode(flow) {
|
|||||||
// 非Async命令
|
// 非Async命令
|
||||||
const resultVarName = name || "__result";
|
const resultVarName = name || "__result";
|
||||||
cmdCode = getVarAssignCode(resultVarName, `${cmdCode}`);
|
cmdCode = getVarAssignCode(resultVarName, `${cmdCode}`);
|
||||||
code.push(indent + cmdCode);
|
code.push(indent + cmdCode + comma);
|
||||||
// 处理详细变量
|
// 处理详细变量
|
||||||
if (details) {
|
if (details) {
|
||||||
Object.entries(details).forEach(([path, varName]) => {
|
Object.entries(details).forEach(([path, varName]) => {
|
||||||
code.push(
|
code.push(
|
||||||
`${indent}${getVarAssignCode(
|
indent +
|
||||||
varName,
|
`${getVarAssignCode(
|
||||||
getVarByPath(resultVarName, path)
|
varName,
|
||||||
)}`
|
getVarByPath(resultVarName, path)
|
||||||
|
)}` +
|
||||||
|
comma
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -119,11 +124,11 @@ export function generateCode(flow) {
|
|||||||
if (cmd.asyncMode === "await") {
|
if (cmd.asyncMode === "await") {
|
||||||
cmdCode = `await ${cmdCode}`;
|
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") {
|
if (funcName === "main") {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user