diff --git a/src/electron/autoUpdates.ts b/src/electron/autoUpdates.ts index 8ccfaacbb..53fe32abd 100644 --- a/src/electron/autoUpdates.ts +++ b/src/electron/autoUpdates.ts @@ -83,7 +83,7 @@ function shouldPerformAutoUpdate(): Promise { let contents = ''; response.on('end', () => { - resolve(getIsAppUpdateNeeded(contents, app.getVersion())); + resolve(getIsAppUpdateNeeded(contents, app.getVersion(), true)); }); response.on('data', (data: Buffer) => { diff --git a/src/util/getIsAppUpdateNeeded.ts b/src/util/getIsAppUpdateNeeded.ts index 23f5ab1a2..ba5ca6f3e 100644 --- a/src/util/getIsAppUpdateNeeded.ts +++ b/src/util/getIsAppUpdateNeeded.ts @@ -1,7 +1,15 @@ const APP_VERSION_REGEX = /^\d+\.\d+(\.\d+)?$/; -export default function getIsAppUpdateNeeded(remoteVersion: string, appVersion: string) { +export default function getIsAppUpdateNeeded(remoteVersion: string, appVersion: string, isStrict?: boolean) { const sanitizedRemoteVersion = remoteVersion.trim(); - return APP_VERSION_REGEX.test(sanitizedRemoteVersion) && sanitizedRemoteVersion !== appVersion; + if (!APP_VERSION_REGEX.test(sanitizedRemoteVersion)) { + return false; + } + + if (isStrict) { + return sanitizedRemoteVersion.localeCompare(appVersion, undefined, { numeric: true, sensitivity: 'base' }) === 1; + } + + return sanitizedRemoteVersion !== appVersion; }