@vite-pwa/create-pwa
Version:
PWA Templates
17 lines (15 loc) • 2.86 kB
JavaScript
import{rmSync as c,renameSync as u}from"node:fs";import{p as $,a as h,b as S,g as P,M as k}from"../shared/create-pwa.DNW-qV5p.mjs";import{e as a}from"../index.mjs";import"fs";import"node:path";import"node:process";import"node:url";import"child_process";import"path";import"readline";import"events";function R(s){const{rootPath:t,name:o,themeColor:p,framework:d,customServiceWorker:m,prompt:n,offline:f,reloadSW:v,pwaAssets:g}=s,r=d==="svelte-ts";a(`${t}/src/lib/PWABadge.svelte`,i=>{let e=i;return f||(e=e.replace("const { offlineReady, needRefresh, updateServiceWorker } = useRegisterSW({","const { needRefresh, updateServiceWorker } = useRegisterSW({").replace("offlineReady.set(false)","").replace("let toast = $derived($offlineReady || $needRefresh)","let toast = $derived($needRefresh)").replace("let message = $derived($offlineReady ? 'App ready to work offline' : ($needRefresh ? 'New content available, click on reload button to update.' : ''))","let message = $derived($needRefresh ? 'New content available, click on reload button to update.' : '')")),v?e=e.replace("PERIODIC_SYNC_COMMENT","check for updates every hour").replace("const period = 0","const period = 60 * 60 * 1000"):e=e.replace("PERIODIC_SYNC_COMMENT",`periodic sync is disabled, change the value to enable it, the period is in milliseconds
// You can remove onRegisteredSW callback and registerPeriodicSync function`),e}),a(`${t}/index.html`,i=>{const e=i.replace("Vite PWA + Svelte + TS",`${o}`).replace("Vite PWA + Svelte",`${o}`);return g?e.replace('<link rel="icon" type="image/svg+xml" href="/favicon.svg" />',""):e.replace('<link rel="icon" type="image/svg+xml" href="/favicon.svg" />',` <meta name="theme-color" content="${p}">
<link rel="icon" href="/favicon.ico" sizes="48x48">
<link rel="icon" href="/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon-180x180.png">
`)}),a(`${t}/src/App.svelte`,i=>i.replace("App Logo",`${o} Logo`).replace("Vite PWA + Svelte + TS",`${o}`).replace("Vite PWA + Svelte",`${o}`)),m?(c(`${t}/src/${n?"claims":"prompt"}-sw.${r?"t":"j"}s`),u(`${t}/src/${n?"prompt":"claims"}-sw.${r?"t":"j"}s`,`${t}/src/sw.${r?"t":"j"}s`)):(c(`${s.rootPath}/src/prompt-sw.${r?"t":"j"}s`,{recursive:!0}),c(`${s.rootPath}/src/claims-sw.${r?"t":"j"}s`,{recursive:!0}));const l=$(`
import { defineConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
svelte(),
],
})
`);h(l,{from:"vite-plugin-pwa",imported:"VitePWA",constructor:"VitePWA",options:S(r,s,"src",{workbox:{globPatterns:["**/*.{js,css,html,svg,png,ico}"],cleanupOutdatedCaches:!0,clientsClaim:!0},injectManifest:{globPatterns:["**/*.{js,css,html,svg,png,ico}"]}})}),a(`${t}/vite.config.${r?"t":"j"}s`,()=>P(l,k).code)}export{R as customize};