From 5591c9642d222e5431f62b336231263bd332129e Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Mon, 23 Jun 2025 12:53:26 +0800 Subject: [PATCH 1/7] feat(updater): clear cached installers after update check --- packages/electron-updater/src/AppUpdater.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 53d9053ed71..407db106bee 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -15,7 +15,7 @@ import { import { randomBytes } from "crypto" import { release } from "os" import { EventEmitter } from "events" -import { mkdir, outputFile, readFile, rename, unlink, copyFile, pathExists } from "fs-extra" +import { mkdir, outputFile, readFile, rename, unlink, copyFile, pathExists, emptyDir } from "fs-extra" import { OutgoingHttpHeaders } from "http" import { load } from "js-yaml" import { Lazy } from "lazy-val" @@ -514,6 +514,11 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter }).` ) this.emit("update-not-available", updateInfo) + // remove all installers from cache + const downloadedUpdateHelper = this.downloadedUpdateHelper?.cacheDirForPendingUpdate + if (downloadedUpdateHelper && await pathExists(downloadedUpdateHelper)) { + await emptyDir(downloadedUpdateHelper) + } return { isUpdateAvailable: false, versionInfo: updateInfo, From 4b4b6e8294256037ea6013f3f0734c8bff572b97 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Mon, 23 Jun 2025 13:06:09 +0800 Subject: [PATCH 2/7] refactor(updater): simplify cache clearing for downloaded updates --- packages/electron-updater/src/AppUpdater.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 407db106bee..71da8dfc4e6 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -514,11 +514,10 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter }).` ) this.emit("update-not-available", updateInfo) + // remove all installers from cache - const downloadedUpdateHelper = this.downloadedUpdateHelper?.cacheDirForPendingUpdate - if (downloadedUpdateHelper && await pathExists(downloadedUpdateHelper)) { - await emptyDir(downloadedUpdateHelper) - } + this.downloadedUpdateHelper?.clear() + return { isUpdateAvailable: false, versionInfo: updateInfo, From 335bd7068c31a4cf2b671a96de531ebfaf8cc6a5 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Mon, 23 Jun 2025 13:06:45 +0800 Subject: [PATCH 3/7] format --- packages/electron-updater/src/AppUpdater.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 71da8dfc4e6..f4156a9f767 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -514,7 +514,7 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter }).` ) this.emit("update-not-available", updateInfo) - + // remove all installers from cache this.downloadedUpdateHelper?.clear() From 26eb39b366510acd7dbb29f4ec7bc71f7a612246 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Mon, 23 Jun 2025 13:07:46 +0800 Subject: [PATCH 4/7] fix errors --- packages/electron-updater/src/AppUpdater.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index f4156a9f767..928fb4add9d 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -15,7 +15,7 @@ import { import { randomBytes } from "crypto" import { release } from "os" import { EventEmitter } from "events" -import { mkdir, outputFile, readFile, rename, unlink, copyFile, pathExists, emptyDir } from "fs-extra" +import { mkdir, outputFile, readFile, rename, unlink, copyFile, pathExists } from "fs-extra" import { OutgoingHttpHeaders } from "http" import { load } from "js-yaml" import { Lazy } from "lazy-val" From c0421c3ac5631f10dcb8f896fd875b1b5f3c1f66 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Mon, 23 Jun 2025 13:09:35 +0800 Subject: [PATCH 5/7] fix error --- packages/electron-updater/src/AppUpdater.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 928fb4add9d..6f1ce541954 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -516,7 +516,7 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter this.emit("update-not-available", updateInfo) // remove all installers from cache - this.downloadedUpdateHelper?.clear() + await this.downloadedUpdateHelper?.clear() return { isUpdateAvailable: false, From dea50bd1058c45f2d9edc4858168eefcec2b8efa Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Mon, 23 Jun 2025 13:45:36 +0800 Subject: [PATCH 6/7] refactor(updater): enhance cache clearing logic and log cache directory --- packages/electron-updater/src/AppUpdater.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 6f1ce541954..fb35cdcdfef 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -516,7 +516,9 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter this.emit("update-not-available", updateInfo) // remove all installers from cache - await this.downloadedUpdateHelper?.clear() + const downloadedUpdateHelper = await this.getOrCreateDownloadHelper() + await downloadedUpdateHelper.clear() + this._logger.info(`All installers have been removed from cache: ${downloadedUpdateHelper.cacheDirForPendingUpdate}`) return { isUpdateAvailable: false, From 8c2e8cbfa3e8b3f88bcc0e323985c09410c3f8ca Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 31 Jul 2025 09:43:40 -0700 Subject: [PATCH 7/7] Create afraid-buckets-move.md --- .changeset/afraid-buckets-move.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/afraid-buckets-move.md diff --git a/.changeset/afraid-buckets-move.md b/.changeset/afraid-buckets-move.md new file mode 100644 index 00000000000..1ba9fa4cbd1 --- /dev/null +++ b/.changeset/afraid-buckets-move.md @@ -0,0 +1,5 @@ +--- +"electron-updater": patch +--- + +feat(updater): clear cached installers after update check