Files
tf_code/packages/tauri/src/updater.ts
2025-12-09 17:16:24 +08:00

38 lines
990 B
TypeScript

import { check, DownloadEvent } from '@tauri-apps/plugin-updater';
import { relaunch } from '@tauri-apps/plugin-process';
import { ask, message } from '@tauri-apps/plugin-dialog';
export async function runUpdater(onDownloadEvent?:(progress: DownloadEvent) => void) {
let update;
try {
update = await check();
} catch {
await message("Failed to check for updates")
return false
}
if (!update) return;
if (update.version <= update.currentVersion) return;
try {
await update.download(onDownloadEvent);
} catch {
return false
}
const shouldUpdate = await ask(`Version ${update.version} of OpenCode is available, would you like to install it?`)
if (!shouldUpdate) return;
try {
await update.install();
} catch {
await message("Failed to install update")
return false
}
const shouldRestart = await ask("Update installed successfully, would you like to restart OpenCode?");
if(shouldRestart) await relaunch()
return true;
}