@budarin/pluggable-serviceworker 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +36 -16
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -6,39 +6,59 @@
6
6
 
7
7
  ## 🚀 Почему этот пакет облегчает разработку?
8
8
 
9
- Разработка Service Worker'ов традиционно сложна из-за необходимости вручную управлять множественными обработчиками событий, обработкой ошибок и порядком выполнения. Этот пакет решает эти проблемы:
9
+ Разработка Service Worker'ов традиционно сложна из-за необходимости вручную управлять множественными обработчиками событий, обработкой ошибок и порядком выполнения или изучать сложные и большие библиотеки. Этот пакет решает эти проблемы:
10
10
 
11
11
  ### 🔌 **Модульная архитектура**
12
12
 
13
13
  - **Плагинная система** позволяет разбивать функциональность на независимые модули
14
14
  - Каждый плагин отвечает за свою задачу (кеширование, аутентификация, уведомления)
15
15
  - Легко добавлять/удалять функциональность без изменения основного кода
16
- - Не нужно думать об инфраструктурном коде в обработчиках событий - пишите простой код не думая о сложностях кода самого сервисворкера
16
+ - Не нужно думать об инфраструктурном коде в обработчиках событий пишите простой код, не думая о сложностях самого сервис-воркера
17
17
 
18
- ### 🎯 **Управление порядком выполнения**
18
+ ### 🎯 **Предсказуемый порядок выполнения**
19
19
 
20
- - **Предсказуемый порядок** - плагины без `order` выполняются первыми, затем по возрастанию `order`
21
- - **Гибкость** - можно контролировать последовательность инициализации
22
- - **Масштабируемость** - легко добавлять новые плагины в нужном месте
20
+ - **Предсказуемый порядок** плагины без `order` выполняются первыми, затем по возрастанию/убыванию `order`
21
+ - **Гибкость** можно контролировать последовательность инициализации
22
+ - **Параллельно** для `install`, `activate`, `message`, `sync` независимые задачи выполняются одновременно
23
+ - **Последовательно** для `fetch` — первый вернувший ответ завершает цепочку; для `push` вызываются все плагины
24
+ - Легко добавлять новые плагины в нужное место
23
25
 
24
- ### **Оптимизированная логика выполнения**
26
+ ### 📖 **Легко изучить и понять**
25
27
 
26
- - **Параллельно** для `install`, `activate`, `message`, `sync` - независимые задачи выполняются одновременно
27
- - **Последовательно** для `fetch` первый успешный результат прерывает цепочку; для `push` — вызываются все плагины, показывается уведомление по каждому payload (или одно от библиотеки только когда **все** плагины вернули `undefined`)
28
- - **Производительность** - правильный выбор стратегии для каждого типа события
28
+ - Один контракт плагин с опциональными хуками, без отдельной модели роутинга и стратегий
29
+ - Мало сущностей: плагин, фабрика плагина, `initServiceWorker`, опции
30
+ - Низкая когнитивная нагрузка: цепочка плагинов и возвращаемые значения задают всё поведение
31
+ - Быстро войти в проект по примерам и типу `ServiceWorkerPlugin`
32
+
33
+ ### 📦 **Маленький размер**
34
+
35
+ - Минимум зависимостей, только рантайм плагинов
36
+ - Нет встроенной сборки и тяжёлых модулей — в бандл попадает только то, что вы подключаете
37
+ - Подходит для проектов, где важен размер бандла и простота зависимостей
38
+
39
+ ### 🎛 **Полный контроль над кодом**
40
+
41
+ - Список кешируемых ассетов и стратегии задаёте вы — в коде или конфиге
42
+ - Порядок плагинов, обработка ошибок и логгер полностью в ваших руках
43
+ - Любая кастомная логика в `fetch`, `push`, `sync` — через свои плагины, без обхода чужих абстракций
29
44
 
30
45
  ### 🛡️ **Централизованная обработка ошибок**
31
46
 
32
- - **Единый обработчик** для всех типов ошибок
33
- - **Типизированные ошибки** - знаешь, что именно сломалось
34
- - **Изоляция** - ошибка в одном плагине не ломает остальные
47
+ - **Единый обработчик** `onError` для всех типов ошибок в сервис-воркере с определение места возникновения ошибки в коде
48
+ - **Типизированные ошибки** знаешь, что именно сломалось
49
+ - **Изоляция** ошибка в одном плагине не ломает остальные
35
50
  - **Автоматическая обработка** глобальных событий ошибок
36
51
 
37
52
  ### 📝 **Удобное логирование**
38
53
 
39
- - **Настраиваемый логгер** с разными уровнями
40
- - **Контекстная информация** в логах
41
- - **Отладка** становится намного проще
54
+ - **Настраиваемый логгер** с разными уровнями (`trace`, `debug`, `info`, `warn`, `error`)
55
+ - Во все обработчики плагинов передаётся один и тот же `logger` — контекстная отладка
56
+ - При желании можно подставить любой объект с этим интерфейсом
57
+
58
+ ### ✅ **Готовые решения из коробки**
59
+
60
+ - Пресет **offlineFirst** — precache при установке и отдача из кеша при запросах
61
+ - Готовые сервисворкеры: **activateOnSignal**, **activateImmediately**, **activateOnNextVisit** — рабочий типовой сервис-воркер в несколько строк без написания плагинов
42
62
 
43
63
  ## 📦 Установка
44
64
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budarin/pluggable-serviceworker",
3
- "version": "1.5.1",
3
+ "version": "1.5.2",
4
4
  "description": "Extensible via plugins service worker",
5
5
  "keywords": [
6
6
  "serviceworker",