UNPKG

v-vite-plugin

Version:

A Vite.js plugin for integrating the V programming language with modern frontend tooling.

3 lines (2 loc) 6.9 kB
"use strict";var C=Object.create;var v=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var O=(r,e)=>{for(var i in e)v(r,i,{get:e[i],enumerable:!0})},E=(r,e,i,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of $(e))!U.call(r,o)&&o!==i&&v(r,o,{get:()=>e[o],enumerable:!(t=I(e,o))||t.enumerable});return r};var y=(r,e,i)=>(i=r!=null?C(A(r)):{},E(e||!r||!r.__esModule?v(i,"default",{value:r,enumerable:!0}):i,r)),x=r=>E(v({},"__esModule",{value:!0}),r);var J={};O(J,{default:()=>P,refreshPaths:()=>D});module.exports=x(J);var b=require("child_process"),u=y(require("fs"),1),h=y(require("path"),1),_=require("url"),p=y(require("picocolors"),1),g=require("vite"),S=y(require("vite-plugin-full-reload"),1),W={},R=!1,D=["src/resources/**","src/templates/**"].filter(r=>u.default.existsSync(r.replace(/\*\*$/,"")));function P(r){let e=H(r);return[T(e),...N(e)]}function T(r){let e,i,t,o={"@":"/src/resources"};return{name:"v",enforce:"post",config:(n,{command:c,mode:a})=>{t=n;let s=!!t.build?.ssr,l=(0,g.loadEnv)(a,t.envDir||process.cwd(),""),d=l.ASSET_URL??"",f=c==="serve"?M(l):void 0;return w(c,l),{base:t.base??(c==="build"?j(r,d):""),publicDir:t.publicDir??!1,build:{manifest:t.build?.manifest??(s?!1:"manifest.json"),ssrManifest:t.build?.ssrManifest??(s?"ssr-manifest.json":!1),outDir:t.build?.outDir??K(r,s),rollupOptions:{input:t.build?.rollupOptions?.input??Y(r,s)},assetsInlineLimit:t.build?.assetsInlineLimit??0},server:{origin:t.server?.origin??"http://__v_vite_placeholder__.test",cors:t.server?.cors??{origin:t.server?.origin??[/^https?:\/\/(?:(?:[^:]+\.)?localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/,...l.APP_URL?[l.APP_URL]:[],/^https?:\/\/.*\.(?:test|local)(:\d+)?$/]},...f?{host:t.server?.host??f.host,hmr:t.server?.hmr===!1?!1:{...f.hmr,...t.server?.hmr===!0?{}:t.server?.hmr},https:t.server?.https??f.https}:void 0},resolve:{alias:Array.isArray(t.resolve?.alias)?[...t.resolve?.alias??[],...Object.keys(o).map(m=>({find:m,replacement:o[m]}))]:{...o,...t.resolve?.alias}},ssr:{noExternal:k(t)}}},configResolved(n){i=n},transform(n){if(i.command==="serve")return n=n.replace(/http:\/\/__v_vite_placeholder__\.test/g,e),r.transformOnServe(n,e)},configureServer(n){let c=i.envDir||process.cwd(),a=(0,g.loadEnv)(i.mode,c,"APP_URL").APP_URL??"undefined";if(n.httpServer?.once("listening",()=>{let s=n.httpServer?.address();(d=>typeof d=="object")(s)&&(e=t.server?.origin?t.server.origin:q(s,n.config),u.default.writeFileSync(r.hotFile,`${e}${n.config.base.replace(/\/$/,"")}`),setTimeout(()=>{n.config.logger.info(` ${p.default.red(`${p.default.bold("V")} ${F()}`)} ${p.default.dim("plugin")} ${p.default.bold(`v${L()}`)}`),n.config.logger.info(""),n.config.logger.info(` ${p.default.green("\u279C")} ${p.default.bold("APP_URL")}: ${p.default.cyan(a.replace(/:(\d+)/,(d,f)=>`:${p.default.bold(f)}`))}`)},100))}),!R){let s=()=>{u.default.existsSync(r.hotFile)&&u.default.rmSync(r.hotFile)};process.on("exit",s),process.on("SIGINT",()=>process.exit()),process.on("SIGTERM",()=>process.exit()),process.on("SIGHUP",()=>process.exit()),R=!0}return()=>n.middlewares.use((s,l,d)=>{s.url==="/index.html"&&(l.statusCode=404,l.end(u.default.readFileSync(h.default.join(V(),"index.html")).toString().replace(/{{ APP_URL }}/g,a))),d()})}}}function w(r,e){if(!(r==="build"||e.V_BYPASS_ENV_CHECK==="1")&&typeof e.CI<"u")throw Error("You should not run the Vite HMR server in CI environments. You should build your assets for production instead. To disable this ENV check you may set V_BYPASS_ENV_CHECK=1")}function F(){try{let r=(0,b.execSync)("v --version").toString().trim();return r=r.replace(/(?:v|V\s+)?(\d+(?:\.\d+(?:\.\d+)?)?).*/,"$1"),r}catch{return""}}function L(){try{return JSON.parse(u.default.readFileSync(h.default.join(V(),"../package.json")).toString())?.version}catch{return""}}function H(r){if(typeof r>"u")throw new Error("v-vite-plugin: missing configuration.");if((typeof r=="string"||Array.isArray(r))&&(r={input:r,ssr:r}),typeof r.input>"u")throw new Error('v-vite-plugin: missing configuration for "input".');if(typeof r.publicDirectory=="string"&&(r.publicDirectory=r.publicDirectory.trim().replace(/^\/+/,""),r.publicDirectory===""))throw new Error("v-vite-plugin: publicDirectory must be a subdirectory. E.g. 'public'.");if(typeof r.buildDirectory=="string"&&(r.buildDirectory=r.buildDirectory.trim().replace(/^\/+/,"").replace(/\/+$/,""),r.buildDirectory===""))throw new Error("v-vite-plugin: buildDirectory must be a subdirectory. E.g. 'build'.");return typeof r.ssrOutputDirectory=="string"&&(r.ssrOutputDirectory=r.ssrOutputDirectory.trim().replace(/^\/+/,"").replace(/\/+$/,"")),r.refresh===!0&&(r.refresh=[{paths:D}]),{input:r.input,publicDirectory:r.publicDirectory??"public",buildDirectory:r.buildDirectory??"build",ssr:r.ssr??r.input,ssrOutputDirectory:r.ssrOutputDirectory??"ssr",refresh:r.refresh??!1,hotFile:r.hotFile??h.default.join(r.publicDirectory??"public","hot"),transformOnServe:r.transformOnServe??(e=>e)}}function j(r,e){return`${e}${e.endsWith("/")?"":"/"}${r.buildDirectory}/`}function Y(r,e){return e?r.ssr:r.input}function K(r,e){return e?r.ssrOutputDirectory:h.default.join(r.publicDirectory,r.buildDirectory)}function N({refresh:r}){return typeof r=="boolean"?[]:(typeof r=="string"&&(r=[{paths:[r]}]),Array.isArray(r)||(r=[r]),r.some(e=>typeof e=="string")&&(r=[{paths:r}]),r.flatMap(e=>{let i=(0,S.default)(e.paths,e.config);return i.__v_plugin_config=e,i}))}function q(r,e){let i=typeof e.server.hmr=="object"?e.server.hmr.protocol:null,t=i?i==="wss"?"https":"http":null,o=e.server.https?"https":"http",n=t??o,c=typeof e.server.hmr=="object"?e.server.hmr.host:null,a=typeof e.server.host=="string"?e.server.host:null,s=B(r)?`[${r.address}]`:r.address,l=c??a??s,f=(typeof e.server.hmr=="object"?e.server.hmr.clientPort:null)??r.port;return`${n}://${l}:${f}`}function B(r){return r.family==="IPv6"||r.family===6}function k(r){let e=r.ssr?.noExternal,i=["v-vite-plugin"];return e===!0?!0:typeof e>"u"?i:[...Array.isArray(e)?e:[e],...i]}function M(r){if(!(r.VITE_DEV_SERVER_KEY||r.VITE_DEV_SERVER_CERT))return;if(!(u.default.existsSync(r.VITE_DEV_SERVER_KEY)&&u.default.existsSync(r.VITE_DEV_SERVER_CERT)))throw Error(`Unable to find the certificate files specified in your environment. Ensure you have correctly configured VITE_DEV_SERVER_KEY: [${r.VITE_DEV_SERVER_KEY}] and VITE_DEV_SERVER_CERT: [${r.VITE_DEV_SERVER_CERT}].`);let e=G(r);if(!e)throw Error(`Unable to determine the host from the environment's APP_URL: [${r.APP_URL}].`);return{hmr:{host:e},host:e,https:{key:u.default.readFileSync(r.VITE_DEV_SERVER_KEY),cert:u.default.readFileSync(r.VITE_DEV_SERVER_CERT)}}}function G(r){try{return new URL(r.APP_URL).host}catch{return}}function V(){return(0,_.fileURLToPath)(new URL(".",W.url))}0&&(module.exports={refreshPaths});