screentinker/frontend/sw-admin.js
ScreenTinker 1594a9d4a4 Initial open source release
ScreenTinker - open source digital signage management software.
MIT License, all features included, no license gates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 12:14:53 -05:00

22 lines
774 B
JavaScript

const CACHE = 'rd-admin-v1';
self.addEventListener('install', e => {
e.waitUntil(caches.open(CACHE).then(c => c.addAll([
'/', '/index.html', '/css/variables.css', '/css/reset.css', '/css/main.css',
'/js/app.js', '/js/api.js', '/js/socket.js', '/js/i18n.js',
'/js/components/toast.js'
])));
self.skipWaiting();
});
self.addEventListener('activate', e => {
e.waitUntil(caches.keys().then(keys => Promise.all(keys.filter(k => k !== CACHE).map(k => caches.delete(k)))));
self.clients.claim();
});
self.addEventListener('fetch', e => {
// Network first for API, cache first for static
if (e.request.url.includes('/api/') || e.request.url.includes('/socket.io/')) return;
e.respondWith(caches.match(e.request).then(r => r || fetch(e.request)));
});