41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import { invoke } from "@tauri-apps/api/tauri";
|
|
|
|
function assertPayload(payload) {
|
|
if (payload && typeof payload === "object") return payload;
|
|
throw new Error("App payload must be an object");
|
|
}
|
|
|
|
async function saveApiKey(token) {
|
|
if (!token || typeof token !== "string") throw new Error("token is required");
|
|
return invoke("save_api_key", { token });
|
|
}
|
|
|
|
async function persistApp(app) {
|
|
const valid = assertPayload(app);
|
|
if (!valid.id) throw new Error("app.id is required");
|
|
return invoke("persist_app", { app: valid });
|
|
}
|
|
|
|
async function listApps() {
|
|
return invoke("list_apps");
|
|
}
|
|
|
|
async function syncApp(appId) {
|
|
if (!appId) throw new Error("appId is required");
|
|
return invoke("sync_app", { appId });
|
|
}
|
|
|
|
async function runOpencodeTask(appId, taskName, args = []) {
|
|
if (!appId) throw new Error("appId is required");
|
|
if (!taskName) throw new Error("taskName is required");
|
|
return invoke("run_opencode_task", { appId, taskName, args });
|
|
}
|
|
|
|
window.windowsAppBridge = {
|
|
saveApiKey,
|
|
persistApp,
|
|
listApps,
|
|
syncApp,
|
|
runOpencodeTask,
|
|
};
|