Files
WRNexusJSDoc/public/pwa-recover.js
T

41 lines
1.2 KiB
JavaScript

/* global navigator, window */
(function () {
if (!("serviceWorker" in navigator)) return;
var version = "docs-v3";
var workerUrl = "/sw.js?v=" + encodeURIComponent(version);
if (window.trustedTypes) {
try {
workerUrl = window.trustedTypes
.createPolicy("wrnexus-pwa-recovery", {
createScriptURL: function (value) {
return value;
},
})
.createScriptURL(workerUrl);
} catch {
// A previously-created policy can make creation fail; the same-origin
// string remains valid when Trusted Types enforcement is not active.
}
}
var recover = function () {
navigator.serviceWorker
.getRegistration()
.then(function (registration) {
if (
registration &&
registration.active &&
registration.active.scriptURL.includes(version)
) {
return;
}
return navigator.serviceWorker.register(workerUrl, { updateViaCache: "none" });
})
.catch(function () {});
};
if ("requestIdleCallback" in window) window.requestIdleCallback(recover, { timeout: 2000 });
else window.setTimeout(recover, 0);
})();