You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

49 lines
1.1 KiB

import { dialog } from 'electron'
import { autoUpdater } from 'electron-updater'
import { updaterLog } from '../utils/log'
autoUpdater.logger = updaterLog
/**
* @class ZapController
*
* The ZapUpdater class manages the electron auto update process.
*/
class ZapUpdater {
/**
* Create a new ZapUpdater instance.
* @param {BrowserWindow} mainWindow BrowserWindow instance to interact with
*/
constructor(mainWindow) {
this.mainWindow = mainWindow
}
init() {
autoUpdater.on('update-downloaded', () => {
const opt = {
type: 'question',
buttons: ['Install', 'Later'],
title: 'Update available',
message: 'An update is available. Restart the app and install?'
}
dialog.showMessageBox(this.mainWindow, opt, choice => {
if (choice !== 0) {
return
}
setTimeout(() => {
autoUpdater.quitAndInstall()
}, 100)
})
})
this.initAutoUpdate()
}
initAutoUpdate() {
autoUpdater.checkForUpdates()
const oneHour = 60 * 60 * 1000
setInterval(() => autoUpdater.checkForUpdates(), oneHour)
}
}
export default ZapUpdater