From 8f5d7f1e7f8953802f1bcd28d5e2789ac73d82be Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 5 Jun 2018 18:07:31 +0300 Subject: [PATCH] fix(sw) "only-if-cached" can be set only with "same-origin" mode --- client/sw/sw.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/client/sw/sw.js b/client/sw/sw.js index e30e3e1c..4126bc19 100644 --- a/client/sw/sw.js +++ b/client/sw/sw.js @@ -18,6 +18,13 @@ const createRequest = (a) => new Request(a, { credentials: 'same-origin' }); +const getRequest = (a, request) => { + if (a !== '/') + return request; + + return createRequest('/'); +}; + self.addEventListener('install', wait(onInstall)); self.addEventListener('fetch', respondWith(onFetch)); self.addEventListener('activate', wait(onActivate)); @@ -44,14 +51,13 @@ async function onInstall() { ]; const requests = urls.map(createRequest); - return cache.addAll(requests); } async function onFetch(event) { - const {request} = event; - const url = request.url; + const url = event.request.url; const pathname = getPathName(url); + const request = getRequest(pathname, event.request); const cache = await caches.open(NAME); const response = await cache.match(request); @@ -62,7 +68,7 @@ async function onFetch(event) { const [e, resp] = await tryToCatch(fetch, request.clone()); if (e) - return console.error(e, pathname); + return console.error(e, response, pathname); if (!isGet(request) || !resp.ok || !isBasic(resp)) return resp;