@visulima/packem
Version:
A fast and modern bundler for Node.js and TypeScript.
2 lines (1 loc) • 3.69 kB
JavaScript
;var M=Object.defineProperty;var d=(e,r)=>M(e,"name",{value:r,configurable:!0});const O=require("@rollup/pluginutils"),v=require("@visulima/path"),f=require("esbuild"),q=require("../../../packem_shared/constants-CR0qfKZx.cjs"),$=require("@visulima/find-cache-dir"),E=require("@visulima/fs"),h=require("es-module-lexer");var P=Object.defineProperty,C=d((e,r)=>P(e,"name",{value:r,configurable:!0}),"n$1");const w=C(async(e,r)=>{r.length>0&&(await f.formatMessages(r,{color:!0,kind:"warning"})).forEach(o=>e.warn(o))},"warn");var R=Object.defineProperty,y=d((e,r)=>R(e,"name",{value:r,configurable:!0}),"t");const S=y(e=>{if(e==="es")return"esm";if(e==="cjs")return e},"getEsbuildFormat"),A=y(({sourceMap:e=!0,...r})=>async function(o,s,n){if(r.minify||r.minifyWhitespace||r.minifyIdentifiers||r.minifySyntax){const i=S(n.format),u=await f.transform(o,{format:i,loader:"js",sourcemap:e,...r});if(await w(this,u.warnings),u.code)return{code:u.code,map:u.map||null}}return null},"getRenderChunk");var F=Object.defineProperty,D=d((e,r)=>F(e,"name",{value:r,configurable:!0}),"n");const b=D(e=>e.replaceAll("\\","/"),"slash"),W=D(async e=>{const r=$.findCacheDirSync("@visulima/packem/optimize-deps",{create:!0,cwd:e.cwd});if(!r)throw new Error('[packem:optimize-deps]: failed to find or create cache directory "node_modules/.cache/packem/optimize_deps".');await h.init,await f.build({absWorkingDir:e.cwd,bundle:!0,entryPoints:e.include,format:"esm",ignoreAnnotations:!0,metafile:!0,outdir:r,sourcemap:e.sourceMap,splitting:!0,...e.esbuildOptions,plugins:[{name:"optimize-deps",async setup(s){s.onResolve({filter:/.*/},async n=>{if(e.exclude?.includes(n.path))return{external:!0};if(n.pluginData?.__resolving_dep_path__)return null;if(e.include.includes(n.path)){const i=await s.resolve(n.path,{kind:"import-statement",pluginData:{__resolving_dep_path__:!0},resolveDir:n.resolveDir});return i.errors.length>0||i.warnings.length>0?i:{namespace:"optimize-deps",path:n.path,pluginData:{absolute:i.path,resolveDir:n.resolveDir}}}return null}),s.onLoad({filter:/.*/,namespace:"optimize-deps"},async n=>{const{absolute:i,resolveDir:u}=n.pluginData,[,l]=h.parse(E.readFileSync(i));return{contents:l.length>0?`export * from '${b(i)}'`:`module.exports = require('${b(i)}')`,resolveDir:u}})}},...e.esbuildOptions?.plugins??[]]});const o=new Map;for(const s of e.include)o.set(s,{file:v.join(r,`${s}.js`)});return{cacheDir:r,optimized:o}},"optimizeDeps");var I=Object.defineProperty,L=d((e,r)=>I(e,"name",{value:r,configurable:!0}),"c");const z=L(({exclude:e,include:r,loaders:o,logger:s,optimizeDeps:n,sourceMap:i,...u})=>{const l=q.c;if(o!==void 0)for(let[t,a]of Object.entries(o))t=t.startsWith(".")?t:`.${t}`,typeof a=="string"?l[t]=a:a||delete l[t];const _=Object.keys(l),j=new RegExp(`\\.(${_.map(t=>t.slice(1)).join("|")})$`),x=O.createFilter(r??j,e);let c,g=process.cwd();return{async buildStart(){!n||c||(c=await W({cwd:g,sourceMap:i??!1,...n}),s.debug("optimized %O",c.optimized))},name:"packem:esbuild",options({context:t}){return t&&(g=t),null},renderChunk:A({...u,sourceMap:i}),async resolveId(t){if(c?.optimized.has(t)){const a=c.optimized.get(t);if(a)return s.debug("resolved %s to %s",t,a.file),a.file}return null},async transform(t,a){if(!x(a)||c?.optimized.has(a))return null;const k=v.extname(a),p=l[k];if(s.debug("transforming %s with %s loader",a,p),!p)return null;const m=await f.transform(t,{format:["base64","binary","dataurl","text","json"].includes(p)?"esm":void 0,loader:p,sourcefile:a.replace(/\.[cm]ts/,".ts"),sourcemap:i,...u});return await w(this,m.warnings),m.code?{code:m.code,map:m.map||null}:null}}},"esbuildTransformer");z.NAME="esbuild";module.exports=z;