mirror of
https://github.com/ivabus/gui
synced 2025-04-24 14:37:11 +03:00

* move auto-updater to its own module * #276 move ipc to its own mobule --------- Co-authored-by: neil <neil@neils-MacBook-Pro.local>
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import { type AppUpdater, autoUpdater } from "electron-updater";
|
|
import * as log from "electron-log";
|
|
import { BrowserWindow } from "electron";
|
|
|
|
autoUpdater.logger = log;
|
|
|
|
let window: BrowserWindow;
|
|
|
|
export const getUpdater = () => autoUpdater;
|
|
export function checkUpdater(mainWindow: BrowserWindow): AppUpdater {
|
|
window = mainWindow;
|
|
autoUpdater.checkForUpdatesAndNotify();
|
|
|
|
return autoUpdater;
|
|
}
|
|
|
|
function sendStatusToWindow(text: string, params?: { [key: string]: any }) {
|
|
log.info(text);
|
|
window?.webContents.send("message", text, params || {});
|
|
}
|
|
|
|
autoUpdater.on("checking-for-update", () => {
|
|
log.info("checking for tea gui update");
|
|
});
|
|
autoUpdater.on("update-available", (info) => {
|
|
sendStatusToWindow(
|
|
`A new tea gui(${info.version}) is being downloaded. Please don't close the app.`,
|
|
{
|
|
i18n_key: "notification.gui-downloading",
|
|
version: info.version
|
|
}
|
|
);
|
|
});
|
|
autoUpdater.on("update-not-available", () => {
|
|
log.info("no update for tea gui");
|
|
});
|
|
autoUpdater.on("error", (err) => {
|
|
log.error("auto update:", err);
|
|
});
|
|
autoUpdater.on("download-progress", (progressObj) => {
|
|
let log_message = "Download speed: " + progressObj.bytesPerSecond;
|
|
log_message = log_message + " - Downloaded " + progressObj.percent + "%";
|
|
log_message = log_message + " (" + progressObj.transferred + "/" + progressObj.total + ")";
|
|
log.info("tea gui:", log_message);
|
|
});
|
|
autoUpdater.on("update-downloaded", (info) => {
|
|
sendStatusToWindow(`A new tea gui(${info.version}) is available. Relaunch the app to update.`, {
|
|
i18n_key: "notification.gui-downloaded",
|
|
version: info.version,
|
|
action: "relaunch"
|
|
});
|
|
});
|