/* Copyright (C) 2019, 2020 Monomax Software Pty Ltd * * This file is part of Dnote. * * Dnote is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Dnote is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Dnote. If not, see . */ /* eslint-disable no-restricted-globals, func-names, no-var, prefer-template */ self.addEventListener('install', function(event) { var offlineRequest = new Request('static/offline.html'); event.waitUntil( fetch(offlineRequest).then(function(response) { return caches.open('offline').then(function(cache) { console.log('cached offline page', response.url); return cache.put(offlineRequest, response); }); }) ); }); self.addEventListener('fetch', function(event) { var request = event.request; if (request.method === 'GET') { event.respondWith( fetch(request).catch(function(error) { console.error( 'onfetch Failed. Serving cached offline fallback ' + error ); return caches.open('offline').then(function(cache) { return cache.match('offline.html'); }); }) ); } });