UNPKG

@atomazing-org/vite-config

Version:

A library providing a vite configuration with including PWA and MF supports.

2 lines 4.29 kB
"use strict";var M=Object.create;var p=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var G=(o,s)=>{for(var n in s)p(o,n,{get:s[n],enumerable:!0})},m=(o,s,n,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of T(s))!I.call(o,i)&&i!==n&&p(o,i,{get:()=>s[i],enumerable:!(r=N(s,i))||r.enumerable});return o},t=(o,s,n)=>(m(o,s,"default"),n&&m(n,s,"default")),a=(o,s,n)=>(n=o!=null?M(D(o)):{},m(s||!o||!o.__esModule?p(n,"default",{value:o,enumerable:!0}):n,o)),V=o=>m(p({},"__esModule",{value:!0}),o);var e={};G(e,{createViteConfig:()=>B});module.exports=V(e);var C=require("vite"),j=require("@module-federation/vite"),y=a(require("@vitejs/plugin-react")),S=require("vite-plugin-pwa"),v=require("vite-plugin-qrcode");var _={globPatterns:["assets/**/*.{js,css}","index.html","favicon.svg","manifest.webmanifest"],globIgnores:["**/@mui/icons-material/**","**/node_modules/**"],skipWaiting:!0,clientsClaim:!0,navigateFallback:"/index.html",runtimeCaching:[{urlPattern:({url:o})=>o.href.startsWith("https://"),handler:"NetworkFirst",options:{cacheName:"jsonplaceholder",networkTimeoutSeconds:5,expiration:{maxEntries:50,maxAgeSeconds:604800},cacheableResponse:{statuses:[0,200]}}},{urlPattern:({request:o})=>o.destination==="script"||o.destination==="style"||o.destination==="worker",handler:"CacheFirst",options:{cacheName:"app-assets",expiration:{maxEntries:60,maxAgeSeconds:2592e3},cacheableResponse:{statuses:[0,200]}}},{urlPattern:({request:o})=>o.mode==="navigate",handler:"NetworkFirst",options:{cacheName:"documents",networkTimeoutSeconds:10,expiration:{maxEntries:50,maxAgeSeconds:2592e3}}},{urlPattern:({request:o})=>o.destination==="image",handler:"CacheFirst",options:{cacheName:"images",expiration:{maxEntries:60,maxAgeSeconds:2592e3},cacheableResponse:{statuses:[0,200]}}}]},h=_;var F=a(require("@vitejs/plugin-basic-ssl")),O=a(require("vite-tsconfig-paths")),A=a(require("vite-plugin-checker"));var x=a(require("fs")),w=a(require("path")),k=require("esbuild"),P=a(require("fs/promises")),$=o=>{let s=process.cwd(),n=w.default.join(s,o);return x.default.existsSync(n)?n:null},g=async o=>{let s=$(o);if(!s)return null;try{let n=await P.default.readFile(s,"utf-8"),{code:r}=await(0,k.transform)(n,{loader:"ts",format:"esm",target:"esnext"});return(await import(`data:text/javascript;base64,${Buffer.from(r).toString("base64")}`)).default}catch(n){return console.error(`Error on ${o} loading.`,n),null}};var E=require("@lingui/vite-plugin");t(e,require("vite-plugin-pwa"),module.exports);t(e,require("workbox-build"),module.exports);t(e,require("workbox-window"),module.exports);async function B({enableDevPwa:o=!1,enableHttps:s=!1,enableI8n:n=!1,moduleFederationOptions:r,...i}){let u=await g("manifest.ts"),d=await g("workbox.config.ts"),{plugins:f,build:R,...U}=i,l=[],b=["@emotion/babel-plugin"];return u&&(console.log("\u{1F527} Detected manifest.ts"),console.log(d?"\u{1F527} Detected workbox.config.ts":"\u{1F527} Default workbox.config.ts should be used"),l.push((0,S.VitePWA)({devOptions:{enabled:o,type:"module"},manifest:u,registerType:"autoUpdate",workbox:d||h,includeAssets:["**/*","sw.js"]})),o&&l.push((0,v.qrcode)({filter:c=>c.startsWith("http://192.168.0.")||c.startsWith("https://192.168.0.")})),console.log("\u{1F6E0}\uFE0F vite-plugin-pwa is connected")),r&&(l.push((0,j.federation)({filename:"remoteEntry.js",...r})),console.log("\u{1F6E0}\uFE0F @module-federation/vite is connected")),s&&(l.push((0,F.default)()),console.log("\u{1F6E0}\uFE0F @vitejs/plugin-basic-ssl is connected ")),n&&(b.push("@lingui/babel-plugin-lingui-macro"),l.push((0,E.lingui)()),console.log("\u{1F6E0}\uFE0F @lingui/vite-plugin is connected ")),(0,C.defineConfig)({test:{globals:!0},plugins:[...l,(0,y.default)({jsxImportSource:"@emotion/react",babel:{plugins:b}}),(0,O.default)(),(0,A.default)({typescript:!0}),...f!=null?f:[]],resolve:{extensions:[".tsx",".ts",".jsx",".js",".json",".mjs",".mts"]},build:{rollupOptions:{onwarn(c,W){c.code==="SOURCEMAP_ERROR"||c.message.includes("PURE")||W(c)}},...R},...U})}0&&(module.exports={createViteConfig,...require("vite-plugin-pwa"),...require("workbox-build"),...require("workbox-window")}); //# sourceMappingURL=index.js.map