diff --git a/client/client.js b/client/client.js index 4247233e..ecc31796 100644 --- a/client/client.js +++ b/client/client.js @@ -8,7 +8,11 @@ const inherits = require('inherits'); const rendy = require('rendy/legacy'); const exec = require('execon'); const Images = require('./dom/images'); -const registerSW = require('./sw/register'); +const { + registerSW, + unregisterSW, +} = require('./sw/register'); + const join = require('join-io/www/join'); const jonny = require('jonny/legacy'); const currify = require('currify/legacy'); @@ -284,7 +288,11 @@ function CloudCmdProto(Util, DOM) { const url = CloudCmd.PREFIX + '/logout'; const error = () => document.location.reload(); - DOM.load.ajax({url, error}); + unregisterSW(); + DOM.load.ajax({ + url, + error, + }); }; function initModules(callback) { diff --git a/client/sw/register.js b/client/sw/register.js index c0a6669e..32904266 100644 --- a/client/sw/register.js +++ b/client/sw/register.js @@ -2,7 +2,10 @@ const runtime = require('serviceworker-webpack-plugin/lib/runtime'); -module.exports = () => { +module.exports.registerSW = registerSW; +module.exports.unregisterSW = unregisterSW; + +async function registerSW() { if (!navigator.serviceWorker) return; @@ -12,6 +15,11 @@ module.exports = () => { if (!isHTTPS && !isLocalhost) return; - runtime.register(); -}; + return runtime.register(); +} + +async function unregisterSW() { + const reg = await registerSW(); + return reg.unregister(); +} diff --git a/client/sw/sw.js b/client/sw/sw.js index cb3b3764..e30e3e1c 100644 --- a/client/sw/sw.js +++ b/client/sw/sw.js @@ -67,7 +67,7 @@ async function onFetch(event) { if (!isGet(request) || !resp.ok || !isBasic(resp)) return resp; - if (/^\/$/.test(pathname)) + if (/\/$/.test(pathname)) return resp; if (/^\/api/.test(pathname)) @@ -83,7 +83,6 @@ async function onFetch(event) { async function addToCache(request, response) { const cache = await caches.open(NAME); - - cache.put(request, response); + return cache.put(request, response); }