bunup 0.4.70 → 0.4.71
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
|
@@ -16,7 +16,7 @@ var er=Object.create;var{getPrototypeOf:rr,defineProperty:le,getOwnPropertyNames
|
|
|
16
16
|
const importMetaUrl = pathToFileURL(__filename).href;
|
|
17
17
|
|
|
18
18
|
`}};function Ze({format:e,target:r,shims:n}){let i=jr(n).map((s)=>ie[s]).filter((s)=>s.appliesTo(e,r));if(i.length===0)return{name:"bunup:inject-shims",setup(){}};return{name:"bunup:inject-shims",setup(s){s.onLoad({filter:Ir},async({path:o})=>{let l=await Bun.file(o).text(),a=i.filter((h)=>h.isNeededInFile(l));if(a.length===0)return;let{shebangLine:c,codeContent:u}=vr(l),f=a.map((h)=>h.generateCode()).join("");return{contents:c+f+u}})}}}function jr(e){if(e===!0)return Object.keys(ie);if(!e)return[];return Object.entries(e).filter(([r,n])=>n&&(r in ie)).map(([r])=>r)}function vr(e){if(!e.startsWith("#!"))return{shebangLine:"",codeContent:e};let r=e.indexOf(`
|
|
19
|
-
`);return r===-1?{shebangLine:"",codeContent:e}:{shebangLine:e.slice(0,r+1),codeContent:e.slice(r+1)}}function Ne(e){return e.filter((r)=>r.type==="bun")}var k=new Set;async function Y(e,r=process.cwd()){let n=q(e);if(!n.entry||n.entry.length===0||!n.outDir)throw new B("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(n.clean)ye(r,n.outDir);v(n.silent);let{packageJson:t,path:i}=await De(r);if(t&&i)g.cli(`Using package.json: ${O(i,2)}`,{muted:!0,identifier:n.name,once:`${i}:${n.name}`});let s=E(n.entry),o=t?.type;if(!n.dtsOnly){let l=[Qe(n,t),...Ne(n.plugins??[]).map((c)=>c.plugin)],a=n.format.flatMap((c)=>s.map((u)=>{return Ur(n,r,u,c,o,l)}));await Promise.all(a)}if(n.dts||n.dtsOnly){let l=await He(r,n.preferredTsconfigPath);if(l.path)g.cli(`Using tsconfig: ${O(l.path,2)}`,{muted:!0,identifier:n.name,once:`${l.path}:${n.name}`});let a=n.format.filter((u)=>{if(u==="iife"&&!T(o)&&n.format.includes("cjs"))return!1;return!0}),c=typeof n.dts==="object"&&n.dts.entry?E(n.dts.entry):ve(s);try{await Promise.all(c.map(async(u)=>{let f=await je(r,u.fullEntryPath,n,l,t);await Promise.all(a.map(async(h)=>{let L=n.outputExtension?.({format:h,packageType:o,options:n,entry:u}).dts??he(h,o),ae=`${n.outDir}/${u.name}${L}`,ce=`${r}/${ae}`;await Bun.write(ce,f);let Je=Bun.file(ce).size||0;g.progress("DTS",ae,P(Je),n.name)}))}))}catch(u){throw new b(x(u))}}if(n.onBuildSuccess)await n.onBuildSuccess(n)}async function Ur(e,r,n,t,i,s){let o=e.outputExtension?.({format:t,packageType:i,options:e,entry:n}).js??xe(t,i),l=await Bun.build({entrypoints:[`${r}/${n.fullEntryPath}`],format:t,naming:{entry:Ue(n.name,o)},splitting:Ge(e.splitting,t),bytecode:qe(e.bytecode,t),define:Ye(e.define,e.shims,e.env,t),minify:Fe(e),outdir:`${r}/${e.outDir}`,target:e.target,sourcemap:e.sourcemap,loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:Ke(e.env),plugins:[...s,Ze({format:t,target:e.target,shims:e.shims})],throw:!1});if(!l.success)for(let f of l.logs){if(f.level==="error")throw new B(f.message);if(f.level==="warning")g.warn(f.message);else if(f.level==="info")g.info(f.message)}let a=`${e.outDir}/${n.name}${o}`,c=`${r}/${a}`,u=Bun.file(c).size||0;g.progress(t.toUpperCase(),a,P(u),e.name)}var se=N(j(),1);var G="0.4.
|
|
19
|
+
`);return r===-1?{shebangLine:"",codeContent:e}:{shebangLine:e.slice(0,r+1),codeContent:e.slice(r+1)}}function Ne(e){return e.filter((r)=>r.type==="bun")}var k=new Set;async function Y(e,r=process.cwd()){let n=q(e);if(!n.entry||n.entry.length===0||!n.outDir)throw new B("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");if(n.clean)ye(r,n.outDir);v(n.silent);let{packageJson:t,path:i}=await De(r);if(t&&i)g.cli(`Using package.json: ${O(i,2)}`,{muted:!0,identifier:n.name,once:`${i}:${n.name}`});let s=E(n.entry),o=t?.type;if(!n.dtsOnly){let l=[Qe(n,t),...Ne(n.plugins??[]).map((c)=>c.plugin)],a=n.format.flatMap((c)=>s.map((u)=>{return Ur(n,r,u,c,o,l)}));await Promise.all(a)}if(n.dts||n.dtsOnly){let l=await He(r,n.preferredTsconfigPath);if(l.path)g.cli(`Using tsconfig: ${O(l.path,2)}`,{muted:!0,identifier:n.name,once:`${l.path}:${n.name}`});let a=n.format.filter((u)=>{if(u==="iife"&&!T(o)&&n.format.includes("cjs"))return!1;return!0}),c=typeof n.dts==="object"&&n.dts.entry?E(n.dts.entry):ve(s);try{await Promise.all(c.map(async(u)=>{let f=await je(r,u.fullEntryPath,n,l,t);await Promise.all(a.map(async(h)=>{let L=n.outputExtension?.({format:h,packageType:o,options:n,entry:u}).dts??he(h,o),ae=`${n.outDir}/${u.name}${L}`,ce=`${r}/${ae}`;await Bun.write(ce,f);let Je=Bun.file(ce).size||0;g.progress("DTS",ae,P(Je),n.name)}))}))}catch(u){throw new b(x(u))}}if(n.onBuildSuccess)await n.onBuildSuccess(n)}async function Ur(e,r,n,t,i,s){let o=e.outputExtension?.({format:t,packageType:i,options:e,entry:n}).js??xe(t,i),l=await Bun.build({entrypoints:[`${r}/${n.fullEntryPath}`],format:t,naming:{entry:Ue(n.name,o)},splitting:Ge(e.splitting,t),bytecode:qe(e.bytecode,t),define:Ye(e.define,e.shims,e.env,t),minify:Fe(e),outdir:`${r}/${e.outDir}`,target:e.target,sourcemap:e.sourcemap,loader:e.loader,drop:e.drop,banner:e.banner,footer:e.footer,publicPath:e.publicPath,env:Ke(e.env),plugins:[...s,Ze({format:t,target:e.target,shims:e.shims})],throw:!1});if(!l.success)for(let f of l.logs){if(f.level==="error")throw new B(f.message);if(f.level==="warning")g.warn(f.message);else if(f.level==="info")g.info(f.message)}let a=`${e.outDir}/${n.name}${o}`,c=`${r}/${a}`,u=Bun.file(c).size||0;g.progress(t.toUpperCase(),a,P(u),e.name)}var se=N(j(),1);var G="0.4.71";var Xe="https://bunup.dev/cli-options";function d(e){return(r,n)=>{n[e]=r===!0||r==="true"}}function y(e){return(r,n)=>{if(typeof r==="string")n[e]=r;else throw new w(`Option --${e} requires a string value`)}}function K(e){return(r,n)=>{if(typeof r==="string")n[e]=r.split(",");else throw new w(`Option --${e} requires a string value`)}}function Wr(e){return(r,n)=>{if(typeof r==="boolean")n[e]=r;else if(typeof r==="string")if(r.toLowerCase()==="true"||r.toLowerCase()==="false")n[e]=r.toLowerCase()==="true";else n[e]=r;else throw new w(`Option --${e} requires a boolean or string value`)}}function Dr(){console.log(`
|
|
20
20
|
Bunup - \u26A1\uFE0F A blazing-fast build tool for your libraries built with Bun.
|
|
21
21
|
`),console.log("For more information on available options, visit:"),console.log(`${se.default.cyan(se.default.underline(Xe))}
|
|
22
22
|
`),process.exit(0)}function Hr(){console.log(G),process.exit(0)}var Ve={name:{flags:["n","name"],handler:y("name")},format:{flags:["f","format"],handler:K("format")},outDir:{flags:["o","out-dir"],handler:y("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:y("banner")},footer:{flags:["ft","footer"],handler:y("footer")},external:{flags:["e","external"],handler:K("external")},sourcemap:{flags:["sm","sourcemap"],handler:Wr("sourcemap")},target:{flags:["t","target"],handler:y("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:K("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:y("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:y("config")},publicPath:{flags:["pp","public-path"],handler:y("publicPath")},env:{flags:["env"],handler:y("env")},shims:{flags:["shims"],handler:d("shims")},onSuccess:{flags:["onSuccess"],handler:y("onSuccess")},filter:{flags:["filter"],handler:K("filter")},entry:{flags:["entry"],handler:(e,r,n)=>{if(typeof e!=="string")throw new w(`Entry${n?` --entry.${n}`:""} requires a string value`);let t=r.entry||{};if(n){if(t[n])g.warn(`Duplicate entry name '${n}' provided via --entry.${n}. Overwriting previous entry.`);t[n]=e}else{let i=F(e);if(t[i])g.warn(`Duplicate entry name '${i}' derived from '${e}'. Overwriting previous entry.`);t[i]=e}r.entry=t}},resolveDts:{flags:["rd","resolve-dts"],handler:(e,r)=>{if(!r.dts)r.dts={};if(typeof r.dts==="boolean")r.dts={};if(typeof e==="string")if(e==="true"||e==="false")r.dts.resolve=e==="true";else r.dts.resolve=e.split(",");else r.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>Dr()},version:{flags:["v","version"],handler:()=>Hr()}},Q={};for(let e of Object.values(Ve))for(let r of e.flags)Q[r]=e.handler;function ze(e){let r={};for(let n=0;n<e.length;n++){let t=e[n];if(t.startsWith("--")){let i,s;if(t.includes("=")){let[o,l]=t.slice(2).split("=",2);i=o,s=l}else{i=t.slice(2);let o=e[n+1];if(s=o&&!o.startsWith("-")?o:!0,typeof s==="string")n++}if(i.includes(".")){let[o,l]=i.split(".",2),a=Q[o];if(a)a(s,r,l);else throw new w(`Unknown option: --${i}`)}else{let o=Q[i];if(o)o(s,r);else throw new w(`Unknown option: --${i}`)}}else if(t.startsWith("-")){let i=t.slice(1),s=e[n+1],o=s&&!s.startsWith("-")?s:!0;if(typeof o==="string")n++;let l=Q[i];if(l)l(o,r);else throw new w(`Unknown option: -${i}`)}else Ve.entry.handler(t,r,void 0)}return r}import{loadConfig as Yr}from"coffi";import Z from"path";import Fr from"chokidar";async function Pe(e,r){let n=new Set,t=q(e),i=E(t.entry);for(let a of i){let c=Z.resolve(r,a.fullEntryPath),u=Z.dirname(c);n.add(u)}let s=Fr.watch(Array.from(n),{persistent:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50},ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,Z.join(r,t.outDir)]}),o=!1,l=async(a=!1)=>{if(o)return;o=!0;try{let c=performance.now();if(await Y({...t,entry:i.map((u)=>u.fullEntryPath),clean:!1},r),!a)g.cli(`\uD83D\uDCE6 Rebuild finished in ${_(performance.now()-c)}`);await oe()}catch(c){V(c)}finally{o=!1}};s.on("change",(a)=>{let c=Z.relative(r,a);g.cli(`File changed: ${c}`,{muted:!0,once:c}),l()}),s.on("error",(a)=>{throw new U(`Watcher error: ${x(a)}`)}),await l(!0)}async function Gr(e=Bun.argv.slice(2)){let r=ze(e);v(r.silent);let n=process.cwd(),{config:t,filepath:i}=await Yr({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:r.config,packageJsonProperty:"bunup"}),s=!t?[{rootDir:n,options:r}]:await We(t,n,r.filter);if(g.cli(`Using bunup v${G} and bun v${Bun.version}`,{muted:!0}),i)g.cli(`Using config file: ${O(i,2)}`,{muted:!0});let o=performance.now();g.cli("Build started"),await Promise.all(s.flatMap(({options:c,rootDir:u})=>{return be(c).map(async(h)=>{let L={...h,...Kr(r)};return Qr(L,u)})}));let l=performance.now()-o,a=_(l);if(g.cli(`\u26A1\uFE0F Build completed in ${a}`),await oe(),r.watch)g.cli("\uD83D\uDC40 Watching for file changes");if(r.onSuccess)g.cli(`Running command: ${r.onSuccess}`,{muted:!0}),await qr(r.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!r.watch)process.exit(process.exitCode??0)}function Kr(e){return{...e,onSuccess:void 0,config:void 0}}async function oe(){if(k.size>0)await Ie(k),k.clear()}async function Qr(e,r){if(e.watch)await Pe(e,r);else await Y(e,r)}Gr().catch((e)=>fe(e));export{oe as validateDtsFiles};
|
package/package.json
CHANGED