bunup 0.4.63 → 0.4.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +1 -1
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -29,7 +29,7 @@ See: https://bunup.dev/documentation/#named-entries`,{muted:!0,verticalSpace:!0}
|
|
|
29
29
|
const importMetaUrl = pathToFileURL(__filename).href;
|
|
30
30
|
|
|
31
31
|
`}};function Fe({format:e,target:n,shims:t}){let s=Sn(t).map((o)=>ne[o]).filter((o)=>o.appliesTo(e,n));if(s.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(o){o.onLoad({filter:Bn},async({path:i})=>{let a=await Bun.file(i).text(),c=s.filter((f)=>f.isNeededInFile(a));if(c.length===0)return;let{shebangLine:u,codeContent:m}=Tn(a),p=c.map((f)=>f.generateCode()).join("");return{contents:u+p+m}})}}}function Sn(e){if(e===!0)return Object.keys(ne);if(!e)return[];return Object.entries(e).filter(([n,t])=>t&&(n in ne)).map(([n])=>n)}function Tn(e){if(!e.startsWith("#!"))return{shebangLine:"",codeContent:e};let n=e.indexOf(`
|
|
32
|
-
`);return n===-1?{shebangLine:"",codeContent:e}:{shebangLine:e.slice(0,n+1),codeContent:e.slice(n+1)}}function Ge(e){return e.filter((n)=>n.type==="bun").map((n)=>n.plugin)}var E=new Set;async function W(e,n=process.cwd()){let t=H(e);if(!t.entry||t.entry.length===0||!t.outDir)throw new O("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(t.clean)be(n,t.outDir);M(t.silent);let{packageJson:r,path:s}=await _e(n);if(r&&s)l.cli(`Using package.json: ${y(s,2)}`,{muted:!0,identifier:t.name,once:`${s}:${t.name}`});let o=R(t.entry),i=r?.type,a=_(t,r),c=N(t);if(!t.dtsOnly){let u=[qe(a,c),...Ge(t.plugins??[])],m=t.format.flatMap((p)=>o.map((f)=>{return En(t,n,f,p,i,u)}));await Promise.all(m)}if(t.dts||t.dtsOnly){let u=await Ne(n,t.preferredTsconfigPath);if(u.path)l.cli(`Using tsconfig: ${y(u.path,2)}`,{muted:!0,identifier:t.name,once:`${u.path}:${t.name}`});let m=t.format.filter((f)=>{if(f==="iife"&&!T(i)&&t.format.includes("cjs"))return!1;return!0}),p=typeof t.dts==="object"&&t.dts.entry?R(t.dts.entry):Me(o);try{await Promise.all(p.map(async(f)=>{let w=await Re(n,f.path,t,u,r);await Promise.all(m.map(async($)=>{let G=t.outputExtension?.({format:$,packageType:i,options:t,entry:f}).dts??de($,i),K=`${n}/${t.outDir}/${f.name}${G}`;await Bun.write(K,w);let Ze=Bun.file(K).size||0;l.progress("DTS",y(K),Z(Ze),t.name)}))}))}catch(f){throw new g(b(f))}}if(t.onBuildSuccess)await t.onBuildSuccess(t)}async function En(e,n,t,r,s,o){let i=e.outputExtension?.({format:r,packageType:s,options:e,entry:t}).js??pe(r,s),a=await Bun.build({entrypoints:[`${n}/${t.path}`],format:r,naming:{entry:je(t.name,i)},splitting:We(e.splitting,r),bytecode:ve(e.bytecode,r),define:He(e.define,e.shims,e.env,r),minify:Ue(e),outdir:`${n}/${e.outDir}`,target:e.target,sourcemap:e.sourcemap,loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:De(e.env),plugins:[...o,Fe({format:r,target:e.target,shims:e.shims})],throw:!1});if(!a.success)for(let m of a.logs){if(m.level==="error")throw new O(m.message);if(m.level==="warning")l.warn(m.message);else if(m.level==="info")l.info(m.message)}let c=`${n}/${e.outDir}/${t.name}${i}`,u=Bun.file(c).size||0;l.progress(r.toUpperCase(),y(c),Z(u),e.name)}var D="0.4.
|
|
32
|
+
`);return n===-1?{shebangLine:"",codeContent:e}:{shebangLine:e.slice(0,n+1),codeContent:e.slice(n+1)}}function Ge(e){return e.filter((n)=>n.type==="bun").map((n)=>n.plugin)}var E=new Set;async function W(e,n=process.cwd()){let t=H(e);if(!t.entry||t.entry.length===0||!t.outDir)throw new O("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(t.clean)be(n,t.outDir);M(t.silent);let{packageJson:r,path:s}=await _e(n);if(r&&s)l.cli(`Using package.json: ${y(s,2)}`,{muted:!0,identifier:t.name,once:`${s}:${t.name}`});let o=R(t.entry),i=r?.type,a=_(t,r),c=N(t);if(!t.dtsOnly){let u=[qe(a,c),...Ge(t.plugins??[])],m=t.format.flatMap((p)=>o.map((f)=>{return En(t,n,f,p,i,u)}));await Promise.all(m)}if(t.dts||t.dtsOnly){let u=await Ne(n,t.preferredTsconfigPath);if(u.path)l.cli(`Using tsconfig: ${y(u.path,2)}`,{muted:!0,identifier:t.name,once:`${u.path}:${t.name}`});let m=t.format.filter((f)=>{if(f==="iife"&&!T(i)&&t.format.includes("cjs"))return!1;return!0}),p=typeof t.dts==="object"&&t.dts.entry?R(t.dts.entry):Me(o);try{await Promise.all(p.map(async(f)=>{let w=await Re(n,f.path,t,u,r);await Promise.all(m.map(async($)=>{let G=t.outputExtension?.({format:$,packageType:i,options:t,entry:f}).dts??de($,i),K=`${n}/${t.outDir}/${f.name}${G}`;await Bun.write(K,w);let Ze=Bun.file(K).size||0;l.progress("DTS",y(K),Z(Ze),t.name)}))}))}catch(f){throw new g(b(f))}}if(t.onBuildSuccess)await t.onBuildSuccess(t)}async function En(e,n,t,r,s,o){let i=e.outputExtension?.({format:r,packageType:s,options:e,entry:t}).js??pe(r,s),a=await Bun.build({entrypoints:[`${n}/${t.path}`],format:r,naming:{entry:je(t.name,i)},splitting:We(e.splitting,r),bytecode:ve(e.bytecode,r),define:He(e.define,e.shims,e.env,r),minify:Ue(e),outdir:`${n}/${e.outDir}`,target:e.target,sourcemap:e.sourcemap,loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:De(e.env),plugins:[...o,Fe({format:r,target:e.target,shims:e.shims})],throw:!1});if(!a.success)for(let m of a.logs){if(m.level==="error")throw new O(m.message);if(m.level==="warning")l.warn(m.message);else if(m.level==="info")l.info(m.message)}let c=`${n}/${e.outDir}/${t.name}${i}`,u=Bun.file(c).size||0;l.progress(r.toUpperCase(),y(c),Z(u),e.name)}var D="0.4.65";var Ke="https://bunup.dev/cli-options";function d(e){return(n,t)=>{t[e]=n===!0||n==="true"}}function x(e){return(n,t)=>{if(typeof n==="string")t[e]=n;else throw new h(`Option --${e} requires a string value`)}}function te(e){return(n,t)=>{if(typeof n==="string")t[e]=n.split(",");else throw new h(`Option --${e} requires a string value`)}}function An(e){return(n,t)=>{if(typeof n==="boolean")t[e]=n;else if(typeof n==="string")if(n.toLowerCase()==="true"||n.toLowerCase()==="false")t[e]=n.toLowerCase()==="true";else t[e]=n;else throw new h(`Option --${e} requires a boolean or string value`)}}function Rn(){console.log(`
|
|
33
33
|
Bunup - A blazing-fast build tool for your libraries built with Bun.
|
|
34
34
|
`),console.log("For more information on available options, visit:"),console.log(`\x1B[36m\x1B[4m${Ke}\x1B[0m
|
|
35
35
|
`),process.exit(0)}function Mn(){console.log(D),process.exit(0)}var Ye={name:{flags:["n","name"],handler:x("name")},format:{flags:["f","format"],handler:te("format")},outDir:{flags:["o","out-dir"],handler:x("outDir")},minify:{flags:["m","minify"],handler:d("minify")},watch:{flags:["w","watch"],handler:d("watch")},dts:{flags:["d","dts"],handler:d("dts")},banner:{flags:["bn","banner"],handler:x("banner")},footer:{flags:["ft","footer"],handler:x("footer")},external:{flags:["e","external"],handler:te("external")},sourcemap:{flags:["sm","sourcemap"],handler:An("sourcemap")},target:{flags:["t","target"],handler:x("target")},minifyWhitespace:{flags:["mw","minify-whitespace"],handler:d("minifyWhitespace")},minifyIdentifiers:{flags:["mi","minify-identifiers"],handler:d("minifyIdentifiers")},minifySyntax:{flags:["ms","minify-syntax"],handler:d("minifySyntax")},clean:{flags:["c","clean"],handler:d("clean")},splitting:{flags:["s","splitting"],handler:d("splitting")},noExternal:{flags:["ne","no-external"],handler:te("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:x("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:d("bytecode")},dtsOnly:{flags:["do","dts-only"],handler:d("dtsOnly")},silent:{flags:["silent"],handler:d("silent")},config:{flags:["config"],handler:x("config")},publicPath:{flags:["pp","public-path"],handler:x("publicPath")},env:{flags:["env"],handler:x("env")},shims:{flags:["shims"],handler:d("shims")},onSuccess:{flags:["onSuccess"],handler:x("onSuccess")},entry:{flags:["entry"],handler:(e,n,t)=>{if(typeof e!=="string")throw new h(`Entry${t?` --entry.${t}`:""} requires a string value`);let r=n.entry||{};if(t){if(r[t])l.warn(`Duplicate entry name '${t}' provided via --entry.${t}. Overwriting previous entry.`);r[t]=e}else{let s=v(e);if(r[s])l.warn(`Duplicate entry name '${s}' derived from '${e}'. Overwriting previous entry.`);r[s]=e}n.entry=r}},resolveDts:{flags:["rd","resolve-dts"],handler:(e,n)=>{if(!n.dts)n.dts={};if(typeof n.dts==="boolean")n.dts={};if(typeof e==="string")if(e==="true"||e==="false")n.dts.resolve=e==="true";else n.dts.resolve=e.split(",");else n.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>Rn()},version:{flags:["v","version"],handler:()=>Mn()}},q={};for(let e of Object.values(Ye))for(let n of e.flags)q[n]=e.handler;function ze(e){let n={};for(let t=0;t<e.length;t++){let r=e[t];if(r.startsWith("--")){let s,o;if(r.includes("=")){let[i,a]=r.slice(2).split("=",2);s=i,o=a}else{s=r.slice(2);let i=e[t+1];if(o=i&&!i.startsWith("-")?i:!0,typeof o==="string")t++}if(s.includes(".")){let[i,a]=s.split(".",2),c=q[i];if(c)c(o,n,a);else throw new h(`Unknown option: --${s}`)}else{let i=q[s];if(i)i(o,n);else throw new h(`Unknown option: --${s}`)}}else if(r.startsWith("-")){let s=r.slice(1),o=e[t+1],i=o&&!o.startsWith("-")?o:!0;if(typeof i==="string")t++;let a=q[s];if(a)a(i,n);else throw new h(`Unknown option: -${s}`)}else Ye.entry.handler(r,n,void 0)}return n}import{loadConfig as In}from"coffi";import F from"node:path";import jn from"chokidar";async function Qe(e,n){let t=new Set,r=H(e),s=R(r.entry);for(let c of s){let u=F.resolve(n,c.path),m=F.dirname(u);t.add(m)}let o=jn.watch(Array.from(t),{persistent:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50},ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,F.join(n,r.outDir)]}),i=!1,a=async(c=!1)=>{if(i)return;i=!0;try{let u=performance.now();if(await W({...r,entry:s.map((m)=>m.path),clean:!1},n),!c)l.cli(`\uD83D\uDCE6 Rebuild finished in ${k(performance.now()-u)}`);await re()}catch(u){Y(u)}finally{i=!1}};o.on("change",(c)=>{let u=F.relative(n,c);l.cli(`File changed: ${u}`,{muted:!0,once:u}),a()}),o.on("error",(c)=>{throw new j(`Watcher error: ${b(c)}`)}),await a(!0)}async function _n(e=Bun.argv.slice(2)){let n=ze(e);M(n.silent);let t=process.cwd(),{config:r,filepath:s}=await In({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:n.config,packageJsonProperty:"bunup"}),o=!r?[{rootDir:t,options:n}]:await Ie(r,t);if(l.cli(`Using bunup v${D} and bun v${Bun.version}`,{muted:!0}),s)l.cli(`Using config file: ${y(s,2)}`,{muted:!0});let i=performance.now();l.cli("Build started"),await Promise.all(o.flatMap(({options:u,rootDir:m})=>{return fe(u).map(async(f)=>{let w={...f,...Nn(n)};return Un(w,m)})}));let a=performance.now()-i,c=k(a);if(l.cli(`\u26A1\uFE0F Build completed in ${c}`),await re(),n.watch)l.cli("\uD83D\uDC40 Watching for file changes");if(n.onSuccess)l.cli(`Running command: ${n.onSuccess}`,{muted:!0}),kn(n.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!n.watch)process.exit(0)}function Nn(e){return{...e,onSuccess:void 0,config:void 0}}async function re(){if(E.size>0)await Ae(E),E.clear()}async function Un(e,n){if(e.watch)await Qe(e,n);else await W(e,n)}_n().catch((e)=>ce(e));export{re as validateDtsFiles};
|
package/package.json
CHANGED