@budarin/pluggable-serviceworker 1.0.27 → 1.0.28
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.
- package/README.md +55 -0
- package/package.json +2 -2
- package/TODO.md +0 -1
- package/dist/index.d.ts +0 -65
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +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.
|
|
3
|
+
"version": "1.0.28",
|
|
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.
|
|
29
|
+
"@budarin/http-constants": "^1.0.15"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "tsc",
|
package/TODO.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
- а что если нужно последовательно выполнить куяу плагинов параллельно ?
|
package/dist/index.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
export declare enum ServiceWorkerErrorType {
|
|
2
|
-
ERROR = "error",
|
|
3
|
-
MESSAGE_ERROR = "messageerror",
|
|
4
|
-
UNHANDLED_REJECTION = "unhandledrejection",
|
|
5
|
-
REJECTION_HANDLED = "rejectionhandled",
|
|
6
|
-
PLUGIN_ERROR = "plugin_error"
|
|
7
|
-
}
|
|
8
|
-
interface SyncEvent extends ExtendableEvent {
|
|
9
|
-
readonly tag: string;
|
|
10
|
-
readonly lastChance: boolean;
|
|
11
|
-
}
|
|
12
|
-
interface PeriodicSyncEvent extends ExtendableEvent {
|
|
13
|
-
readonly tag: string;
|
|
14
|
-
}
|
|
15
|
-
declare global {
|
|
16
|
-
interface ServiceWorkerGlobalScopeEventMap {
|
|
17
|
-
sync: SyncEvent;
|
|
18
|
-
periodicsync: PeriodicSyncEvent;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export interface SwMessageEvent extends Omit<ExtendableMessageEvent, 'data'> {
|
|
22
|
-
data: {
|
|
23
|
-
type: string;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
export interface Logger {
|
|
27
|
-
info: (...data: unknown[]) => void;
|
|
28
|
-
warn: (...data: unknown[]) => void;
|
|
29
|
-
error: (...data: unknown[]) => void;
|
|
30
|
-
debug: (...data: unknown[]) => void;
|
|
31
|
-
}
|
|
32
|
-
interface ServiceWorkerEventHandlers {
|
|
33
|
-
install?: (event: ExtendableEvent) => void | Promise<void>;
|
|
34
|
-
activate?: (event: ExtendableEvent) => void | Promise<void>;
|
|
35
|
-
fetch?: (event: FetchEvent) => Promise<Response | undefined>;
|
|
36
|
-
message?: (event: SwMessageEvent) => void;
|
|
37
|
-
sync?: (event: SyncEvent) => Promise<void>;
|
|
38
|
-
periodicsync?: (event: PeriodicSyncEvent) => Promise<void>;
|
|
39
|
-
push?: (event: PushEvent) => void | Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
export interface ServiceWorkerPlugin extends ServiceWorkerEventHandlers {
|
|
42
|
-
name: string;
|
|
43
|
-
order?: number;
|
|
44
|
-
}
|
|
45
|
-
interface ServiceWorkerConfig {
|
|
46
|
-
logger: Logger;
|
|
47
|
-
onError?: (error: Error | any, event: Event, errorType?: ServiceWorkerErrorType) => void;
|
|
48
|
-
}
|
|
49
|
-
export type FetchResponse = Promise<Response | undefined>;
|
|
50
|
-
export declare function createEventHandlers(plugins: ServiceWorkerPlugin[], config: ServiceWorkerConfig): {
|
|
51
|
-
install: (event: ExtendableEvent) => void;
|
|
52
|
-
activate: (event: ExtendableEvent) => void;
|
|
53
|
-
fetch: (event: FetchEvent) => void;
|
|
54
|
-
message: (event: SwMessageEvent) => void;
|
|
55
|
-
sync: (event: SyncEvent) => void;
|
|
56
|
-
periodicsync: (event: PeriodicSyncEvent) => void;
|
|
57
|
-
push: (event: PushEvent) => void;
|
|
58
|
-
error: (event: ErrorEvent) => void;
|
|
59
|
-
messageerror: (event: MessageEvent) => void;
|
|
60
|
-
unhandledrejection: (event: PromiseRejectionEvent) => void;
|
|
61
|
-
rejectionhandled: (event: PromiseRejectionEvent) => void;
|
|
62
|
-
};
|
|
63
|
-
export declare function initializeServiceWorker(plugins: ServiceWorkerPlugin[], config: ServiceWorkerConfig): void;
|
|
64
|
-
export {};
|
|
65
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|