@budarin/base-service-worker
v1.0.49
Published
Base service-worker for app
Readme
@budarin/base-service-worker
Базовый pluggable service worker для веб-приложений, основанный на @budarin/pluggable-serviceworker.
( в процессе разработки )
Функциональность
- Кеширование ресурсов - автоматическое кеширование ассетов приложения
- Статус мониторинг - эндпоинт для проверки состояния service worker
- Обмен сообщениями - JSON-RPC коммуникация между главным потоком и worker
- Оффлайн поддержка - обслуживание кешированного контента без сети
- Утилиты клиента - хелперы для регистрации и взаимодействия с SW
Требования
Сервисворкер ожидает, что кешируемые файлы в папке /assets/ содержат хэш в имени файла для корректного управления версиями и кешированием.
Установка
npm install @budarin/base-service-workerИспользование
В service worker:
import { initializeServiceWorker } from '@budarin/base-service-worker';
initializeServiceWorker([], {
version: '1.0.0',
assets: ['/app.js', '/app.css', '/manifest.json'],
logger: console,
offlineIndex: {
name: 'index.html',
headers: {
'X-Served-By': 'ServiceWorker',
},
},
});API
Основные функции
initializeServiceWorker(plugins, options)- инициализация service worker с плагинами
Утилиты клиента
registerDevSw(path)- регистрация service worker для разработкиcheckForNewServiceWorker()- проверка обновлений service workerpostMessageToSw(logger, message)- отправка сообщений в SW Сообщения отправляются в service worker как объект с обязательным строковым полемtype:{ type: string; }logStorageEstimateInfo()- логирование информации о хранилищеaskBrowserToPersistData()- запрос на постоянное хранение данных
Утилиты для кеша
openCache(name)- открытие кешаmatchCache(request, options)- поиск в кешеputCache(request, response)- сохранение в кешclearOldCaches(currentCaches)- очистка старых кешейcacheKeys- ключи кешей
JSON-RPC ответы
createJsonRpcSuccessResponse(id, result)- успешный ответcreateJsonRpcErrorResponse(id, error)- ошибка
Константы и сообщения
SW_INSTALLED,SW_INSTALLING,SW_START_INSTALLING- статусы SWPAGE_RELOAD,SKIP_WAITING- командыaskClientsToReload()- перезагрузка клиентовsendMerssageToClients(message)- отправка сообщений клиентам
Лицензия
ISC
