|
6 | 6 | import { Workbox } from 'workbox-window'
|
7 | 7 |
|
8 | 8 | const autoUpdate = async (registration) => {
|
9 |
| - // const updateInterval = 1000 * 60 * 60 // 1 hour |
10 |
| - const updateInterval = 100 * 60 * 60 // 1 min // for debugging |
| 9 | + const updateInterval = 1000 * 60 * 60 // 1 hour |
| 10 | + // const updateInterval = 1000 * 60 // 1 min // for debugging |
11 | 11 | setInterval(async () => {
|
12 | 12 | try {
|
13 | 13 | /* eslint-disable-next-line no-unused-expressions */
|
|
21 | 21 |
|
22 | 22 | const manualUpdateAvailable = (registration) => {
|
23 | 23 | // Wires up an event that we can listen to in the app. Example: listen for available update and prompt user to update.
|
| 24 | + console.log('sw: manualUpdateAvailable dispatching event') |
24 | 25 | document.dispatchEvent(
|
25 | 26 | new CustomEvent('swUpdated', { detail: registration }))
|
26 | 27 | }
|
|
39 | 40 | autoUpdate(registration)
|
40 | 41 |
|
41 | 42 | wb.addEventListener('activated', async (event) => {
|
42 |
| - // if (event.isUpdate) { |
| 43 | + console.log('sw: activated event listener hit.') |
| 44 | + if (event.isUpdate) { |
43 | 45 | // event.isUpdate=true means the service worker was already registered and there is a new version available.
|
44 |
| - |
45 | 46 | // this only triggers self.skipWaiting. It still doesn't force the app to update. See /composables/use-service-worker.ts for updating app.
|
46 |
| - wb.messageSkipWaiting() |
47 |
| - // } else { |
48 |
| - // // first time use when event.isUpdate = false |
49 |
| - // // service worker should claim the client immediately since its the first install. |
50 |
| - // wb.messageSW({ type: 'CLIENTS_CLAIM' }) |
51 |
| - // console.log('sw: clientsClaim called.') |
52 |
| - // } |
53 |
| - }) |
54 |
| - |
55 |
| - // This code listens for the user's confirmation to update the app. |
56 |
| - wb.addEventListener('message', (event) => { |
57 |
| - console.log('sw: message event listener hit.') |
58 |
| - if (event.data && event.data.type === 'SKIP_WAITING') { |
59 | 47 | wb.messageSkipWaiting()
|
60 |
| - console.log('sw: message SKIP_WAITING called.') |
61 |
| - } |
62 |
| - }) |
63 |
| - |
64 |
| - wb.addEventListener('installed', (event) => { |
65 |
| - console.log('sw: installed event listener hit.') |
66 |
| - if (event.isUpdate) { |
67 |
| - // Wires up event that is listened to in the use-service-worker composable. The app-manual-update component then |
68 |
| - // prompts the user there is an update available to activate. |
69 |
| - // manualUpdateAvailable(registration) |
70 |
| - wb.messageSkipWaiting() |
71 |
| - console.log('sw: installed new version.') |
72 | 48 | } else {
|
73 | 49 | // first time use when event.isUpdate = false
|
74 | 50 | // service worker should claim the client immediately since its the first install.
|
|
77 | 53 | }
|
78 | 54 | })
|
79 | 55 |
|
| 56 | + wb.addEventListener('installed', (event) => { |
| 57 | + console.log('sw: installed event listener hit.') |
| 58 | + }) |
| 59 | + |
80 | 60 | wb.addEventListener('waiting', (event) => {
|
81 | 61 | console.log('sw: waiting event listener hit.')
|
82 | 62 | if (event.isUpdate) {
|
|
0 commit comments