Skip to content

Commit c3ea600

Browse files
committed
fix(sw): precache failures
1 parent 2b0c8cd commit c3ea600

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

src/sw.js

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,29 @@ const otherManifest = [
2828
const EXCLUDED_PRECACHE_URLS = new Set([
2929
new URL("/icon_512x512.png", self.location).href,
3030
]);
31-
const manifestURLs = [...manifest, ...otherManifest]
32-
.map((entry) => new URL(entry.url, self.location).href)
33-
.filter((href) => !EXCLUDED_PRECACHE_URLS.has(href));
31+
32+
const allManifestURLs = [...manifest, ...otherManifest].map(
33+
(entry) => new URL(entry.url, self.location).href,
34+
);
35+
const requiredManifestURLs = allManifestURLs.filter(
36+
(href) => !EXCLUDED_PRECACHE_URLS.has(href),
37+
);
38+
39+
const optionalManifestURLs = [...EXCLUDED_PRECACHE_URLS];
3440

3541
self.addEventListener("install", (event) => {
3642
event.waitUntil(
37-
caches.open(cacheName).then((cache) => cache.addAll(manifestURLs)),
43+
(async () => {
44+
const cache = await caches.open(cacheName);
45+
46+
// Fail install only if "required" assets fail
47+
await cache.addAll(requiredManifestURLs);
48+
49+
// Optional assets: don't fail SW install if these fail
50+
await Promise.allSettled(
51+
optionalManifestURLs.map((url) => cache.add(url)),
52+
);
53+
})(),
3854
);
3955
});
4056
self.addEventListener("activate", (event) => {
@@ -44,15 +60,15 @@ self.addEventListener("activate", (event) => {
4460
// clean up those who are not listed in manifestURLs
4561
const keys = await cache.keys();
4662
for (const request of keys) {
47-
if (!manifestURLs.includes(request.url)) {
63+
if (!requiredManifestURLs.includes(request.url)) {
4864
await cache.delete(request);
4965
}
5066
}
5167
})(),
5268
);
5369
});
5470
registerRoute(
55-
({ url }) => manifestURLs.includes(url.href),
71+
({ url }) => requiredManifestURLs.includes(url.href),
5672
new NetworkFirst({
5773
cacheName,
5874
}),

0 commit comments

Comments
 (0)