tabs/src/Updater.ts

42 lines
1.2 KiB
TypeScript
Raw Normal View History

2020-05-21 07:38:44 +02:00
import {autoUpdater, UpdateInfo} from "electron-updater";
export default class Updater {
2020-05-21 07:38:44 +02:00
private updateInfo?: UpdateInfo;
constructor() {
autoUpdater.autoDownload = false;
autoUpdater.on('error', err => {
2020-05-21 07:38:44 +02:00
console.log('Error while checking for updates', err);
});
autoUpdater.on('update-available', v => {
2020-05-21 07:38:44 +02:00
console.log('Update available', v);
});
autoUpdater.on('update-not-available', () => {
2020-05-21 07:38:44 +02:00
console.log('No update available.');
});
}
/**
* @param {Function} callback
*/
2020-05-21 07:38:44 +02:00
checkForUpdates(callback: UpdateCheckCallback) {
if (this.updateInfo) {
callback(this.updateInfo.version !== this.getCurrentVersion().raw, this.updateInfo);
return;
}
autoUpdater.checkForUpdates().then(r => {
2020-05-21 07:38:44 +02:00
this.updateInfo = r.updateInfo;
callback(r.updateInfo.version !== this.getCurrentVersion().raw, r.updateInfo);
}).catch(err => {
callback(false, err);
});
}
getCurrentVersion() {
return autoUpdater.currentVersion;
}
2020-05-21 07:38:44 +02:00
}
2020-05-21 07:38:44 +02:00
export type UpdateCheckCallback = (available: boolean, data: UpdateInfo) => void;