fix: cache update checker responses for 30 minutes

GitHub API has strict rate limits; avoid hitting it on every poll.
This commit is contained in:
Thomas Camlong committed 2026-06-27 12:24:54 +02:00
1 parent 482e74f8c7
commit 1cd04aaf45
1 file changed
+9 -3
@@ -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 };
},
});