Skip to content

Commit

Permalink
up
Browse files Browse the repository at this point in the history
  • Loading branch information
IgorNovozhilov committed May 24, 2020
1 parent 4570f23 commit 0784e17
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 0 deletions.
6 changes: 6 additions & 0 deletions _layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
<title>QO-Code</title>
</head>

<script>
window.$qoConfig = {
buildNumber: '{{ build_number }}'
}
</script>

<body>
<default-layout />
</body>
Expand Down
14 changes: 14 additions & 0 deletions assets/bundle.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 51 additions & 0 deletions offline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
const buildNumber = new URLSearchParams(self.location.search).get('v')


self.addEventListener('install', (event) => {
event.waitUntil(
caches.open(buildNumber).then((cache) => {
return cache.addAll([
'./',
'./get-qr/',
'./contacts/',
'./partners/',
'./about/',
`./assets/bundle.css?v=${buildNumber}`,
`./assets/bundle.js?v=${buildNumber}`,
`./assets/check-and-redirect.js?v=${buildNumber}`,
'./assets/png/favicon.png',
'./assets/png/back.png'
])
})
)
})

self.addEventListener('activate', (event) => {
event.waitUntil(
caches.keys().then((keyList) => {
return Promise.all(keyList.map((key) => {
if (buildNumber !== key) {
return caches.delete(key)
}
}))
})
)
})

self.addEventListener('fetch', (event) => {
event.respondWith(
(new URL(event.request.url).pathname) === '/'
? fetch(event.request).catch(() => {
return caches.match(event.request)
})
: caches.match(event.request).then((response) => {
return response || fetch(event.request).then((response) => {
return caches.open(buildNumber).then((cache) => {
cache.put(event.request, response.clone())

return response
})
})
})
)
})
1 change: 1 addition & 0 deletions src/bundle.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
import './default-theme.css'
import './layouts/default.js'
import './service-worker-register.js'
18 changes: 18 additions & 0 deletions src/service-worker-register.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const { navigator } = window


if ('serviceWorker' in navigator) {
(async () => {
const { buildNumber } = window.$qoConfig
const { serviceWorker } = navigator
const regSW = await serviceWorker.getRegistration()


if (regSW && regSW.active && !regSW.active.scriptURL.endsWith(buildNumber)) {
await regSW.unregister('/')
}
await serviceWorker.register(`/offline.js?v=${buildNumber}`, { scope: '/' })

console.log(`serviceWorker succeeded: v=${buildNumber}`)
})().catch(console.error)
}

0 comments on commit 0784e17

Please sign in to comment.