serwist 9.1.1 → 9.2.1
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/dist/Serwist.d.ts +20 -3
- package/dist/Serwist.d.ts.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.js +27 -1
- package/dist/types.d.ts +92 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/Serwist.ts +64 -1
- package/src/constants.ts +1 -1
- package/src/types.ts +101 -0
package/dist/Serwist.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type HTTPMethod } from "./constants.js";
|
|
|
3
3
|
import { type GoogleAnalyticsInitializeOptions } from "./lib/googleAnalytics/initializeGoogleAnalytics.js";
|
|
4
4
|
import { type PrecacheFallbackEntry } from "./lib/precaching/PrecacheFallbackPlugin.js";
|
|
5
5
|
import { Strategy } from "./lib/strategies/Strategy.js";
|
|
6
|
-
import type { PrecacheOptions, RouteHandler, RouteHandlerCallback, RouteHandlerCallbackOptions, RouteMatchCallback, RouteMatchCallbackOptions } from "./types.js";
|
|
6
|
+
import type { PrecacheOptions, RequestRule, RouteHandler, RouteHandlerCallback, RouteHandlerCallbackOptions, RouteMatchCallback, RouteMatchCallbackOptions, InstallEvent } from "./types.js";
|
|
7
7
|
import type { RuntimeCaching } from "./types.js";
|
|
8
8
|
import type { CleanupResult, InstallResult, PrecacheEntry } from "./types.js";
|
|
9
9
|
export interface FallbackEntry extends PrecacheFallbackEntry {
|
|
@@ -57,6 +57,14 @@ export interface SerwistOptions {
|
|
|
57
57
|
* A list of caching strategies.
|
|
58
58
|
*/
|
|
59
59
|
runtimeCaching?: RuntimeCaching[];
|
|
60
|
+
/**
|
|
61
|
+
* Request rules that define how certain resources should be fetched
|
|
62
|
+
* before the service worker starts up.
|
|
63
|
+
*
|
|
64
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/InstallEvent/addRoutes
|
|
65
|
+
* @experimental
|
|
66
|
+
*/
|
|
67
|
+
requestRules?: RequestRule | RequestRule[];
|
|
60
68
|
/**
|
|
61
69
|
* Your configuration for {@linkcode initializeGoogleAnalytics}. This plugin is
|
|
62
70
|
* only initialized when this option is not `undefined` or `false`.
|
|
@@ -91,7 +99,8 @@ export declare class Serwist {
|
|
|
91
99
|
private readonly _routes;
|
|
92
100
|
private readonly _defaultHandlerMap;
|
|
93
101
|
private _catchHandler?;
|
|
94
|
-
|
|
102
|
+
private _requestRules?;
|
|
103
|
+
constructor({ precacheEntries, precacheOptions, skipWaiting, importScripts, navigationPreload, cacheId, clientsClaim, runtimeCaching, offlineAnalyticsConfig, disableDevLogs, fallbacks, requestRules, }?: SerwistOptions);
|
|
95
104
|
/**
|
|
96
105
|
* The strategy used to precache assets and respond to `fetch` events.
|
|
97
106
|
*/
|
|
@@ -121,7 +130,15 @@ export declare class Serwist {
|
|
|
121
130
|
* @param event
|
|
122
131
|
* @returns
|
|
123
132
|
*/
|
|
124
|
-
handleInstall(event:
|
|
133
|
+
handleInstall(event: InstallEvent): Promise<InstallResult>;
|
|
134
|
+
/**
|
|
135
|
+
* Registers request rules using the experimental `InstallEvent.addRoutes()` API.
|
|
136
|
+
* These rules allow bypassing the service worker for specific requests to improve performance.
|
|
137
|
+
*
|
|
138
|
+
* @param event The event object of an `install` event handler.
|
|
139
|
+
* @throws {Error} When the route rules are invalid
|
|
140
|
+
*/
|
|
141
|
+
registerRequestRules(event: InstallEvent): Promise<void>;
|
|
125
142
|
/**
|
|
126
143
|
* Deletes assets that are no longer present in the current precache manifest.
|
|
127
144
|
* Call this method from the service worker's `activate` event.
|
package/dist/Serwist.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Serwist.d.ts","sourceRoot":"","sources":["../src/Serwist.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,KAAK,gCAAgC,EAA6B,MAAM,oDAAoD,CAAC;AACtI,OAAO,EAAE,KAAK,qBAAqB,EAA0B,MAAM,4CAA4C,CAAC;AAEhH,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAE3B,kBAAkB,EAClB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"Serwist.d.ts","sourceRoot":"","sources":["../src/Serwist.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type HTTPMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT";
|
|
1
|
+
export type HTTPMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT" | "OPTIONS";
|
|
2
2
|
/**
|
|
3
3
|
* The default HTTP method, 'GET', used when there's no specific method
|
|
4
4
|
* configured for a route.
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1F;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAA6B,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,YAAY,0DAA2E,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -209,12 +209,14 @@ class Serwist {
|
|
|
209
209
|
_routes;
|
|
210
210
|
_defaultHandlerMap;
|
|
211
211
|
_catchHandler;
|
|
212
|
-
|
|
212
|
+
_requestRules;
|
|
213
|
+
constructor({ precacheEntries, precacheOptions, skipWaiting = false, importScripts, navigationPreload = false, cacheId, clientsClaim: clientsClaim$1 = false, runtimeCaching, offlineAnalyticsConfig, disableDevLogs: disableDevLogs$1 = false, fallbacks, requestRules } = {}){
|
|
213
214
|
const { precacheStrategyOptions, precacheRouteOptions, precacheMiscOptions } = parsePrecacheOptions(this, precacheOptions);
|
|
214
215
|
this._concurrentPrecaching = precacheMiscOptions.concurrency;
|
|
215
216
|
this._precacheStrategy = new PrecacheStrategy(precacheStrategyOptions);
|
|
216
217
|
this._routes = new Map();
|
|
217
218
|
this._defaultHandlerMap = new Map();
|
|
219
|
+
this._requestRules = requestRules;
|
|
218
220
|
this.handleInstall = this.handleInstall.bind(this);
|
|
219
221
|
this.handleActivate = this.handleActivate.bind(this);
|
|
220
222
|
this.handleFetch = this.handleFetch.bind(this);
|
|
@@ -336,6 +338,7 @@ class Serwist {
|
|
|
336
338
|
}
|
|
337
339
|
}
|
|
338
340
|
handleInstall(event) {
|
|
341
|
+
void this.registerRequestRules(event);
|
|
339
342
|
return waitUntil(event, async ()=>{
|
|
340
343
|
const installReportPlugin = new PrecacheInstallReportPlugin();
|
|
341
344
|
this.precacheStrategy.plugins.push(installReportPlugin);
|
|
@@ -366,6 +369,29 @@ class Serwist {
|
|
|
366
369
|
};
|
|
367
370
|
});
|
|
368
371
|
}
|
|
372
|
+
async registerRequestRules(event) {
|
|
373
|
+
if (!this._requestRules) {
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
if (!event?.addRoutes) {
|
|
377
|
+
if (process.env.NODE_ENV !== "production") {
|
|
378
|
+
logger.warn("Request rules ignored as the Static Routing API is not supported in this browser. " + "See https://caniuse.com/mdn-api_installevent_addroutes for more information.");
|
|
379
|
+
}
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
try {
|
|
383
|
+
if (process.env.NODE_ENV !== "production") {
|
|
384
|
+
logger.warn("Request rules may not be supported in all browsers as the Static Routing API is experimental. " + "This feature allows bypassing the service worker for specific requests to improve performance. " + "See https://developer.mozilla.org/en-US/docs/Web/API/InstallEvent/addRoutes for more information.");
|
|
385
|
+
}
|
|
386
|
+
await event.addRoutes(this._requestRules);
|
|
387
|
+
this._requestRules = undefined;
|
|
388
|
+
} catch (error) {
|
|
389
|
+
if (process.env.NODE_ENV !== "production") {
|
|
390
|
+
logger.error(`Failed to register request rules: ${error instanceof Error ? error.message : String(error)}. ` + "This may occur if the browser doesn't support the Static Routing API or if the request rules are invalid.");
|
|
391
|
+
}
|
|
392
|
+
throw error;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
369
395
|
handleActivate(event) {
|
|
370
396
|
return waitUntil(event, async ()=>{
|
|
371
397
|
const cache = await self.caches.open(this.precacheStrategy.cacheName);
|
package/dist/types.d.ts
CHANGED
|
@@ -350,4 +350,96 @@ export interface PrecacheOptions extends PrecacheStrategyOptions, PrecacheRouteO
|
|
|
350
350
|
export type UrlManipulation = ({ url }: {
|
|
351
351
|
url: URL;
|
|
352
352
|
}) => URL[];
|
|
353
|
+
/**
|
|
354
|
+
* Represents the condition object that defines which resources should match a rule.
|
|
355
|
+
* Based on the MDN documentation for `InstallEvent.addRoutes()`.
|
|
356
|
+
*/
|
|
357
|
+
export interface RequestRuleCondition {
|
|
358
|
+
/**
|
|
359
|
+
* A condition object defining conditions that must explicitly NOT be met to match the rule.
|
|
360
|
+
* Conditions defined inside a `not` condition are mutually exclusive with other conditions.
|
|
361
|
+
*/
|
|
362
|
+
not?: RequestRuleCondition;
|
|
363
|
+
/**
|
|
364
|
+
* An array of condition objects. One set of these defined conditions must be met to match the rule.
|
|
365
|
+
* Conditions defined inside an `or` condition are mutually exclusive with other conditions.
|
|
366
|
+
* Cannot be combined with other condition types.
|
|
367
|
+
*/
|
|
368
|
+
or?: RequestRuleCondition[];
|
|
369
|
+
/**
|
|
370
|
+
* A string representing the HTTP method a request should be sent by for it to match the rule.
|
|
371
|
+
*
|
|
372
|
+
* @example "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH"
|
|
373
|
+
*/
|
|
374
|
+
requestMethod?: HTTPMethod;
|
|
375
|
+
/**
|
|
376
|
+
* A string representing the mode a request should have for it to match the rule.
|
|
377
|
+
*
|
|
378
|
+
* @example "same-origin", "no-cors", "cors"
|
|
379
|
+
*/
|
|
380
|
+
requestMode?: RequestMode;
|
|
381
|
+
/**
|
|
382
|
+
* A string representing the destination of a request, i.e., what content type should be requested.
|
|
383
|
+
*
|
|
384
|
+
* @example "audio", "document", "script", "worker"
|
|
385
|
+
*/
|
|
386
|
+
requestDestination?: RequestDestination;
|
|
387
|
+
/**
|
|
388
|
+
* An enumerated value representing the required running status of the service worker for a request to match the rule.
|
|
389
|
+
*/
|
|
390
|
+
runningStatus?: "running" | "not-running";
|
|
391
|
+
/**
|
|
392
|
+
* A URLPattern instance, or a URLPattern constructor input pattern representing the URLs that match the rule.
|
|
393
|
+
* Regular expression capturing groups are not allowed, so `URLPattern.hasRegExpGroups` must be `false`.
|
|
394
|
+
*/
|
|
395
|
+
urlPattern?: URLPattern | URLPatternInit;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Represents the source from which matching resources will be loaded.
|
|
399
|
+
* Can be an enumerated value or an object specifying a named cache.
|
|
400
|
+
*/
|
|
401
|
+
export type RequestRuleSource = "cache" | "fetch-event" | "network" | "race-network-and-fetch-handler" | {
|
|
402
|
+
cacheName: string;
|
|
403
|
+
};
|
|
404
|
+
/**
|
|
405
|
+
* Represents a single router rule configuration.
|
|
406
|
+
* Each rule contains a condition (optional) and a source (required).
|
|
407
|
+
*/
|
|
408
|
+
export interface RequestRule {
|
|
409
|
+
/**
|
|
410
|
+
* An object defining one or more conditions that specify which resources should match this rule.
|
|
411
|
+
* If multiple properties are used, a resource must meet all specified conditions to match the rule.
|
|
412
|
+
*/
|
|
413
|
+
condition?: RequestRuleCondition;
|
|
414
|
+
/**
|
|
415
|
+
* An enumerated value or an object specifying the source from which matching resources will be loaded.
|
|
416
|
+
*/
|
|
417
|
+
source: RequestRuleSource;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Types based on MDN documentation
|
|
421
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/InstallEvent/addRoutes
|
|
422
|
+
*
|
|
423
|
+
* Extends the standard `ExtendableEvent` interface to include the `addRoutes` method
|
|
424
|
+
* for configuring static routes during the service worker's installation.
|
|
425
|
+
*
|
|
426
|
+
* The `addRoutes()` method specifies one or more static routes, which define rules
|
|
427
|
+
* for fetching specified resources that will be used even before service worker startup.
|
|
428
|
+
* This allows bypassing a service worker in cases where you always want to fetch
|
|
429
|
+
* a resource from the network or a browser cache, avoiding the performance overhead
|
|
430
|
+
* of unnecessary service worker cycles.
|
|
431
|
+
*/
|
|
432
|
+
export interface InstallEvent extends ExtendableEvent {
|
|
433
|
+
/**
|
|
434
|
+
* Specifies one or more static routes for fetching resources.
|
|
435
|
+
*
|
|
436
|
+
* @param requestRules A single object, or an array of one or more objects, representing rules
|
|
437
|
+
* for how certain resources should be fetched.
|
|
438
|
+
* @returns A Promise that fulfills with `undefined`.
|
|
439
|
+
* @throws {TypeError} Thrown if one or more of the rules objects is invalid, or has a source
|
|
440
|
+
* value of `"fetch-event"` when the associated service worker does not have
|
|
441
|
+
* a `fetch` event handler. Also thrown if you try to combine `or` with another condition type.
|
|
442
|
+
*/
|
|
443
|
+
addRoutes?(requestRules: RequestRule | RequestRule[]): Promise<void>;
|
|
444
|
+
}
|
|
353
445
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serwist",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A Swiss Army knife for service workers.",
|
|
6
6
|
"files": [
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"idb": "8.0.3"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"rollup": "4.
|
|
56
|
-
"typescript": "5.
|
|
57
|
-
"@serwist/configs": "9.
|
|
58
|
-
"@serwist/utils": "9.
|
|
55
|
+
"rollup": "4.49.0",
|
|
56
|
+
"typescript": "5.9.2",
|
|
57
|
+
"@serwist/configs": "9.2.1",
|
|
58
|
+
"@serwist/utils": "9.2.1"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"typescript": ">=5.0.0"
|
package/src/Serwist.ts
CHANGED
|
@@ -12,12 +12,14 @@ import { enableNavigationPreload } from "./navigationPreload.js";
|
|
|
12
12
|
import { setCacheNameDetails } from "./setCacheNameDetails.js";
|
|
13
13
|
import type {
|
|
14
14
|
PrecacheOptions,
|
|
15
|
+
RequestRule,
|
|
15
16
|
RouteHandler,
|
|
16
17
|
RouteHandlerCallback,
|
|
17
18
|
RouteHandlerCallbackOptions,
|
|
18
19
|
RouteHandlerObject,
|
|
19
20
|
RouteMatchCallback,
|
|
20
21
|
RouteMatchCallbackOptions,
|
|
22
|
+
InstallEvent,
|
|
21
23
|
} from "./types.js";
|
|
22
24
|
import type { RuntimeCaching } from "./types.js";
|
|
23
25
|
import type { CleanupResult, InstallResult, PrecacheEntry } from "./types.js";
|
|
@@ -90,6 +92,14 @@ export interface SerwistOptions {
|
|
|
90
92
|
* A list of caching strategies.
|
|
91
93
|
*/
|
|
92
94
|
runtimeCaching?: RuntimeCaching[];
|
|
95
|
+
/**
|
|
96
|
+
* Request rules that define how certain resources should be fetched
|
|
97
|
+
* before the service worker starts up.
|
|
98
|
+
*
|
|
99
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/InstallEvent/addRoutes
|
|
100
|
+
* @experimental
|
|
101
|
+
*/
|
|
102
|
+
requestRules?: RequestRule | RequestRule[];
|
|
93
103
|
/**
|
|
94
104
|
* Your configuration for {@linkcode initializeGoogleAnalytics}. This plugin is
|
|
95
105
|
* only initialized when this option is not `undefined` or `false`.
|
|
@@ -134,6 +144,7 @@ export class Serwist {
|
|
|
134
144
|
private readonly _routes: Map<HTTPMethod, Route[]>;
|
|
135
145
|
private readonly _defaultHandlerMap: Map<HTTPMethod, RouteHandlerObject>;
|
|
136
146
|
private _catchHandler?: RouteHandlerObject;
|
|
147
|
+
private _requestRules?: RequestRule | RequestRule[];
|
|
137
148
|
|
|
138
149
|
constructor({
|
|
139
150
|
precacheEntries,
|
|
@@ -147,6 +158,7 @@ export class Serwist {
|
|
|
147
158
|
offlineAnalyticsConfig,
|
|
148
159
|
disableDevLogs = false,
|
|
149
160
|
fallbacks,
|
|
161
|
+
requestRules,
|
|
150
162
|
}: SerwistOptions = {}) {
|
|
151
163
|
const { precacheStrategyOptions, precacheRouteOptions, precacheMiscOptions } = parsePrecacheOptions(this, precacheOptions);
|
|
152
164
|
|
|
@@ -154,6 +166,7 @@ export class Serwist {
|
|
|
154
166
|
this._precacheStrategy = new PrecacheStrategy(precacheStrategyOptions);
|
|
155
167
|
this._routes = new Map();
|
|
156
168
|
this._defaultHandlerMap = new Map();
|
|
169
|
+
this._requestRules = requestRules;
|
|
157
170
|
|
|
158
171
|
this.handleInstall = this.handleInstall.bind(this);
|
|
159
172
|
this.handleActivate = this.handleActivate.bind(this);
|
|
@@ -332,7 +345,9 @@ export class Serwist {
|
|
|
332
345
|
* @param event
|
|
333
346
|
* @returns
|
|
334
347
|
*/
|
|
335
|
-
handleInstall(event:
|
|
348
|
+
handleInstall(event: InstallEvent): Promise<InstallResult> {
|
|
349
|
+
void this.registerRequestRules(event);
|
|
350
|
+
|
|
336
351
|
return waitUntil<InstallResult>(event, async () => {
|
|
337
352
|
const installReportPlugin = new PrecacheInstallReportPlugin();
|
|
338
353
|
this.precacheStrategy.plugins.push(installReportPlugin);
|
|
@@ -367,6 +382,54 @@ export class Serwist {
|
|
|
367
382
|
});
|
|
368
383
|
}
|
|
369
384
|
|
|
385
|
+
/**
|
|
386
|
+
* Registers request rules using the experimental `InstallEvent.addRoutes()` API.
|
|
387
|
+
* These rules allow bypassing the service worker for specific requests to improve performance.
|
|
388
|
+
*
|
|
389
|
+
* @param event The event object of an `install` event handler.
|
|
390
|
+
* @throws {Error} When the route rules are invalid
|
|
391
|
+
*/
|
|
392
|
+
async registerRequestRules(event: InstallEvent): Promise<void> {
|
|
393
|
+
if (!this._requestRules) {
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
// Check if both the API and route rules are available
|
|
398
|
+
if (!event?.addRoutes) {
|
|
399
|
+
if (process.env.NODE_ENV !== "production") {
|
|
400
|
+
logger.warn(
|
|
401
|
+
"Request rules ignored as the Static Routing API is not supported in this browser. " +
|
|
402
|
+
"See https://caniuse.com/mdn-api_installevent_addroutes for more information.",
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
try {
|
|
409
|
+
if (process.env.NODE_ENV !== "production") {
|
|
410
|
+
logger.warn(
|
|
411
|
+
"Request rules may not be supported in all browsers as the Static Routing API is experimental. " +
|
|
412
|
+
"This feature allows bypassing the service worker for specific requests to improve performance. " +
|
|
413
|
+
"See https://developer.mozilla.org/en-US/docs/Web/API/InstallEvent/addRoutes for more information.",
|
|
414
|
+
);
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
await event.addRoutes(this._requestRules);
|
|
418
|
+
|
|
419
|
+
// Free up the rules object.
|
|
420
|
+
this._requestRules = undefined;
|
|
421
|
+
} catch (error) {
|
|
422
|
+
if (process.env.NODE_ENV !== "production") {
|
|
423
|
+
logger.error(
|
|
424
|
+
`Failed to register request rules: ${error instanceof Error ? error.message : String(error)}. ` +
|
|
425
|
+
"This may occur if the browser doesn't support the Static Routing API or if the request rules are invalid.",
|
|
426
|
+
);
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
throw error;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
370
433
|
/**
|
|
371
434
|
* Deletes assets that are no longer present in the current precache manifest.
|
|
372
435
|
* Call this method from the service worker's `activate` event.
|
package/src/constants.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
https://opensource.org/licenses/MIT.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
export type HTTPMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT";
|
|
9
|
+
export type HTTPMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT" | "OPTIONS";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* The default HTTP method, 'GET', used when there's no specific method
|
package/src/types.ts
CHANGED
|
@@ -395,3 +395,104 @@ export interface PrecacheOptions extends PrecacheStrategyOptions, PrecacheRouteO
|
|
|
395
395
|
}
|
|
396
396
|
|
|
397
397
|
export type UrlManipulation = ({ url }: { url: URL }) => URL[];
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Represents the condition object that defines which resources should match a rule.
|
|
401
|
+
* Based on the MDN documentation for `InstallEvent.addRoutes()`.
|
|
402
|
+
*/
|
|
403
|
+
export interface RequestRuleCondition {
|
|
404
|
+
/**
|
|
405
|
+
* A condition object defining conditions that must explicitly NOT be met to match the rule.
|
|
406
|
+
* Conditions defined inside a `not` condition are mutually exclusive with other conditions.
|
|
407
|
+
*/
|
|
408
|
+
not?: RequestRuleCondition;
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* An array of condition objects. One set of these defined conditions must be met to match the rule.
|
|
412
|
+
* Conditions defined inside an `or` condition are mutually exclusive with other conditions.
|
|
413
|
+
* Cannot be combined with other condition types.
|
|
414
|
+
*/
|
|
415
|
+
or?: RequestRuleCondition[];
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* A string representing the HTTP method a request should be sent by for it to match the rule.
|
|
419
|
+
*
|
|
420
|
+
* @example "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH"
|
|
421
|
+
*/
|
|
422
|
+
requestMethod?: HTTPMethod;
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* A string representing the mode a request should have for it to match the rule.
|
|
426
|
+
*
|
|
427
|
+
* @example "same-origin", "no-cors", "cors"
|
|
428
|
+
*/
|
|
429
|
+
requestMode?: RequestMode;
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* A string representing the destination of a request, i.e., what content type should be requested.
|
|
433
|
+
*
|
|
434
|
+
* @example "audio", "document", "script", "worker"
|
|
435
|
+
*/
|
|
436
|
+
requestDestination?: RequestDestination;
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* An enumerated value representing the required running status of the service worker for a request to match the rule.
|
|
440
|
+
*/
|
|
441
|
+
runningStatus?: "running" | "not-running";
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* A URLPattern instance, or a URLPattern constructor input pattern representing the URLs that match the rule.
|
|
445
|
+
* Regular expression capturing groups are not allowed, so `URLPattern.hasRegExpGroups` must be `false`.
|
|
446
|
+
*/
|
|
447
|
+
urlPattern?: URLPattern | URLPatternInit;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Represents the source from which matching resources will be loaded.
|
|
452
|
+
* Can be an enumerated value or an object specifying a named cache.
|
|
453
|
+
*/
|
|
454
|
+
export type RequestRuleSource = "cache" | "fetch-event" | "network" | "race-network-and-fetch-handler" | { cacheName: string };
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Represents a single router rule configuration.
|
|
458
|
+
* Each rule contains a condition (optional) and a source (required).
|
|
459
|
+
*/
|
|
460
|
+
export interface RequestRule {
|
|
461
|
+
/**
|
|
462
|
+
* An object defining one or more conditions that specify which resources should match this rule.
|
|
463
|
+
* If multiple properties are used, a resource must meet all specified conditions to match the rule.
|
|
464
|
+
*/
|
|
465
|
+
condition?: RequestRuleCondition;
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* An enumerated value or an object specifying the source from which matching resources will be loaded.
|
|
469
|
+
*/
|
|
470
|
+
source: RequestRuleSource;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Types based on MDN documentation
|
|
475
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/InstallEvent/addRoutes
|
|
476
|
+
*
|
|
477
|
+
* Extends the standard `ExtendableEvent` interface to include the `addRoutes` method
|
|
478
|
+
* for configuring static routes during the service worker's installation.
|
|
479
|
+
*
|
|
480
|
+
* The `addRoutes()` method specifies one or more static routes, which define rules
|
|
481
|
+
* for fetching specified resources that will be used even before service worker startup.
|
|
482
|
+
* This allows bypassing a service worker in cases where you always want to fetch
|
|
483
|
+
* a resource from the network or a browser cache, avoiding the performance overhead
|
|
484
|
+
* of unnecessary service worker cycles.
|
|
485
|
+
*/
|
|
486
|
+
export interface InstallEvent extends ExtendableEvent {
|
|
487
|
+
/**
|
|
488
|
+
* Specifies one or more static routes for fetching resources.
|
|
489
|
+
*
|
|
490
|
+
* @param requestRules A single object, or an array of one or more objects, representing rules
|
|
491
|
+
* for how certain resources should be fetched.
|
|
492
|
+
* @returns A Promise that fulfills with `undefined`.
|
|
493
|
+
* @throws {TypeError} Thrown if one or more of the rules objects is invalid, or has a source
|
|
494
|
+
* value of `"fetch-event"` when the associated service worker does not have
|
|
495
|
+
* a `fetch` event handler. Also thrown if you try to combine `or` with another condition type.
|
|
496
|
+
*/
|
|
497
|
+
addRoutes?(requestRules: RequestRule | RequestRule[]): Promise<void>;
|
|
498
|
+
}
|