UNPKG

@vite-pwa/create-pwa

Version:
17 lines (15 loc) 2.58 kB
import{rmSync as n,renameSync as g}from"node:fs";import{p as h,a as $,b as P,g as y,M as R}from"../shared/create-pwa.DNW-qV5p.mjs";import{e as s}from"../index.mjs";import"fs";import"node:path";import"node:process";import"node:url";import"child_process";import"path";import"readline";import"events";function W(i){const{rootPath:r,name:c,themeColor:l,framework:m,customServiceWorker:f,prompt:a,offline:u,reloadSW:d,pwaAssets:v}=i,t=m==="vue-ts";s(`${r}/src/components/PWABadge.vue`,o=>{let e=o;return u||(e=e.replace("const { offlineReady, needRefresh, updateServiceWorker } = useRegisterSW({","const { needRefresh, updateServiceWorker } = useRegisterSW({").replace("if (offlineReady.value)","").replace("return 'App ready to work offline'","").replace("offlineReady.value = false","").replace('v-if="needRefresh"',"").replace('v-if="offlineReady || needRefresh"','v-if="needRefresh"')),d?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}),s(`${r}/index.html`,o=>{const e=o.replace("Vite PWA + Vue",`${c}`);return v?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="${l}"> <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"> `)}),s(`${r}/src/App.vue`,o=>o.replace("Vite PWA + Vue logo",`${c} logo`).replace("Vite PWA + Vue",`${c}`)),f?(n(`${r}/src/${a?"claims":"prompt"}-sw.${t?"t":"j"}s`),g(`${r}/src/${a?"prompt":"claims"}-sw.${t?"t":"j"}s`,`${r}/src/sw.${t?"t":"j"}s`)):(n(`${i.rootPath}/src/prompt-sw.${t?"t":"j"}s`,{recursive:!0}),n(`${i.rootPath}/src/claims-sw.${t?"t":"j"}s`,{recursive:!0}));const p=h(` import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue(), ], }) `);$(p,{from:"vite-plugin-pwa",imported:"VitePWA",constructor:"VitePWA",options:P(t,i,"src",{workbox:{globPatterns:["**/*.{js,css,html,svg,png,ico}"],cleanupOutdatedCaches:!0,clientsClaim:!0},injectManifest:{globPatterns:["**/*.{js,css,html,svg,png,ico}"]}})}),s(`${r}/vite.config.${t?"t":"j"}s`,()=>y(p,R).code)}export{W as customize};