diff options
| author | joonhoekim <26rote@gmail.com> | 2025-11-03 17:21:09 +0900 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-11-03 17:21:09 +0900 |
| commit | df5a6201bdf8ff9edfc6429b918cf2fd2b245684 (patch) | |
| tree | 2564a861f69b8803a29db7786bcf1113557ddd0f /lib | |
| parent | 6653a4bdf9ac9d12037ac62cfe8c8d31d60cadd3 (diff) | |
(김준회) Revert: 로그인 영상 관련 커밋 revert 처리
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/service-worker/register.ts | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/lib/service-worker/register.ts b/lib/service-worker/register.ts deleted file mode 100644 index 8babf788..00000000 --- a/lib/service-worker/register.ts +++ /dev/null @@ -1,118 +0,0 @@ -/** - * Service Worker 등록 유틸리티 - * - * 클라이언트 측에서 Service Worker를 등록하고 - * 캐시 상태를 확인할 수 있는 헬퍼 함수들 - */ - -export interface CacheStatus { - total: number; - cached: number; - urls: Array<{ url: string; cached: boolean }>; -} - -/** - * Service Worker 등록 - */ -export async function registerServiceWorker(): Promise<ServiceWorkerRegistration | null> { - if (typeof window === 'undefined' || !('serviceWorker' in navigator)) { - console.log('Service Worker not supported (supports https or localhost only)'); - return null; - } - - try { - const registration = await navigator.serviceWorker.register('/service-worker.js', { - scope: '/', - }); - - console.log('Service Worker registered:', registration); - - // 업데이트 확인 - registration.addEventListener('updatefound', () => { - const newWorker = registration.installing; - console.log('Service Worker update found'); - - newWorker?.addEventListener('statechange', () => { - if (newWorker.state === 'installed' && navigator.serviceWorker.controller) { - console.log('New Service Worker available. Refresh to update.'); - // 필요시 사용자에게 알림 표시 가능 - } - }); - }); - - return registration; - } catch (error) { - console.error('Service Worker registration failed:', error); - return null; - } -} - -/** - * Service Worker 캐시 상태 확인 - */ -export async function getCacheStatus(): Promise<CacheStatus | null> { - if (typeof window === 'undefined' || !navigator.serviceWorker.controller) { - return null; - } - - return new Promise((resolve) => { - const messageChannel = new MessageChannel(); - - messageChannel.port1.onmessage = (event) => { - resolve(event.data); - }; - - navigator.serviceWorker.controller.postMessage( - { type: 'GET_CACHE_STATUS' }, - [messageChannel.port2] - ); - - // 타임아웃 설정 (3초) - setTimeout(() => resolve(null), 3000); - }); -} - -/** - * Service Worker 캐시 삭제 - */ -export async function clearCache(): Promise<boolean> { - if (typeof window === 'undefined' || !navigator.serviceWorker.controller) { - return false; - } - - return new Promise((resolve) => { - const messageChannel = new MessageChannel(); - - messageChannel.port1.onmessage = (event) => { - resolve(event.data.success); - }; - - navigator.serviceWorker.controller.postMessage( - { type: 'CLEAR_CACHE' }, - [messageChannel.port2] - ); - - setTimeout(() => resolve(false), 3000); - }); -} - -/** - * Service Worker 등록 해제 - */ -export async function unregisterServiceWorker(): Promise<boolean> { - if (typeof window === 'undefined' || !('serviceWorker' in navigator)) { - return false; - } - - try { - const registrations = await navigator.serviceWorker.getRegistrations(); - for (const registration of registrations) { - await registration.unregister(); - } - return true; - } catch (error) { - console.error('Service Worker unregistration failed:', error); - return false; - } -} - |
