UNPKG

esbuild-plugin-rdi

Version:
3 lines (2 loc) 2.38 kB
"use strict";var R=Object.create;var u=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0})},h=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of w(t))!k.call(e,i)&&i!==n&&u(e,i,{get:()=>t[i],enumerable:!(r=E(t,i))||r.enumerable});return e};var d=(e,t,n)=>(n=e!=null?R(x(e)):{},h(t||!e||!e.__esModule?u(n,"default",{value:e,enumerable:!0}):n,e)),P=e=>h(u({},"__esModule",{value:!0}),e);var S={};$(S,{rdiPlugin:()=>T});module.exports=P(S);var g=d(require("fs")),m=d(require("path")),q=()=>(Date.now()*Math.random()).toString(36).slice(0,8),v=`esbuild-plugin-rdi-${q()}`,f=/(var |,)/,F=/require\(['"][^'"]*['"]\)/g,O=/require\(['"]/g,D=(e,t)=>{let n=new RegExp(`(var |,)[a-zA-Z_$][\\w$]*=require\\(["']${t}["']\\)[;,]?`,"g"),r=new RegExp(`[=]require\\(['"]${t}['"]\\)[;,]?`),i=e.match(n);if(i!==null&&i.length>1){let p=i[0].replace(r,"").replace(f,"");for(let c=1;c<i.length;c++){let s=i[c];/^,.*,$/.test(s)?s=s.slice(1):/^,.*;$/.test(s)?s=s.replace(";",""):/^var .*,$/.test(s)&&(s=s.slice(4)),e=e.replace(s,"");let a=i[c].replace(r,"").replace(f,"");e=e.replace(new RegExp(`(?<!--)\\b${a}\\b`,"g"),p)}}return e},y=e=>{var i;let t=e.match(F),n=(i=t==null?void 0:t.map(p=>p.replace(O,"").slice(0,-2)))!=null?i:[],r=[...new Set(n)];r.sort((p,c)=>c.length-p.length);for(let p of r)e=D(e,p);return e},B=(e,t,n)=>{var p,c,s,a;let r=(p=e.outputFiles)==null?void 0:p.filter(o=>o.text.trim()===""&&o.path.includes("chunk")).map(o=>o.path.split(m.default.sep).pop()),i=new RegExp(`import *"[^"]*(${(r==null?void 0:r.join("|"))||"--no-empty-chunks--"})";[ \r ]*`,"g");(c=e.outputFiles)==null||c.filter(o=>!o.path.endsWith(".map")&&!o.path.endsWith(".d.js")).forEach(o=>{let l=o.text;l=l.replace(i,""),o.path.endsWith(".js")&&(l=y(l)),o.contents=new TextEncoder().encode(l)}),e.outputFiles=(s=e.outputFiles)==null?void 0:s.filter(o=>o.text.trim()!==""),(n===void 0||n)&&((a=e.outputFiles)==null||a.forEach(o=>{g.default.mkdirSync(m.default.dirname(o.path),{recursive:!0}),g.default.writeFileSync(o.path,o.contents)}))},I=(e,t={})=>{let n=e.initialOptions.write;e.initialOptions.write=!1,e.initialOptions.minify&&e.onEnd(r=>B(r,t,n))},T=(e={})=>({name:v,setup:t=>I(t,e)});0&&(module.exports={rdiPlugin});