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.