Files
glchat/web/src/lib/serviceWorker.ts
T

24 lines
1.0 KiB
TypeScript
Raw Normal View History

/**
* Регистрация сервис-воркера (AGENT.md, Фаза 5): офлайн-заглушка и кэш
* собранной статики. В dev-режиме воркер не нужен — он мешал бы горячей
* перезагрузке, поэтому регистрируем только production-сборку.
*/
/** registerServiceWorker включает офлайн-режим. Возвращает признак регистрации. */
export function registerServiceWorker(): boolean {
if (typeof window === 'undefined' || typeof navigator === 'undefined') {
return false;
}
if (!('serviceWorker' in navigator)) {
return false;
}
if (!import.meta.env.PROD) {
return false;
}
// Регистрация не должна ломать запуск приложения: ошибки только в консоль.
void navigator.serviceWorker.register('/sw.js', { scope: '/' }).catch((error: unknown) => {
console.warn('service worker registration failed', error);
});
return true;
}