UNPKG

vite-plugin-rttist

Version:

RTTIST plugin adding support for advanced reflection features to Vite

2 lines (1 loc) 2.09 kB
"use strict";var c=Object.create;var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var R=(t,i)=>{for(var n in i)a(t,n,{get:i[n],enumerable:!0})},l=(t,i,n,e)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of d(i))!D.call(t,r)&&r!==n&&a(t,r,{get:()=>i[r],enumerable:!(e=g(i,r))||e.enumerable});return t};var I=(t,i,n)=>(n=t!=null?c(E(t)):{},l(i||!t||!t.__esModule?a(n,"default",{value:t,enumerable:!0}):n,t)),v=t=>l(a({},"__esModule",{value:!0}),t);var y={};R(y,{rttistPlugin:()=>p});module.exports=v(y);var o=I(require("fs")),f=require("path"),s=require("@rttist/ts-loader-wasm"),w=/\.[mc]?tsx?/i,h=/<script .*>([\s\S]*)<\/script>/gi,P=/\/internal.typelib$/,k=/\u{0}.*\/internal.typelib$/u;function p(t){if(!t.tsRootDir||t.tsRootDir.length===0)throw new Error("tsRootDir is required");if(!t.packageInfo||!t.packageInfo.rootDir||t.packageInfo.rootDir.length===0)throw new Error("packageInfo.rootDir is required");if(!t.packageInfo.name||t.packageInfo.name.length===0)throw new Error("packageInfo.name is required");if(!t.metadataOutDir||t.metadataOutDir.length===0)throw new Error("metadataOutDir is required");let i=null,n=null;return{name:"vite-plugin-rttist",enforce:"pre",configResolved(e){i=e.build.outDir},resolveId(e){if(P.test(e))return n==="serve"?(0,f.resolve)(t.metadataOutDir,"internal.typelib.js"):"\0"+e},handleHotUpdate(e){if(e.file.includes("/metadata.typelib.ts"))return[];if(e.file.includes("/internal.typelib.js"))return[]},async load(e){if(k.test(e)){let r=(0,f.resolve)(t.metadataOutDir,"internal.typelib.js");return await o.promises.readFile(r,"utf8")}if(e.endsWith(".vue")){let r=await o.promises.readFile(e,"utf8");return r=r.replace(h,(_,u)=>m(u,e,t)),r}else if(w.test(e)){let r=await o.promises.readFile(e,"utf8");return r=m(r,e,t),r}},config(e,r){return n=r.command,{server:{watch:{ignored:[/\/.metadata\//]}}}}}}function m(t,i,n){return(0,s.transform)(t,i,new s.PackageInfo(n.packageInfo.name,n.tsRootDir))}0&&(module.exports={rttistPlugin});