var cacheName = "parsley-cache-<%= File.mtime(Webpacker::manifest.config.public_manifest_path).to_i %>"; var staticAssets = [ "/", "<%= asset_pack_path("application.js") %>", "<%= asset_pack_path("application.css") %>" ]; self.addEventListener('install', function(event) { event.waitUntil( caches.open(cacheName).then(function (cache) { console.log('[ServiceWorker] Caching app shell'); return cache.addAll(staticAssets); }) ); }); self.addEventListener('activate', function(event) { event.waitUntil( caches.keys().then(function (keyList) { return Promise.all(keyList.map(function (key) { if (key !== cacheName) { console.log('[ServiceWorker] Removing old cache', key); return caches.delete(key); } })); }) ); }); self.addEventListener('fetch', function(event) { event.respondWith( caches.match(event.request).then(function (response) { return response || fetch(event.request); }) ); }); self.addEventListener('message', function (event) { if (event.data === "skipWaiting") { self.skipWaiting(); } });