web/server-info: refresh server info cache if endpoint changes

This commit is contained in:
wukko 2024-08-29 18:10:46 +06:00
parent f7da62e817
commit f0ce0ccef7
No known key found for this signature in database
GPG key ID: 3E30B3F26C7B4AA2
2 changed files with 15 additions and 4 deletions

View file

@ -15,7 +15,7 @@
if ($cachedInfo) {
loaded = true;
services = $cachedInfo.cobalt.services;
services = $cachedInfo.info.cobalt.services;
}
};
</script>

View file

@ -3,7 +3,12 @@ import { currentApiURL } from "$lib/api/api-url";
import type { CobaltServerInfoResponse, CobaltErrorResponse, CobaltServerInfo } from "$lib/types/api";
export const cachedInfo = writable<CobaltServerInfo | undefined>();
export type CobaltServerInfoCache = {
info: CobaltServerInfo,
origin: string,
}
export const cachedInfo = writable<CobaltServerInfoCache | undefined>();
const request = async () => {
const apiEndpoint = `${currentApiURL()}/`;
@ -29,7 +34,10 @@ const request = async () => {
export const getServerInfo = async () => {
const cache = get(cachedInfo);
if (cache) return true;
if (cache && cache.origin === currentApiURL()) {
return true
}
const freshInfo = await request();
@ -38,7 +46,10 @@ export const getServerInfo = async () => {
}
if (!("status" in freshInfo)) {
cachedInfo.set(freshInfo);
cachedInfo.set({
info: freshInfo,
origin: currentApiURL(),
});
return true;
}