Better fw update cache handling

This commit is contained in:
loucass003
2025-11-06 02:05:08 +01:00
parent 56c3290e1c
commit 94da52c0e4
3 changed files with 15 additions and 5 deletions

View File

@@ -75,7 +75,12 @@ export function useProvideAppContext(): AppContext {
});
useEffect(() => {
fetchCurrentFirmwareRelease().then((res) => setCurrentFirmwareRelease(res));
const interval = setInterval(() => {
fetchCurrentFirmwareRelease().then((res) => setCurrentFirmwareRelease(res));
}, 1000);
return () => {
clearInterval(interval);
};
}, []);
return {

View File

@@ -55,13 +55,13 @@ export async function cacheWrap(
orDefault: () => Promise<string | null>,
ttl: number | undefined
) {
const realItem = await store.get(key);
const realItem = await cacheGet(key);
if (!realItem) {
const defaultItem = await orDefault();
await cacheSet(key, defaultItem, ttl);
return defaultItem;
} else {
return (await cacheGet(key))!;
return realItem;
}
}

View File

@@ -90,7 +90,13 @@ export async function fetchCurrentFirmwareRelease(): Promise<FirmwareRelease | n
for (const release of releases) {
const fwAsset = firstAsset(release.assets, 'BOARD_SLIMEVR-firmware.bin');
const fw12Asset = firstAsset(release.assets, 'BOARD_SLIMEVR_V1_2-firmware.bin');
if (!release.assets || (!fwAsset && !fw12Asset) /* || release.prerelease */)
const deployAsset = firstAsset(release.assets, 'deploy.json');
if (
!release.assets ||
!deployAsset ||
(!fwAsset && !fw12Asset) ||
release.prerelease
)
continue;
let version = release.tag_name;
@@ -98,7 +104,6 @@ export async function fetchCurrentFirmwareRelease(): Promise<FirmwareRelease | n
version = version.substring(1);
}
const deployAsset = firstAsset(release.assets, 'deploy.json');
const userCanUpdate = await checkUserCanUpdate(
deployAsset?.browser_download_url,
version