one
Version:
One is a new React Framework that makes Vite serve both native and web.
37 lines (36 loc) • 1.18 kB
JavaScript
import { CACHE_KEY } from "./constants";
import { getURL } from "./getURL";
let stale = !1, polling = null;
function isVersionStale() {
return !!(stale || typeof window < "u" && window.__oneVersionStale);
}
function setupSkewProtection() {
if (typeof window > "u" || process.env.NODE_ENV === "development" || process.env.ONE_SKEW_PROTECTION !== "proactive") return;
const POLL_INTERVAL = 12e4, baseUrl = getURL();
async function check() {
try {
const res = await fetch(`${baseUrl}/version.json`, {
headers: { "cache-control": "no-cache", pragma: "no-cache" }
});
if (!res.ok) {
polling = setTimeout(check, POLL_INTERVAL);
return;
}
const data = await res.json();
if (data.version !== CACHE_KEY) {
stale = !0, window.__oneVersionStale = !0, window.dispatchEvent(
new CustomEvent("one-version-update", { detail: { version: data.version } })
);
return;
}
} catch {
}
polling = setTimeout(check, POLL_INTERVAL);
}
polling = setTimeout(check, POLL_INTERVAL);
}
export {
isVersionStale,
setupSkewProtection
};
//# sourceMappingURL=skewProtection.js.map