From f9679f3bdabb791e30b1c8612b079f5f978c97e5 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sun, 12 Oct 2025 02:33:49 -0700 Subject: [PATCH] handle prerelease versions in autoupdater beta channel --- src/main/index.ts | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/index.ts b/src/main/index.ts index ffc898e7..33a6cec3 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -23,6 +23,7 @@ import { access, constants, readFile, writeFile } from 'fs'; import path, { join } from 'path'; import { deflate, inflate } from 'zlib'; +import packageJson from '../../package.json'; import { disableMediaKeys, enableMediaKeys } from './features/core/player/media-keys'; import { shutdownServer } from './features/core/remote'; import { store } from './features/core/settings'; @@ -43,11 +44,33 @@ export default class AppUpdater { constructor() { log.transports.file.level = 'info'; autoUpdater.logger = autoUpdaterLogInterface; - autoUpdater.checkForUpdatesAndNotify(); - if (store.get('release_channel') === 'beta') { - autoUpdater.channel = 'beta'; + const isBetaVersion = packageJson.version.includes('-beta'); + const releaseChannel = store.get('release_channel'); + const isNotConfigured = !releaseChannel; + + console.log('Release channel: ', releaseChannel); + console.log('Is beta version: ', isBetaVersion); + + if (isNotConfigured) { + console.log( + 'Release channel not configured, setting to ', + isBetaVersion ? 'beta' : 'latest', + ); + store.set('release_channel', isBetaVersion ? 'beta' : 'latest'); } + + if (releaseChannel === 'beta') { + autoUpdater.channel = 'beta'; + autoUpdater.allowPrerelease = true; + autoUpdater.disableDifferentialDownload = true; + } else if (releaseChannel === 'latest') { + autoUpdater.channel = 'latest'; + autoUpdater.allowDowngrade = true; + autoUpdater.allowPrerelease = false; + } + + autoUpdater.checkForUpdatesAndNotify(); } }