|
|
|
|
@ -4,6 +4,13 @@ class Setup {
|
|
|
|
|
const p = document.createElement("p")
|
|
|
|
|
p.innerText = this.serviceWorkerStatus
|
|
|
|
|
document.body.appendChild(p)
|
|
|
|
|
this.statusEl = p
|
|
|
|
|
const btn = document.createElement('button')
|
|
|
|
|
btn.addEventListener('click', () => this.unregister())
|
|
|
|
|
btn.innerText = 'unregister'
|
|
|
|
|
const p2 = document.createElement('p')
|
|
|
|
|
document.body.appendChild(p2)
|
|
|
|
|
p2.appendChild(btn)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async register() {
|
|
|
|
|
@ -31,6 +38,27 @@ class Setup {
|
|
|
|
|
console.error("serviceWorker not available")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async unregister() {
|
|
|
|
|
if ('serviceWorker' in navigator) {
|
|
|
|
|
try {
|
|
|
|
|
const regs = await navigator.serviceWorker.getRegistrations()
|
|
|
|
|
const res = await Promise.allSettled(
|
|
|
|
|
regs.map(reg => reg.unregister())
|
|
|
|
|
)
|
|
|
|
|
this.serviceWorkerStatus = (
|
|
|
|
|
res.every(pr => pr.status === 'fulfilled') ?
|
|
|
|
|
'unregistered' :
|
|
|
|
|
'error'
|
|
|
|
|
)
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.error("error in unregister", err)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.serviceWorkerStatus = 'unavailable'
|
|
|
|
|
}
|
|
|
|
|
this.statusEl.innerText = this.serviceWorkerStatus
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
new Setup().run()
|