From 14a33739ceacae09cc105f76ed32ca6b6578ee55 Mon Sep 17 00:00:00 2001 From: Steve Crow Date: Tue, 2 Apr 2024 11:31:57 -0400 Subject: [PATCH] Add electron auto updater --- package-lock.json | 30 +++++++++++++++++++++++++++--- package.json | 6 ++++-- src/main/index.ts | 13 +++++++++++-- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 886c32d..269e7ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bunnet", - "version": "1.1.0", + "version": "1.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "bunnet", - "version": "1.1.0", + "version": "1.2.0", "hasInstallScript": true, "license": "GPL-3.0-or-later", "dependencies": { @@ -16,7 +16,8 @@ "@zerodevx/svelte-json-view": "^1.0.9", "axios": "^1.6.8", "electron-settings": "^4.0.2", - "electron-updater": "^6.1.7" + "electron-updater": "^6.1.7", + "update-electron-app": "^3.0.0" }, "devDependencies": { "@electron-toolkit/eslint-config-prettier": "^2.0.0", @@ -4614,6 +4615,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/github-url-to-object": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/github-url-to-object/-/github-url-to-object-4.0.6.tgz", + "integrity": "sha512-NaqbYHMUAlPcmWFdrAB7bcxrNIiiJWJe8s/2+iOc9vlcHlwHqSGrPk+Yi3nu6ebTwgsZEa7igz+NH2vEq3gYwQ==", + "dependencies": { + "is-url": "^1.1.0" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -5103,6 +5112,11 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -7488,6 +7502,16 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/update-electron-app": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/update-electron-app/-/update-electron-app-3.0.0.tgz", + "integrity": "sha512-Ccs46fgUEcMpSRPMNw82DFMux2MGi5tkKkEpV723JmtPNI3qAtxvTeiYkKczN2/LehA3U7JGrGr4MhraxGdRTw==", + "dependencies": { + "github-url-to-object": "^4.0.4", + "is-url": "^1.2.4", + "ms": "^2.1.1" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 0f82cb1..8f8eb62 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,12 @@ { "name": "bunnet", - "version": "1.2.0", + "version": "1.2.1", "description": "A simple RabbitMQ client for developers", "main": "./out/main/index.js", "author": "Steve Crow dev@bunnetapp.com", "homepage": "https://bunnetapp.com", "license": "GPL-3.0-or-later", + "repository": "github:cr0wst/bunnet", "scripts": { "format": "prettier --plugin prettier-plugin-svelte --write .", "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false", @@ -26,7 +27,8 @@ "@zerodevx/svelte-json-view": "^1.0.9", "axios": "^1.6.8", "electron-settings": "^4.0.2", - "electron-updater": "^6.1.7" + "electron-updater": "^6.1.7", + "update-electron-app": "^3.0.0" }, "devDependencies": { "@electron-toolkit/eslint-config-prettier": "^2.0.0", diff --git a/src/main/index.ts b/src/main/index.ts index 307d759..f14d60a 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -7,6 +7,9 @@ import { WindowStateManager } from './WindowStateManager' import { RabbitConnection } from './rabbit' import appConfig from 'electron-settings' +import { updateElectronApp } from 'update-electron-app' + +updateElectronApp() const windowStateManager = new WindowStateManager('main') let rabbitConnection: RabbitConnection | null = null @@ -50,7 +53,10 @@ function createWindow(): void { // Save all of the details for the connection mainWindow.on('close', () => { if (rabbitConnection) { - appConfig.setSync(`rabbitConnection.${rabbitConnection.getConnection().id}`, rabbitConnection.getState()) + appConfig.setSync( + `rabbitConnection.${rabbitConnection.getConnection().id}`, + rabbitConnection.getState() + ) } }) } @@ -119,7 +125,10 @@ ipcMain.handle('rabbit-disconnect', async () => { } await rabbitConnection.disconnect() - appConfig.setSync(`rabbitConnection.${rabbitConnection.getConnection().id}`, rabbitConnection.getState()) + appConfig.setSync( + `rabbitConnection.${rabbitConnection.getConnection().id}`, + rabbitConnection.getState() + ) rabbitConnection = null })