@budarin/pluggable-serviceworker 1.0.31 → 1.1.0

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 CHANGED
@@ -58,7 +58,7 @@ pnpm add @budarin/pluggable-serviceworker
58
58
 
59
59
  ```typescript
60
60
  // sw.js
61
- import { initializeServiceWorker } from '@budarin/pluggable-serviceworker';
61
+ import { initServiceWorker } from '@budarin/pluggable-serviceworker';
62
62
 
63
63
  // Простой плагин для кеширования
64
64
  const cachePlugin = {
@@ -76,17 +76,16 @@ const cachePlugin = {
76
76
  };
77
77
 
78
78
  // Инициализация Service Worker с плагинами
79
- initializeServiceWorker([cachePlugin], { logger: console });
79
+ initServiceWorker([cachePlugin], { logger: console });
80
80
  ```
81
81
 
82
82
  ## ⚙️ Конфигурация
83
83
 
84
- Функция `initializeServiceWorker` принимает второй параметр `config` типа `ServiceWorkerConfig`:
84
+ Функция `initServiceWorker` принимает второй параметр `config` типа `ServiceWorkerConfig`:
85
85
 
86
86
  ```typescript
87
87
  interface ServiceWorkerConfig {
88
- logger: Logger; // Обязательное поле
89
- // Опциональное поле
88
+ logger?: Logger; // Опционально, по умолчанию console
90
89
  onError?: (
91
90
  error: Error | any,
92
91
  event: Event,
@@ -97,9 +96,9 @@ interface ServiceWorkerConfig {
97
96
 
98
97
  ### Поля конфигурации
99
98
 
100
- #### `logger: Logger` (обязательное)
99
+ #### `logger?: Logger` (опциональное)
101
100
 
102
- Объект для логирования с методами `info`, `warn`, `error`, `debug`. Может быть передан `console` или любой другой объект, реализующий интерфейс `Logger`.
101
+ Объект для логирования с методами `info`, `warn`, `error`, `debug`. По умолчанию используется `console`. Может быть передан любой объект, реализующий интерфейс `Logger`.
103
102
 
104
103
  ```typescript
