ente/src/serviceWorker.js
2021-06-16 00:37:01 +05:30

27 lines
911 B
JavaScript

import { precacheAndRoute, cleanupOutdatedCaches } from 'workbox-precaching';
import { registerRoute, setDefaultHandler } from 'workbox-routing';
import { NetworkOnly } from 'workbox-strategies';
import { pageCache, offlineFallback } from 'workbox-recipes';
pageCache();
precacheAndRoute(self.__WB_MANIFEST);
cleanupOutdatedCaches();
registerRoute('/share-target', async ({ event }) => {
event.waitUntil(async function() {
const data = await event.request.formData();
const client = await self.clients.get(event.resultingClientId || event.clientId);
const files = data.getAll('files');
setTimeout(() => {
client.postMessage({ files, action: 'upload-files' });
}, 1000);
}());
return Response.redirect('./');
}, 'POST');
// Use a stale-while-revalidate strategy for all other requests.
setDefaultHandler(new NetworkOnly());
offlineFallback();