Spaces:
Running on Zero
Running on Zero
| /** | |
| * versionStore - Frontend build version | |
| * | |
| * Reads from SvelteKit's `_app/version.json` — generated by the @vite-pwa/sveltekit | |
| * plugin. The version string changes on every build, so comparing it against | |
| * localStorage reliably detects server upgrades. | |
| * | |
| * In dev mode, falls back to `'dev'`. | |
| */ | |
| import { browser } from '$app/environment'; | |
| import { base } from '$app/paths'; | |
| let version = $state<string>(''); | |
| async function loadVersion() { | |
| if (!browser) return; | |
| if (import.meta.env.DEV) { | |
| version = 'dev'; | |
| return; | |
| } | |
| try { | |
| const res = await fetch(`${base}/_app/version.json`, { cache: 'no-store' }); | |
| if (res.ok) { | |
| const data = await res.json(); | |
| version = data.version ?? ''; | |
| } | |
| } catch { | |
| // _app/version.json missing or unreachable - leave as empty string | |
| } | |
| } | |
| loadVersion(); | |
| export const versionStore = { | |
| get value(): string { | |
| return version; | |
| } | |
| }; | |