From 6e64d75b1c84cd6803dfc539abad7f46e07c2a82 Mon Sep 17 00:00:00 2001 From: ayoayco Date: Mon, 7 Apr 2025 23:48:39 +0100 Subject: [PATCH] feat: update type names and make serviceWorker options optional) --- package/src/index.ts | 6 ++++-- package/src/presets/delete-old-caches/activate.ts | 4 ++-- package/src/presets/delete-old-caches/index.ts | 4 ++-- package/src/presets/stale-while-revalidate/fetch.ts | 7 +++++-- package/src/presets/stale-while-revalidate/index.ts | 4 ++-- package/src/presets/stale-while-revalidate/install.ts | 4 ++-- package/src/types.ts | 6 +++--- 7 files changed, 20 insertions(+), 15 deletions(-) diff --git a/package/src/index.ts b/package/src/index.ts index 1023954..e0bbf24 100644 --- a/package/src/index.ts +++ b/package/src/index.ts @@ -7,7 +7,7 @@ import { readFile, writeFile, readdir, unlink } from 'node:fs/promises' import { fileURLToPath } from 'node:url' import { resolve, dirname, join } from 'node:path' import { build } from 'esbuild' -import type { Config } from './types' +import type { AstroServiceWorkerConfig } from './types' import type { AstroIntegration } from 'astro' const ASTROSW = '@ayco/astro-sw' @@ -16,7 +16,9 @@ const ASTROSW = '@ayco/astro-sw' * Accepts configuration options with service worker path * and injects needed variables such as `__assets` generated by Astro */ -export default function serviceWorker(options: Config): AstroIntegration { +export default function serviceWorker( + options?: AstroServiceWorkerConfig +): AstroIntegration { const { presets, assetCachePrefix = ASTROSW, diff --git a/package/src/presets/delete-old-caches/activate.ts b/package/src/presets/delete-old-caches/activate.ts index 91780d9..d2c0ed7 100644 --- a/package/src/presets/delete-old-caches/activate.ts +++ b/package/src/presets/delete-old-caches/activate.ts @@ -1,6 +1,6 @@ -import { ServiceWorkerPreset } from '../../types' +import { AstroServiceWorkerPreset } from '../../types' -export const activateFn: ServiceWorkerPreset['activate'] = async ({ +export const activateFn: AstroServiceWorkerPreset['activate'] = async ({ cacheName, }) => { const allowCacheNames = [cacheName] diff --git a/package/src/presets/delete-old-caches/index.ts b/package/src/presets/delete-old-caches/index.ts index 629bd73..1153dc7 100644 --- a/package/src/presets/delete-old-caches/index.ts +++ b/package/src/presets/delete-old-caches/index.ts @@ -1,7 +1,7 @@ -import { ServiceWorkerPreset } from '../../types' +import { AstroServiceWorkerPreset } from '../../types' import activate from './activate' -export const deleteOldCaches: () => ServiceWorkerPreset = () => ({ +export const deleteOldCaches: () => AstroServiceWorkerPreset = () => ({ activate, }) diff --git a/package/src/presets/stale-while-revalidate/fetch.ts b/package/src/presets/stale-while-revalidate/fetch.ts index b60881d..a726308 100644 --- a/package/src/presets/stale-while-revalidate/fetch.ts +++ b/package/src/presets/stale-while-revalidate/fetch.ts @@ -1,6 +1,9 @@ -import { ServiceWorkerPreset } from '../../types' +import { AstroServiceWorkerPreset } from '../../types' -export const fetchFn: ServiceWorkerPreset['fetch'] = ({ event, cacheName }) => { +export const fetchFn: AstroServiceWorkerPreset['fetch'] = ({ + event, + cacheName, +}) => { console.info('fetch happened', { data: event }) event.respondWith( diff --git a/package/src/presets/stale-while-revalidate/index.ts b/package/src/presets/stale-while-revalidate/index.ts index 0ca2afb..9125ead 100644 --- a/package/src/presets/stale-while-revalidate/index.ts +++ b/package/src/presets/stale-while-revalidate/index.ts @@ -2,11 +2,11 @@ * preset for stale-while-revalidate caching strategy */ -import { ServiceWorkerPreset } from '../../types' +import { AstroServiceWorkerPreset } from '../../types' import install from './install' import fetch from './fetch' -export const staleWhileRevalidate: () => ServiceWorkerPreset = () => ({ +export const staleWhileRevalidate: () => AstroServiceWorkerPreset = () => ({ install, fetch, }) diff --git a/package/src/presets/stale-while-revalidate/install.ts b/package/src/presets/stale-while-revalidate/install.ts index 1211080..769c3b4 100644 --- a/package/src/presets/stale-while-revalidate/install.ts +++ b/package/src/presets/stale-while-revalidate/install.ts @@ -1,8 +1,8 @@ -import { ServiceWorkerPreset } from '../../types' +import { AstroServiceWorkerPreset } from '../../types' declare const self: ServiceWorkerGlobalScope -export const installFn: ServiceWorkerPreset['install'] = ({ +export const installFn: AstroServiceWorkerPreset['install'] = ({ event, routes, cacheName, diff --git a/package/src/types.ts b/package/src/types.ts index 6dc2144..8c21fc2 100644 --- a/package/src/types.ts +++ b/package/src/types.ts @@ -1,6 +1,6 @@ import type { BuildOptions } from 'esbuild' -export type ServiceWorkerPreset = { +export type AstroServiceWorkerPreset = { activate?: (options: { event: ExtendableEvent; cacheName: string }) => void install?: (options: { event: ExtendableEvent @@ -10,9 +10,9 @@ export type ServiceWorkerPreset = { fetch?: (options: { event: FetchEvent; cacheName: string }) => void } -export type Config = { +export type AstroServiceWorkerConfig = { path?: string - presets?: ServiceWorkerPreset[] + presets?: AstroServiceWorkerPreset[] assetCachePrefix?: string assetCacheVersionID?: string customRoutes?: string[]