urbi-exhibitions
Version:
2 lines (1 loc) • 1.54 kB
JavaScript
;const l=c=>`/${c}`;function i(c){if(!("serviceWorker"in navigator)){console.warn("Service Worker не поддерживается данным браузером.");return}const{swPath:o=l("sw.js"),onRegistered:s,onError:r}=c||{},t=()=>new URL(window.location.href).searchParams.get("cache")==="clear",a=async()=>caches.keys().then(e=>{Promise.all(e.map(n=>caches.delete(n)))}).then(()=>{console.log("Все кэши очищены.")}).catch(e=>{console.error("Ошибка при очистке кэша:",e)});window.addEventListener("load",()=>{t()?navigator.serviceWorker.getRegistration().then(e=>{e?e.unregister().then(n=>{console.log(n?"Service Worker успешно отозван.":"Не удалось отозвать Service Worker."),a()}):(console.log("Нет зарегистрированного Service Worker."),a())}).catch(e=>{console.error("Ошибка при получении регистрации Service Worker:",e),r==null||r(e)}):navigator.serviceWorker.register(o).then(e=>{e.update(),console.log("Service Worker зарегистрирован. Scope:",e.scope),s==null||s(e)}).catch(e=>{console.error("Не удалось зарегистрировать Service Worker:",e),r==null||r(e)})})}async function h(){return caches.keys().then(c=>Promise.all(c.map(o=>caches.delete(o)))).then(()=>{console.log("Все кэши очищены.")}).catch(c=>{console.error("Ошибка при очистке кэша:",c)})}exports.clearTilesCache=h;exports.getUrl=l;exports.initServiceWorker=i;