@vite-pwa/create-pwa
Version:
PWA Templates
11 lines (9 loc) • 2.01 kB
JavaScript
import{rmSync as c,renameSync as $}from"node:fs";import{p as h,a as v,b as j,g as k,M as w}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 y(i){const{rootPath:r,name:a,themeColor:l,framework:m,customServiceWorker:f,prompt:p,offline:g,reloadSW:d,pwaAssets:u}=i,t=m==="lit-ts";s(`${r}/src/pwa-badge.${t?"t":"j"}s`,o=>{let e=o;return d?e=e.replace("_period = 0","_period = 60 * 60 * 1000 // check for updates every hour"):e=e.replace("_period = 0","_period = 0 // check for updates disabled"),g||(e=e.replace("onOfflineReady: () => (this._offlineReady = true),","")),e}),s(`${r}/index.html`,o=>{const e=o.replaceAll("Vite PWA + Lit",`${a}`);return u?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/my-element.${t?"t":"j"}s`,o=>o.replace("Vite logo",`${a} logo`)),f?(c(`${r}/src/${p?"claims":"prompt"}-sw.${t?"t":"j"}s`),$(`${r}/src/${p?"prompt":"claims"}-sw.${t?"t":"j"}s`,`${r}/src/sw.${t?"t":"j"}s`)):(c(`${i.rootPath}/src/prompt-sw.${t?"t":"j"}s`,{recursive:!0}),c(`${i.rootPath}/src/claims-sw.${t?"t":"j"}s`,{recursive:!0}));const n=h(`
import { defineConfig } from 'vite'
// https://vitejs.dev/config/
export default defineConfig({})
`);v(n,{from:"vite-plugin-pwa",imported:"VitePWA",constructor:"VitePWA",options:j(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`,()=>k(n,w).code)}export{y as customize};