SurfSense/surfsense_desktop/src/modules/auto-updater.ts

33 lines
945 B
TypeScript

import { app, dialog } from 'electron';
import { autoUpdater } from 'electron-updater';
export function setupAutoUpdater(): void {
if (!app.isPackaged) return;
autoUpdater.autoDownload = true;
autoUpdater.on('update-available', (info) => {
console.log(`Update available: ${info.version}`);
});
autoUpdater.on('update-downloaded', (info) => {
console.log(`Update downloaded: ${info.version}`);
dialog.showMessageBox({
type: 'info',
buttons: ['Restart', 'Later'],
defaultId: 0,
title: 'Update Ready',
message: `Version ${info.version} has been downloaded. Restart to apply the update.`,
}).then(({ response }) => {
if (response === 0) {
autoUpdater.quitAndInstall();
}
});
});
autoUpdater.on('error', (err) => {
console.log('Auto-updater: update check skipped —', err.message?.split('\n')[0]);
});
autoUpdater.checkForUpdates().catch(() => {});
}