添加async支持

This commit is contained in:
fofolee 2024-12-28 16:50:21 +08:00
parent e1c31de4c1
commit 5f44e1dd2c
2 changed files with 15 additions and 4 deletions

View File

@ -50,12 +50,14 @@ export const commandCategories = [
value: "utools.ubrowser.goto", value: "utools.ubrowser.goto",
label: "用ubrowser打开网址", label: "用ubrowser打开网址",
desc: "要访问的网址链接", desc: "要访问的网址链接",
isAsync: true,
}, },
{ {
value: "ubrowser", value: "ubrowser",
label: "UBrowser浏览器操作", label: "UBrowser浏览器操作",
desc: "配置UBrowser浏览器操作", desc: "配置UBrowser浏览器操作",
hasUBrowserEditor: true, hasUBrowserEditor: true,
isAsync: true,
}, },
], ],
}, },

View File

@ -1,21 +1,30 @@
export function generateCode(commandFlow) { export function generateCode(commandFlow) {
let code = []; // 检查是否包含异步函数
const hasAsyncFunction = commandFlow.some((cmd) => cmd.isAsync);
let code = hasAsyncFunction ? ["async function run() {"] : [];
const indent = hasAsyncFunction ? " " : "";
commandFlow.forEach((cmd) => { commandFlow.forEach((cmd) => {
let line = ""; let line = indent;
if (cmd.outputVariable) { if (cmd.outputVariable) {
line += `let ${cmd.outputVariable} = `; line += `let ${cmd.outputVariable} = `;
} }
if (cmd.value === "ubrowser") { if (cmd.value === "ubrowser") {
line += cmd.argv; line += `await ${cmd.argv}`;
} else { } else {
line += `${cmd.value}(${cmd.argv})`; line += `${cmd.isAsync ? "await " : ""}${cmd.value}(${cmd.argv})`;
} }
code.push(line); code.push(line);
}); });
if (hasAsyncFunction) {
code.push("}"); // Close the async function
code.push("run();"); // Call the function
}
return code.join("\n"); return code.join("\n");
} }