summaryrefslogtreecommitdiff
path: root/public/serviceworker.js
diff options
context:
space:
mode:
authorhorus2021-03-15 20:15:28 +0100
committerhorus2021-03-15 20:15:28 +0100
commit0eb2ede2855287eb77a5f2108afb14be5e413b53 (patch)
tree3eed47eb355a2396bca3ea768cfd5b0b3e5d7501 /public/serviceworker.js
parent31e3467e8550e4b6a5bfccbd0ae576d2455dce8a (diff)
downloadzeitumstellung-0eb2ede2855287eb77a5f2108afb14be5e413b53.tar.gz
Inline page in website
Diffstat (limited to 'public/serviceworker.js')
-rw-r--r--public/serviceworker.js74
1 files changed, 0 insertions, 74 deletions
diff --git a/public/serviceworker.js b/public/serviceworker.js
deleted file mode 100644
index f21a400..0000000
--- a/public/serviceworker.js
+++ /dev/null
@@ -1,74 +0,0 @@
-const filesToCache = [
- '/ical.php'
-];
-
-var cacheName = 'zeitumstellung-v1';
-var successResponses = /^0|([123]\d\d)|(40[14567])|410$/;
-
-/* https://developers.google.com/web/ilt/pwa/lab-caching-files-with-service-worker */
-self.addEventListener('install', function(event){
- console.log('Attempting to install service worker and cache static assets');
- event.waitUntil(
- caches.open(cacheName)
- .then(cache => {
- return cache.addAll(filesToCache);
- })
- );
- console.log('Installed');
-});
-
-self.addEventListener('activate', function(event){
- console.log('Activate');
-});
-
-function fetchAndCache(request){
- console.log('fetchAndCache', request.url);
- return fetch(request.clone()).then(function(response){
- console.log(request.method, request.url, response.status, response.type);
- if (request.method == 'GET' && response && successResponses.test(response.status) && response.type == 'basic'){
- console.log('Cache', request.url);
- caches.open(cacheName).then(function(cache){
- cache.put(request, response);
- });
- }
- return response.clone();
- });
-};
-
-function cacheOnly(request){
- console.log('cacheOnly', request.url);
- return caches.open(cacheName).then(function(cache){
- return cache.match(request);
- });
-};
-
-// Fastest strategy from https://github.com/GoogleChrome/sw-toolbox
-self.addEventListener('fetch', function(event){
- var request = event.request;
- var url = request.url;
- console.log('Fetch', url);
- event.respondWith(new Promise(function(resolve, reject){
- var rejected = false;
- var reasons = [];
-
- var maybeReject = function(reason){
- reasons.push(reason.toString());
- if (rejected){
- reject(new Error('Both cache and network failed: "' + reasons.join('", "') + '"'));
- } else {
- rejected = true;
- }
- };
-
- var maybeResolve = function(result){
- if (result instanceof Response){
- resolve(result);
- } else {
- maybeReject('No result returned');
- }
- };
-
- fetchAndCache(request.clone()).then(maybeResolve, maybeReject);
- cacheOnly(request).then(maybeResolve, maybeReject);
- }));
-});