next-pwa-pack
Version:
PWA cache provider for Next.js/React apps (service worker, manifest, offline page, SPA cache, offline)
26 lines (25 loc) • 1.32 kB
JavaScript
"use client";
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import RegisterSW from "./RegisterSW";
import CacheCurrentPage from "./CacheCurrentPage";
import DevPWAStatus from "./DevPWAStatus";
import SWRevalidateListener from "./SWRevalidateListener";
import SSERevalidateListener from "./SSERevalidateListener";
/**
* PWAProvider — wrapper for automatic service worker registration and page caching.
*
* @param children - React children
* @param swPath - path to service worker (default /sw.js)
* @param devMode - development mode with dev tools indicator and actions (left bottom corner of the screen) (default false)
*
* @example
* ```tsx
* import { PWAProvider } from "next-pwa-pack";
* export default function layout({ children }) {
* return <PWAProvider>{children}</PWAProvider>;
* }
* ```
*/
export default function PWAProvider({ children, swPath, devMode = false, serverRevalidation = { enabled: true, sseEndpoint: "/api/pwa/cache-events" }, }) {
return (_jsxs(_Fragment, { children: [_jsx(RegisterSW, { swPath: swPath }), _jsx(CacheCurrentPage, {}), _jsx(SWRevalidateListener, {}), _jsx(SSERevalidateListener, { sseEndpoint: serverRevalidation.sseEndpoint, enabled: serverRevalidation.enabled }), devMode && _jsx(DevPWAStatus, {}), children] }));
}