Files
5chan/src/lib/app-update.ts
T
Tommaso CasaburiandGitHub f812fe1d18 fix(pwa): make web updates deterministic (#1093)
* fix(pwa): make web updates deterministic

* fix(pwa): address review feedback
2026-03-17 16:20:13 +08:00

27 lines
894 B
TypeScript

const isElectron = window.electronApi?.isElectron === true;
const fetchLatestStableVersion = async (): Promise<string> => {
const versionUrl = isElectron
? 'https://raw.githubusercontent.com/bitsocialnet/5chan/master/package.json'
: new URL(`/version.json?t=${Date.now()}`, window.location.origin).toString();
const packageRes = await fetch(versionUrl, { cache: 'no-store' });
const packageData = await packageRes.json();
if (typeof packageData?.version !== 'string') {
throw new Error('invalid version payload');
}
return packageData.version;
};
const refreshServiceWorkerRegistration = async (): Promise<void> => {
if (!('serviceWorker' in navigator)) {
return;
}
const registration = await navigator.serviceWorker.getRegistration();
await registration?.update();
};
export { fetchLatestStableVersion, isElectron, refreshServiceWorkerRegistration };