From 1cd04aaf458b64ac32856bc8d6a7ef0af3e757f7 Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Sat, 27 Jun 2026 12:24:45 +0200 Subject: [PATCH] fix: cache update checker responses for 30 minutes GitHub API has strict rate limits; avoid hitting it on every poll. --- packages/request-handler/src/update-checker.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/request-handler/src/update-checker.ts b/packages/request-handler/src/update-checker.ts index 442fb41f8..dc3ee18b8 100644 --- a/packages/request-handler/src/update-checker.ts +++ b/packages/request-handler/src/update-checker.ts @@ -11,11 +11,17 @@ import packageJson from "../../../package.json"; const logger = createLogger({ module: "updateCheckerRequestHandler" }); +const CACHE_TTL_MS = 30 * 60 * 1000; +let cached: { data: Update[]; expiresAt: number } | null = null; + export const updateCheckerRequestHandler = createRequestHandler({ async requestAsync(_) { - return { - availableUpdates: await getAvailableUpdatesAsync(packageJson.version), - }; + if (cached && Date.now() < cached.expiresAt) { + return { availableUpdates: cached.data }; + } + const availableUpdates = await getAvailableUpdatesAsync(packageJson.version); + cached = { data: availableUpdates, expiresAt: Date.now() + CACHE_TTL_MS }; + return { availableUpdates }; }, });