105
104
  interface Logger {
@@ -113,8 +112,10 @@ interface Logger {
113
112
  **Пример:**
114
113
 
115
114
  ```typescript
115
+ const logger = console; // Использование стандартного console
116
+
116
117
  const config = {
117
- logger: console, // Использование стандартного console
118
+ logger,
118
119
  // или
119
120
  logger: {
120
121
  info: (...data) => customLog('INFO', ...data),
@@ -141,13 +142,15 @@ const config = {
141
142
 
142
143
  ```typescript
143
144
  // Без onError - ошибки будут проигнорированы
144
- initializeServiceWorker([cachePlugin], { logger: console });
145
+ initServiceWorker([cachePlugin], { logger: console });
145
146
 
146
147
  // С onError - ошибки будут обработаны
147
- initializeServiceWorker([cachePlugin], {
148
- logger: console,
148
+ const logger = console; // Использование стандартного console
149
+
150
+ initServiceWorker([cachePlugin], {
151
+ logger,
149
152
  onError: (error, event, errorType) => {
150
- console.error('Service Worker error:', error, errorType);
153
+ logger.error('Service Worker error:', error, errorType);
151
154
  },
152
155
  });
153
156
  ```
@@ -158,45 +161,48 @@ initializeServiceWorker([cachePlugin], {
158
161
 
159
162
  ```typescript
160
163
  import {
161
- initializeServiceWorker,
164
+ initServiceWorker,
162
165
  ServiceWorkerErrorType,
163
166
  } from '@budarin/pluggable-serviceworker';
164
167
 
168
+ const logger = console; // или свой объект с методами info, warn, error, debug
169
+
165
170
  const config = {
171
+ logger,
166
172
  onError: (error, event, errorType) => {
167
- console.log(`Ошибка типа "${errorType}":`, error);
173
+ logger.info(`Ошибка типа "${errorType}":`, error);
168
174
 
169
175
  switch (errorType) {
170
176
  case ServiceWorkerErrorType.ERROR:
171
177
  // JavaScript ошибки
172
- console.error('JavaScript error:', error);
178
+ logger.error('JavaScript error:', error);
173
179
  break;
174
180
 
175
181
  case ServiceWorkerErrorType.MESSAGE_ERROR:
176
182
  // Ошибки сообщений
177
- console.error('Message error:', error);
183
+ logger.error('Message error:', error);
178
184
  break;
179
185
 
180
186
  case ServiceWorkerErrorType.UNHANDLED_REJECTION:
181
187
  // Необработанные Promise rejection
182
- console.error('Unhandled promise rejection:', error);
188
+ logger.error('Unhandled promise rejection:', error);
183
189
  break;
184
190
 
185
191
  case ServiceWorkerErrorType.REJECTION_HANDLED:
186
192
  // Обработанные Promise rejection
187
- console.log('Promise rejection handled:', error);
193
+ logger.info('Promise rejection handled:', error);
188
194
  break;
189
195
 
190
196
  case ServiceWorkerErrorType.PLUGIN_ERROR:
191
197
  // Ошибки в плагинах
192
- console.error('Plugin error:', error);
198
+ logger.error('Plugin error:', error);
193
199
  break;
194
200
 
195
201
  default:
196
202
  // Неизвестные типы ошибок
197
- console.error('Unknown error type:', error);
203
+ logger.error('Unknown error type:', error);
198
204
 
199
- // Отправка ошибки в аналитику
205
+ // можно даже так - отправка ошибки в аналитику
200
206
  fetch('/api/errors', {
201
207
  method: 'POST',
202
208
  body: JSON.stringify({
@@ -212,7 +218,7 @@ const config = {
212
218
  },
213
219
  };
214
220
 
215
- initializeServiceWorker(
221
+ initServiceWorker(
216
222
  [
217
223
  /* ваши плагины */
218
224
  ],
@@ -244,7 +250,7 @@ interface ServiceWorkerPlugin {
244
250
  ) => Promise<Response | undefined> | Response | undefined;
245
251
 
246
252
  /** Обработчик события message */
247
- message?: (event: ExtendableMessageEvent) => Promise<void> | void;
253
+ message?: (event: SwMessageEvent) => void;
248
254
 
249
255
  /** Обработчик события sync */
250
256
  sync?: (event: SyncEvent) => Promise<void> | void;
@@ -275,6 +281,22 @@ interface ServiceWorkerPlugin {
275
281
  - **Остальные**: Не возвращают значения, выполняются для всех плагинов
276
282
  - **Все методы опциональны** - реализуйте только нужные события
277
283
 
284
+ ### 🔄 Обновление Service Worker (skipWaiting / clients.claim)
285
+
286
+ Библиотека **не вызывает** `skipWaiting()` и `clients.claim()` — это поведение задаётся индивидуально в каждом проекте и оставлено на усмотрение плагинов. При необходимости вызывайте их в своих обработчиках `install` и `activate`:
287
+
288
+ ```typescript
289
+ const updatePlugin = {
290
+ name: 'update-plugin',
291
+ install: (event) => {
292
+ self.skipWaiting();
293
+ },
294
+ activate: (event) => {
295
+ event.waitUntil(self.clients.claim());
296
+ },
297
+ };
298
+ ```
299
+
278
300
  ## 🎯 Порядок выполнения
279
301
 
280
302
  Плагины выполняются в следующем порядке:
package/dist/index.d.ts CHANGED
@@ -29,6 +29,7 @@ export interface Logger {
29
29
  error: (...data: unknown[]) => void;
30
30
  debug: (...data: unknown[]) => void;
31
31
  }
32
+ export declare function __resetServiceWorkerState(): void;
32
33
  interface ServiceWorkerEventHandlers {
33
34
  install?: (event: ExtendableEvent) => void | Promise<void>;
34
35
  activate?: (event: ExtendableEvent) => void | Promise<void>;
@@ -42,9 +43,9 @@ export interface ServiceWorkerPlugin extends ServiceWorkerEventHandlers {
42
43
  name: string;
43
44
  order?: number;
44
45
  }
45
- interface ServiceWorkerConfig {
46
- logger: Logger;
47
- onError?: (error: Error | any, event: Event, errorType?: ServiceWorkerErrorType) => void;
46
+ export interface ServiceWorkerConfig {
47
+ logger?: Logger;
48
+ onError?: (error: Error | unknown, event: Event, errorType?: ServiceWorkerErrorType) => void;
48
49
  }
49
50
  export type FetchResponse = Promise<Response | undefined>;
50
51
  export declare function createEventHandlers(plugins: ServiceWorkerPlugin[], config: ServiceWorkerConfig): {
@@ -60,6 +61,6 @@ export declare function createEventHandlers(plugins: ServiceWorkerPlugin[], conf
60
61
  unhandledrejection: (event: PromiseRejectionEvent) => void;
61
62
  rejectionhandled: (event: PromiseRejectionEvent) => void;
62
63
  };
63
- export declare function initializeServiceWorker(plugins: ServiceWorkerPlugin[], config: ServiceWorkerConfig): void;
64
+ export declare function initServiceWorker(plugins: ServiceWorkerPlugin[], config?: ServiceWorkerConfig): void;
64
65
  export {};
65
66
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,6 +8,10 @@ export var ServiceWorkerErrorType;
8
8
  ServiceWorkerErrorType["PLUGIN_ERROR"] = "plugin_error";
9
9
  })(ServiceWorkerErrorType || (ServiceWorkerErrorType = {}));
10
10
  const sw = self;
11
+ let serviceWorkerInitialized = false;
12
+ export function __resetServiceWorkerState() {
13
+ serviceWorkerInitialized = false;
14
+ }
11
15
  export function createEventHandlers(plugins, config) {
12
16
  const handlers = {
13
17
  install: [],
@@ -42,10 +46,14 @@ export function createEventHandlers(plugins, config) {
42
46
  });
43
47
  return {
44
48
  install: (event) => {
45
- event.waitUntil(Promise.all(handlers.install.map((handler) => Promise.resolve(handler(event)).catch((error) => config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR)))));
49
+ event.waitUntil(Promise.all(handlers.install.map((handler) => Promise.resolve()
50
+ .then(() => handler(event))
51
+ .catch((error) => config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR)))));
46
52
  },
47
53
  activate: (event) => {
48
- event.waitUntil(Promise.all(handlers.activate.map((handler) => Promise.resolve(handler(event)).catch((error) => config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR)))));
54
+ event.waitUntil(Promise.all(handlers.activate.map((handler) => Promise.resolve()
55
+ .then(() => handler(event))
56
+ .catch((error) => config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR)))));
49
57
  },
50
58
  fetch: (event) => {
51
59
  event.respondWith((async () => {
@@ -69,15 +77,19 @@ export function createEventHandlers(plugins, config) {
69
77
  handler(event);
70
78
  }
71
79
  catch (error) {
72
- config.onError?.(error, event);
80
+ config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR);
73
81
  }
74
82
  });
75
83
  },
76
84
  sync: (event) => {
77
- event.waitUntil(Promise.all(handlers.sync.map((handler) => Promise.resolve(handler(event)).catch((error) => config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR)))));
85
+ event.waitUntil(Promise.all(handlers.sync.map((handler) => Promise.resolve()
86
+ .then(() => handler(event))
87
+ .catch((error) => config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR)))));
78
88
  },
79
89
  periodicsync: (event) => {
80
- event.waitUntil(Promise.all(handlers.periodicsync.map((handler) => Promise.resolve(handler(event)).catch((error) => config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR)))));
90
+ event.waitUntil(Promise.all(handlers.periodicsync.map((handler) => Promise.resolve()
91
+ .then(() => handler(event))
92
+ .catch((error) => config.onError?.(error, event, ServiceWorkerErrorType.PLUGIN_ERROR)))));
81
93
  },
82
94
  push: (event) => {
83
95
  event.waitUntil((async () => {
@@ -96,7 +108,7 @@ export function createEventHandlers(plugins, config) {
96
108
  config.onError?.(event.error, event, ServiceWorkerErrorType.ERROR);
97
109
  }
98
110
  catch (error) {
99
- sw.logger.error('Error in error handler:', error);
111
+ (sw.logger ?? console).error('Error in error handler:', error);
100
112
  }
101
113
  },
102
114
  messageerror: (event) => {
@@ -104,7 +116,7 @@ export function createEventHandlers(plugins, config) {
104
116
  config.onError?.(event.data, event, ServiceWorkerErrorType.MESSAGE_ERROR);
105
117
  }
106
118
  catch (error) {
107
- sw.logger.error('Error in messageerror handler:', error);
119
+ (sw.logger ?? console).error('Error in messageerror handler:', error);
108
120
  }
109
121
  },
110
122
  unhandledrejection: (event) => {
@@ -112,7 +124,7 @@ export function createEventHandlers(plugins, config) {
112
124
  config.onError?.(event.reason, event, ServiceWorkerErrorType.UNHANDLED_REJECTION);
113
125
  }
114
126
  catch (error) {
115
- sw.logger.error('Error in unhandledrejection handler:', error);
127
+ (sw.logger ?? console).error('Error in unhandledrejection handler:', error);
116
128
  }
117
129
  },
118
130
  rejectionhandled: (event) => {
@@ -120,14 +132,29 @@ export function createEventHandlers(plugins, config) {
120
132
  config.onError?.(event.reason, event, ServiceWorkerErrorType.REJECTION_HANDLED);
121
133
  }
122
134
  catch (error) {
123
- sw.logger.error('Error in rejectionhandled handler:', error);
135
+ (sw.logger ?? console).error('Error in rejectionhandled handler:', error);
124
136
  }
125
137
  },
126
138
  };
127
139
  }
128
- export function initializeServiceWorker(plugins, config) {
129
- sw.logger = config.logger;
130
- const handlers = createEventHandlers(plugins, config);
140
+ export function initServiceWorker(plugins, config) {
141
+ if (serviceWorkerInitialized) {
142
+ return;
143
+ }
144
+ serviceWorkerInitialized = true;
145
+ sw.logger = config?.logger ?? console;
146
+ const names = new Set();
147
+ for (const plugin of plugins) {
148
+ if (names.has(plugin.name)) {
149
+ (sw.logger ?? console).warn(`Duplicate plugin name: "${plugin.name}"`);
150
+ }
151
+ names.add(plugin.name);
152
+ }
153
+ const handlers = createEventHandlers(plugins, config ?? {});
154
+ self.addEventListener(SW_EVENT_ERROR, handlers.error);
155
+ self.addEventListener(SW_EVENT_MESSAGEERROR, handlers.messageerror);
156
+ self.addEventListener(SW_EVENT_UNHANDLEDREJECTION, handlers.unhandledrejection);
157
+ self.addEventListener(SW_EVENT_REJECTIONHANDLED, handlers.rejectionhandled);
131
158
  self.addEventListener(SW_EVENT_INSTALL, handlers.install);
132
159
  self.addEventListener(SW_EVENT_ACTIVATE, handlers.activate);
133
160
  self.addEventListener(SW_EVENT_FETCH, handlers.fetch);
@@ -135,9 +162,5 @@ export function initializeServiceWorker(plugins, config) {
135
162
  self.addEventListener(SW_EVENT_SYNC, handlers.sync);
136
163
  self.addEventListener(SW_EVENT_PERIODICSYNC, handlers.periodicsync);
137
164
  self.addEventListener(SW_EVENT_PUSH, handlers.push);
138
- self.addEventListener(SW_EVENT_ERROR, handlers.error);
139
- self.addEventListener(SW_EVENT_MESSAGEERROR, handlers.messageerror);
140
- self.addEventListener(SW_EVENT_UNHANDLEDREJECTION, handlers.unhandledrejection);
141
- self.addEventListener(SW_EVENT_REJECTIONHANDLED, handlers.rejectionhandled);
142
165
  }
143
166
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budarin/pluggable-serviceworker",
3
- "version": "1.0.31",
3
+ "version": "1.1.0",
4
4
  "description": "Extensible via plugins service worker",
5
5
  "keywords": [
6
6
  "serviceworker",
@@ -14,22 +14,29 @@
14
14
  "main": "dist/index.js",
15
15
  "types": "dist/index.d.ts",
16
16
  "type": "module",
17
+ "files": [
18
+ "dist",
19
+ "LICENSE",
20
+ "README.md"
21
+ ],
17
22
  "exports": {
18
- ".": "./dist/index.js",
19
- "./types": "./dist/index.d.ts"
23
+ ".": "./dist/index.js"
20
24
  },
21
25
  "devDependencies": {
22
- "@types/node": "^24.10.0",
26
+ "@types/node": "^24.10.1",
23
27
  "@types/serviceworker": "^0.0.153",
24
28
  "@types/web": "^0.0.269",
25
29
  "prettier": "^3.6.2",
26
- "typescript": "^5.9.3"
30
+ "typescript": "^5.9.3",
31
+ "vitest": "^3.2.4"
27
32
  },
28
33
  "dependencies": {
29
34
  "@budarin/http-constants": "^1.0.16"
30
35
  },
31
36
  "scripts": {
32
37
  "build": "tsc",
38
+ "test": "vitest run",
39
+ "test:watch": "vitest",
33
40
  "pnpm-install": "pnpm install",
34
41
  "upgrade-deps": "pnpm upgrade -i",
35
42
  "publish-package": "pnpm build && pnpm publish --access=public"