pwa.js 1019 Bytes
Newer Older
XhmikosR's avatar
XhmikosR committed
1
2
3
4
5
6
7
/* eslint no-console:off */

(function setupSW() {
  'use strict'

  if ('serviceWorker' in navigator) {
    window.addEventListener('load', function () {
XhmikosR's avatar
XhmikosR committed
8
      navigator.serviceWorker.register('/sw.js').then(function (registration) { // eslint-disable-line compat/compat
XhmikosR's avatar
XhmikosR committed
9
        console.log('ServiceWorker registration successful with scope: ', registration.scope)
10
11
12
13
14
        registration.onupdatefound = function () {
          var installingWorker = registration.installing
          installingWorker.onstatechange = function () {
            switch (installingWorker.state) {
              case 'installed':
XhmikosR's avatar
XhmikosR committed
15
                if (navigator.serviceWorker.controller) { // eslint-disable-line compat/compat
16
17
18
19
20
21
22
23
24
                  console.log('new update available')
                  location.reload(true)
                }
                break

              default:
            }
          }
        }
XhmikosR's avatar
XhmikosR committed
25
26
27
28
29
30
      }).catch(function (err) {
        console.log('ServiceWorker registration failed: ', err)
      })
    })
  }
}())