UNPKG

@serwist/next

Version:

A module that integrates Serwist into your Next.js application.

34 lines (33 loc) 1.11 kB
self.onmessage = async (ev)=>{ switch(ev.data.type){ case "__START_URL_CACHE__": { const url = ev.data.url; const response = await fetch(url); if (!response.redirected) { const startUrlCache = await caches.open("start-url"); return startUrlCache.put(url, response); } return Promise.resolve(); } case "__FRONTEND_NAV_CACHE__": { const url = ev.data.url; const pagesCache = await caches.open("pages"); const isPageCached = !!await pagesCache.match(url, { ignoreSearch: true }); if (isPageCached) { return; } const page = await fetch(url); if (!page.ok) { return; } pagesCache.put(url, page.clone()); return Promise.resolve(); } default: return Promise.resolve(); } };