ente/src/serviceWorker.js

27 lines
966 B
JavaScript
Raw Normal View History

2021-06-07 05:34:41 +00:00
import { precacheAndRoute, cleanupOutdatedCaches } from 'workbox-precaching';
2021-06-06 20:26:31 +00:00
import { registerRoute, setDefaultHandler } from 'workbox-routing';
2021-05-30 16:56:48 +00:00
import { NetworkOnly } from 'workbox-strategies';
import { pageCache, offlineFallback } from 'workbox-recipes';
2021-05-23 14:25:48 +00:00
pageCache();
2021-06-15 05:34:51 +00:00
precacheAndRoute(self.__WB_MANIFEST.filter((item) => !item.url.match(/\/manifest\.json/i)));
2021-06-07 05:34:41 +00:00
cleanupOutdatedCaches();
2021-05-23 14:25:48 +00:00
2021-06-06 20:26:31 +00:00
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');
2021-05-23 14:25:48 +00:00
// Use a stale-while-revalidate strategy for all other requests.
setDefaultHandler(new NetworkOnly());
2021-05-23 14:25:48 +00:00
offlineFallback();