feat: Multiple Features, Accessibility, Security, and UX Improvements #59

Merged
naomi merged 27 commits from feat/polish into main 2026-02-20 01:51:25 -08:00
Showing only changes of commit a0f6362c1b - Show all commits
+16 -2
View File
@@ -92,18 +92,25 @@ self.addEventListener('fetch', (event) => {
return;
}
// Images - Cache first, network fallback
// Images - Cache first, network fallback (only for same-origin)
if (request.destination === 'image' || url.pathname.match(/\.(jpg|jpeg|png|gif|webp|svg)$/)) {
// Don't cache external images
if (url.origin !== self.location.origin) {
return;
}
event.respondWith(
caches.match(request).then((cachedResponse) => {
if (cachedResponse) {
return cachedResponse;
}
return fetch(request).then((response) => {
if (response.ok) {
const responseClone = response.clone();
caches.open(IMAGE_CACHE).then((cache) => {
cache.put(request, responseClone);
});
}
return response;
});
})
@@ -111,18 +118,25 @@ self.addEventListener('fetch', (event) => {
return;
}
// Static assets - Cache first, network fallback
// Static assets - Cache first, network fallback (only for same-origin)
if (url.pathname.match(/\.(js|css|woff|woff2|ttf|eot)$/)) {
// Don't cache external scripts/styles (CDN resources, analytics, etc.)
if (url.origin !== self.location.origin) {
return;
}
event.respondWith(
caches.match(request).then((cachedResponse) => {
if (cachedResponse) {
return cachedResponse;
}
return fetch(request).then((response) => {
if (response.ok) {
const responseClone = response.clone();
caches.open(STATIC_CACHE).then((cache) => {
cache.put(request, responseClone);
});
}
return response;
});
})