tabs/src/Updater.js

43 lines
1.1 KiB
JavaScript
Raw Normal View History

import {autoUpdater} from "electron-updater";
export default class Updater {
#updateInfo;
constructor() {
autoUpdater.autoDownload = false;
autoUpdater.on('error', err => {
this.notifyUpdate(false, err);
});
autoUpdater.on('update-available', v => {
this.notifyUpdate(true, v);
});
autoUpdater.on('update-not-available', () => {
this.notifyUpdate(false);
});
}
/**
* @param {Function} callback
*/
checkForUpdates(callback) {
if (this.#updateInfo) {
callback(this.#updateInfo.version !== this.getCurrentVersion().raw, this.#updateInfo);
return;
}
autoUpdater.checkForUpdates().then(r => {
this.#updateInfo = r.updateInfo;
callback(r.updateInfo.version !== this.getCurrentVersion().raw, r.updateInfo);
}).catch(err => {
callback(false, err);
});
}
getCurrentVersion() {
return autoUpdater.currentVersion;
}
notifyUpdate(available, data) {
console.log('Update:', available, data);
}
}