> **>>> TL;DR:** Simple Astro integration to use your own authored service-worker; by default, devs retain full control as opposed to getting generated sw code # Astro SW The integration `serviceWorker` accepts configuration with service worker path and automatically injects needed dynamic variables such as `assets` generated by Astro for caching ## Usage Example `astro.config.mjs` ```js import { defineConfig } from "astro/config"; import node from "@astrojs/node"; import serviceWorker from "@ayco/astro-sw"; export default defineConfig({ output: "server", adapter: node({ mode: "middleware" }), integrations: [ serviceWorker({ path: "./src/sw.js", assetCachePrefix: 'cozy-reader', }) ] }); ``` ## API The integration accepts a configuration object of type `ServiceWorkerConfig` with the following properties | property | type | required? | notes | | --- | --- | --- | --- | | path | string | required | path to your *own* service worker script; no surprises & easy debugging | | assetCachePrefix | string | optional | cache storage name prefix; useful for debugging & invalidation | | assetCacheVersionID | string | optional | cache storage name versioning; by default, a random UUID is used but you can provide your own for easy debugging |