From 15732dc466a78e921c22a957d4cdbc15efb0c7af Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Wed, 18 Sep 2024 12:19:01 +0800 Subject: [PATCH] Move iconsRoute up Should intercept first before 'assets' --- public/sw.js | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/public/sw.js b/public/sw.js index 0456a5b7..bdb3ce8d 100644 --- a/public/sw.js +++ b/public/sw.js @@ -12,6 +12,29 @@ navigationPreload.enable(); self.__WB_DISABLE_DEV_LOGS = true; +const iconsRoute = new Route( + ({ request, sameOrigin }) => { + const isIcon = request.url.includes('/icons/'); + return sameOrigin && isIcon; + }, + new CacheFirst({ + cacheName: 'icons', + plugins: [ + new ExpirationPlugin({ + // Weirdly high maxEntries number, due to some old icons suddenly disappearing and not rendering + // NOTE: Temporary fix + maxEntries: 300, + maxAgeSeconds: 3 * 24 * 60 * 60, // 3 days + purgeOnQuotaError: true, + }), + new CacheableResponsePlugin({ + statuses: [0, 200], + }), + ], + }), +); +registerRoute(iconsRoute); + const assetsRoute = new Route( ({ request, sameOrigin }) => { const isAsset = @@ -59,27 +82,6 @@ const imageRoute = new Route( ); registerRoute(imageRoute); -const iconsRoute = new Route( - ({ request, sameOrigin }) => { - const isIcon = request.url.includes('/icons/'); - return sameOrigin && isIcon; - }, - new CacheFirst({ - cacheName: 'icons', - plugins: [ - new ExpirationPlugin({ - maxEntries: 300, - maxAgeSeconds: 3 * 24 * 60 * 60, // 3 days - purgeOnQuotaError: true, - }), - new CacheableResponsePlugin({ - statuses: [0, 200], - }), - ], - }), -); -registerRoute(iconsRoute); - // 1-day cache for // - /api/v1/custom_emojis // - /api/v1/lists/:id