How to handle events in workbox v4 on request added to background sync or removed

101 Views Asked by At

I need to get count of registered requests in background sync and show it in front part. I using vue3 and vue-pwa (workbox v4). I using background sync in custom service worker like that:

const bgSyncPlugin = new workbox.backgroundSync.Plugin(BG_SYNC_NAME, {
    maxRetentionTime: BG_SYNC_TIME,
    onSync: async ({ queue }) => {
        let entry = undefined
        while ((entry = await queue.shiftRequest())) {
            try {
                await fetch(entry.request)
                console.log('Request successful for request', entry.request)
            } catch (error) {
                console.error('Replay failed for request', error)

                await queue.unshiftRequest(entry)
                throw error
            }
        }
        console.log('[SW] Replay completed')
    }
})

workbox.routing.registerRoute(
    new RegExp(`${API_URL}(.*)`),
    new workbox.strategies.NetworkOnly({
        plugins: [bgSyncPlugin]
    }),
    'POST'
)

How i can catch events on request registered/on request removed? P/s: sorry for my english.

0

There are 0 best solutions below