@budarin/pluggable-serviceworker 1.0.27 → 1.0.29

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 (3) hide show
  1. package/README.md +55 -0
  2. package/package.json +2 -2
  3. package/TODO.md +0 -1
package/README.md CHANGED
@@ -147,6 +147,61 @@ initializeServiceWorker(
147
147
  );
148
148
  ```
149
149
 
150
+ ## 🔌 Интерфейс плагина
151
+
152
+ Каждый плагин должен реализовывать интерфейс `ServiceWorkerPlugin`:
153
+
154
+ ```typescript
155
+ interface ServiceWorkerPlugin {
156
+ /** Уникальное имя плагина */
157
+ name: string;
158
+
159
+ /** Порядок выполнения (опционально) */
160
+ order?: number;
161
+
162
+ /** Обработчик события install */
163
+ install?: (event: ExtendableEvent) => Promise<void> | void;
164
+
165
+ /** Обработчик события activate */
166
+ activate?: (event: ExtendableEvent) => Promise<void> | void;
167
+
168
+ /** Обработчик события fetch */
169
+ fetch?: (
170
+ event: FetchEvent
171
+ ) => Promise<Response | undefined> | Response | undefined;
172
+
173
+ /** Обработчик события message */
174
+ message?: (event: ExtendableMessageEvent) => Promise<void> | void;
175
+
176
+ /** Обработчик события sync */
177
+ sync?: (event: SyncEvent) => Promise<void> | void;
178
+
179
+ /** Обработчик события push */
180
+ push?: (event: PushEvent) => Promise<void> | void;
181
+
182
+ /** Обработчик события periodicsync */
183
+ periodicsync?: (event: PeriodicSyncEvent) => Promise<void> | void;
184
+ }
185
+ ```
186
+
187
+ ### 📝 Описание методов
188
+
189
+ | Метод | Событие | Возвращает | Описание |
190
+ | -------------- | -------------- | ----------------------- | --------------------------------------- |
191
+ | `install` | `install` | `void` | Инициализация плагина при установке SW |
192
+ | `activate` | `activate` | `void` | Активация плагина при обновлении SW |
193
+ | `fetch` | `fetch` | `Response \| undefined` | Обработка сетевых запросов |
194
+ | `message` | `message` | `void` | Обработка сообщений от основного потока |
195
+ | `sync` | `sync` | `void` | Синхронизация данных в фоне |
196
+ | `push` | `push` | `void` | Обработка push-уведомлений |
197
+ | `periodicsync` | `periodicsync` | `void` | Периодические фоновые задачи |
198
+
199
+ ### 🎯 Особенности обработчиков
200
+
201
+ - **`fetch`**: Возвращает `Response` для завершения цепочки или `undefined` для передачи следующему плагину
202
+ - **Остальные**: Не возвращают значения, выполняются для всех плагинов
203
+ - **Все методы опциональны** - реализуйте только нужные события
204
+
150
205
  ## 🎯 Порядок выполнения
151
206
 
152
207
  Плагины выполняются в следующем порядке:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budarin/pluggable-serviceworker",
3
- "version": "1.0.27",
3
+ "version": "1.0.29",
4
4
  "description": "Extensible via plugins service worker",
5
5
  "keywords": [
6
6
  "serviceworker",
@@ -26,7 +26,7 @@
26
26
  "typescript": "^5.9.2"
27
27
  },
28
28
  "dependencies": {
29
- "@budarin/http-constants": "^1.0.13"
29
+ "@budarin/http-constants": "^1.0.16"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "tsc",
package/TODO.md DELETED
@@ -1 +0,0 @@
1
- - а что если нужно последовательно выполнить куяу плагинов параллельно ?