UNPKG

create-hydro-app

Version:

Create hydro apps with no build configuration.

58 lines (54 loc) 1.4 kB
import { registerRoute } from "workbox-routing"; import { NetworkFirst, StaleWhileRevalidate, CacheFirst, } from "workbox-strategies"; import { CacheableResponsePlugin } from "workbox-cacheable-response"; import { ExpirationPlugin } from "workbox-expiration"; // Cache documents with NetworkFirst registerRoute( ({ request }) => request.mode === "navigate" || (request.destination === "" && request.url.endsWith("/")), new NetworkFirst({ cacheName: "pages", plugins: [ new CacheableResponsePlugin({ statuses: [200], }), ], }) ); // Cache assets with StaleWhileRevalidate registerRoute( ({ request }) => request.url.includes(".js") || request.destination === "style" || request.destination === "script" || request.destination === "worker", new StaleWhileRevalidate({ cacheName: "assets", plugins: [ new CacheableResponsePlugin({ statuses: [200], }), ], }) ); // Cache images with CacheFirst and 7 days expiration time registerRoute( ({ request }) => request.destination === "image", new CacheFirst({ cacheName: "images", plugins: [ new CacheableResponsePlugin({ statuses: [200], }), new ExpirationPlugin({ maxEntries: 50, maxAgeSeconds: 60 * 60 * 24 * 7, }), ], }) );