// TETRIG 서비스 워커 — 오프라인 캐시 (앱처럼 설치/실행) const CACHE = 'tetrig-v1'; const ASSETS = [ './', './index.html', './manifest.webmanifest', './icon-192.png', './icon-512.png', './apple-touch-icon.png', ]; self.addEventListener('install', (e) => { e.waitUntil(caches.open(CACHE).then((c) => c.addAll(ASSETS))); 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) => { if (e.request.method !== 'GET') return; e.respondWith( caches.match(e.request).then((r) => r || fetch(e.request)) ); });