bunup 0.5.16 → 0.5.18

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/README.md CHANGED
@@ -16,8 +16,8 @@ Bunup is the **blazing-fast build tool** for TypeScript and JavaScript libraries
16
16
 
17
17
  | Bundler | Format | Build Time | Build Time (with dts) |
18
18
  | --------- | ------------ | -------------- | --------------------- |
19
- | **bunup** | **esm, cjs** | **3.42ms ⚡️** | **9.28ms ⚡️** |
20
- | tsdown | esm, cjs | 22.37ms | 84.48ms |
19
+ | **bunup** | **esm, cjs** | **3.42ms ⚡️** | **8.28ms ⚡️** |
20
+ | tsdown | esm, cjs | 21.37ms | 87.48ms |
21
21
  | unbuild | esm, cjs | 63.22ms | 386.65ms |
22
22
  | bunchee | esm, cjs | 94.98ms | 427.38ms |
23
23
  | tsup | esm, cjs | 82.59ms | 1035.61ms |
package/dist/cli.js CHANGED
@@ -62,7 +62,7 @@ export default defineWorkspace([
62
62
  ${p}
63
63
  ]);
64
64
  `;await S.writeFile(s,d)}function ct(e,t){return t.filter((n)=>e.includes(n.value)).map((n)=>n.configGenerator?n.configGenerator():`${n.value}()`).join(", ")}async function Kt(e,t){let n=e.scripts||{},i=!1;for(let[r,o]of[["build","bunup"],["dev","bunup --watch"]])if(!n[r]||await j({message:`Script '${r}' exists. Replace with '${o}'?`,initialValue:!0}))n[r]=o,i=!0;if(i)e.scripts=n,await S.writeFile(t,JSON.stringify(e,null,2))}async function Xt(e,t){if(e.dependencies?.bunup||e.devDependencies?.bunup){C.info(`Bunup is already installed
65
- `);return}let i={bun:"-d",npm:"-D",pnpm:"-D",yarn:"-D"},r=fe(t.agent,"add",[i[t.agent]||"-D","bunup"]);if(!r)throw new Error("Failed to resolve install command");await zt(be(r),[],{nodeOptions:{shell:!0,stdio:"pipe"}})}function be(e){if(!e)return"";return`${e.command} ${e.args.join(" ")}`}async function lt(){let e={},t=!1,n=T.join(process.cwd(),"tsconfig.json");try{let{config:r,filepath:o}=await he({name:"tsconfig",cwd:process.cwd(),extensions:[".json"]});if(r&&o)e=r,t=!0,n=o}catch{}if(e.compilerOptions?.isolatedDeclarations!==!0){C.info(`${f.default.cyan("About isolatedDeclarations:")} ${f.default.gray(`A ${f.default.bold("modern TypeScript feature")} for library authors`)}`),C.info(f.default.gray(`Benefits: ${f.default.bold("faster builds")}, ${f.default.bold("more reliable API types")}, and ${f.default.bold("better editor support")} to catch issues during development`));let r=await j({message:"Enable isolatedDeclarations in tsconfig.json? (recommended but optional)",initialValue:!0});if(x(r))return;if(r){if(e.compilerOptions=e.compilerOptions||{},e.compilerOptions.isolatedDeclarations=!0,e.compilerOptions.declaration=!0,"allowJs"in e.compilerOptions)e.compilerOptions.allowJs=null;if(e.exclude=e.exclude||[],!e.exclude.includes("bunup.config.ts"))e.exclude.push("bunup.config.ts");await S.writeFile(n,JSON.stringify(e,null,2)),C.success("Updated tsconfig.json with isolatedDeclarations")}}else if(t){if(e.exclude=e.exclude||[],!e.exclude.includes("bunup.config.ts"))e.exclude.push("bunup.config.ts"),await S.writeFile(n,JSON.stringify(e,null,2))}}var f;var pt=B(()=>{f=I(v(),1)});import{exec as Qt}from"tinyexec";var Y="0.5.16";J();L();var le=I(v(),1);var ke="https://bunup.dev/docs/guide/cli-options";J();Q();L();function w(e){return(t,n)=>{n[e]=t===!0||t==="true"}}function E(e){return(t,n)=>{if(typeof t==="string")n[e]=t;else throw new k(`Option --${e} requires a string value`)}}function Z(e){return(t,n)=>{if(typeof t==="string")n[e]=t.split(",");else throw new k(`Option --${e} requires a string value`)}}function Et(e){return(t,n)=>{if(typeof t==="boolean")n[e]=t;else if(typeof t==="string")if(t.toLowerCase()==="true"||t.toLowerCase()==="false")n[e]=t.toLowerCase()==="true";else n[e]=t;else throw new k(`Option --${e} requires a boolean or string value`)}}function St(){console.log(`
65
+ `);return}let i={bun:"-d",npm:"-D",pnpm:"-D",yarn:"-D"},r=fe(t.agent,"add",[i[t.agent]||"-D","bunup"]);if(!r)throw new Error("Failed to resolve install command");await zt(be(r),[],{nodeOptions:{shell:!0,stdio:"pipe"}})}function be(e){if(!e)return"";return`${e.command} ${e.args.join(" ")}`}async function lt(){let e={},t=!1,n=T.join(process.cwd(),"tsconfig.json");try{let{config:r,filepath:o}=await he({name:"tsconfig",cwd:process.cwd(),extensions:[".json"]});if(r&&o)e=r,t=!0,n=o}catch{}if(e.compilerOptions?.isolatedDeclarations!==!0){C.info(`${f.default.cyan("About isolatedDeclarations:")} ${f.default.gray(`A ${f.default.bold("modern TypeScript feature")} for library authors`)}`),C.info(f.default.gray(`Benefits: ${f.default.bold("faster builds")}, ${f.default.bold("more reliable API types")}, and ${f.default.bold("better editor support")} to catch issues during development`));let r=await j({message:"Enable isolatedDeclarations in tsconfig.json? (recommended but optional)",initialValue:!0});if(x(r))return;if(r){if(e.compilerOptions=e.compilerOptions||{},e.compilerOptions.isolatedDeclarations=!0,e.compilerOptions.declaration=!0,"allowJs"in e.compilerOptions)e.compilerOptions.allowJs=null;if(e.exclude=e.exclude||[],!e.exclude.includes("bunup.config.ts"))e.exclude.push("bunup.config.ts");await S.writeFile(n,JSON.stringify(e,null,2)),C.success("Updated tsconfig.json with isolatedDeclarations")}}else if(t){if(e.exclude=e.exclude||[],!e.exclude.includes("bunup.config.ts"))e.exclude.push("bunup.config.ts"),await S.writeFile(n,JSON.stringify(e,null,2))}}var f;var pt=B(()=>{f=I(v(),1)});import{exec as Qt}from"tinyexec";var Y="0.5.18";J();L();var le=I(v(),1);var ke="https://bunup.dev/docs/guide/cli-options";J();Q();L();function w(e){return(t,n)=>{n[e]=t===!0||t==="true"}}function E(e){return(t,n)=>{if(typeof t==="string")n[e]=t;else throw new k(`Option --${e} requires a string value`)}}function Z(e){return(t,n)=>{if(typeof t==="string")n[e]=t.split(",");else throw new k(`Option --${e} requires a string value`)}}function Et(e){return(t,n)=>{if(typeof t==="boolean")n[e]=t;else if(typeof t==="string")if(t.toLowerCase()==="true"||t.toLowerCase()==="false")n[e]=t.toLowerCase()==="true";else n[e]=t;else throw new k(`Option --${e} requires a boolean or string value`)}}function St(){console.log(`
66
66
  Bunup - \u26A1\uFE0F A blazing-fast build tool for your libraries built with Bun.
67
67
  `),console.log("For more information on available options, visit:"),console.log(`${le.default.cyan(le.default.underline(ke))}
68
68
  `),process.exit(0)}function Rt(){console.log(Y),process.exit(0)}var Re={name:{flags:["n","name"],handler:E("name")},format:{flags:["f","format"],handler:Z("format")},outDir:{flags:["o","out-dir"],handler:E("outDir")},minify:{flags:["m","minify"],handler:w("minify")},watch:{flags:["w","watch"],handler:w("watch")},dts:{flags:["d","dts"],handler:w("dts")},banner:{flags:["bn","banner"],handler:E("banner")},footer:{flags:["ft","footer"],handler:E("footer")},external:{flags:["e","external"],handler:Z("external")},sourcemap:{flags:["sm","sourcemap"],handler:Et("sourcemap")},target:{flags:["t","target"],handler:E("target")},minifyWhitespace:{flags:["mw","minify-whitespace"],handler:w("minifyWhitespace")},minifyIdentifiers:{flags:["mi","minify-identifiers"],handler:w("minifyIdentifiers")},minifySyntax:{flags:["ms","minify-syntax"],handler:w("minifySyntax")},clean:{flags:["c","clean"],handler:w("clean")},splitting:{flags:["s","splitting"],handler:w("splitting")},noExternal:{flags:["ne","no-external"],handler:Z("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:E("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:w("bytecode")},silent:{flags:["silent"],handler:w("silent")},config:{flags:["config"],handler:E("config")},publicPath:{flags:["pp","public-path"],handler:E("publicPath")},env:{flags:["env"],handler:E("env")},shims:{flags:["shims"],handler:w("shims")},onSuccess:{flags:["onSuccess"],handler:E("onSuccess")},filter:{flags:["filter"],handler:Z("filter")},init:{flags:["init"],handler:w("init")},entry:{flags:["entry"],handler:(e,t,n)=>{if(typeof e!=="string")throw new k(`Entry${n?` --entry.${n}`:""} requires a string value`);let i=t.entry||{};if(n){if(i[n])m.warn(`Duplicate entry name '${n}' provided via --entry.${n}. Overwriting previous entry.`);i[n]=e}else{let r=Ee(e);if(i[r])m.warn(`Duplicate entry name '${r}' derived from '${e}'. Overwriting previous entry.`);i[r]=e}t.entry=i}},resolveDts:{flags:["rd","resolve-dts"],handler:(e,t)=>{if(!t.dts)t.dts={};if(typeof t.dts==="boolean")t.dts={};if(typeof e==="string")if(e==="true"||e==="false")t.dts.resolve=e==="true";else t.dts.resolve=e.split(",");else t.dts.resolve=!0}},help:{flags:["h","help"],handler:()=>St()},version:{flags:["v","version"],handler:()=>Rt()}},H={};for(let e of Object.values(Re))for(let t of e.flags)H[t]=e.handler;function je(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];if(i.startsWith("--")){let r,o;if(i.includes("=")){let[s,a]=i.slice(2).split("=",2);r=s,o=a}else{r=i.slice(2);let s=e[n+1];if(o=s&&!s.startsWith("-")?s:!0,typeof o==="string")n++}if(r.includes(".")){let[s,a]=r.split(".",2),p=H[s];if(p)p(o,t,a);else throw new k(`Unknown option: --${r}`)}else{let s=H[r];if(s)s(o,t);else throw new k(`Unknown option: --${r}`)}}else if(i.startsWith("-")){let r=i.slice(1),o=e[n+1],s=o&&!o.startsWith("-")?o:!0;if(typeof s==="string")n++;let a=H[r];if(a)a(s,t);else throw new k(`Unknown option: -${r}`)}else Re.entry.handler(i,t,void 0)}return t}var dt=I(v(),1);ue();M();import{loadConfig as Zt}from"coffi";me();J();Q();L();pe();M();import ie from"path";async function ot(e,t){let n=new Set,i=ne(e),r=X(i);for(let d of r){let l=ie.resolve(t,d.fullPath),h=ie.dirname(l);n.add(h)}let s=(await import("chokidar")).watch(Array.from(n),{persistent:!0,ignoreInitial:!0,atomic:!0,ignorePermissionErrors:!0,ignored:[/[\\/]\.git[\\/]/,/[\\/]node_modules[\\/]/,ie.join(t,i.outDir)]}),a=!1,p=async(d=!1)=>{if(a)return;a=!0;try{let l=performance.now();if(await ge(i,t),!d)m.cli(`\uD83D\uDCE6 Rebuild finished in ${ee(performance.now()-l)}`)}catch(l){ae(l)}finally{a=!1}};s.on("change",(d)=>{let l=ie.relative(t,d);m.cli(`File changed: ${l}`,{muted:!0,once:l}),p()}),s.on("error",(d)=>{throw new K(`Watcher error: ${se(d)}`)}),await p(!0)}async function Ht(e=Bun.argv.slice(2)){let t=je(e);if(t.init){let{init:l}=await Promise.resolve().then(() => (pt(),ut));await l();return}N(t.silent);let n=process.cwd(),{config:i,filepath:r}=await Zt({name:"bunup.config",extensions:[".ts",".js",".mjs",".cjs"],maxDepth:1,preferredPath:t.config,packageJsonProperty:"bunup"}),o=!i?[{rootDir:n,options:t}]:await Le(i,n,t.filter);if(m.cli(`Using bunup v${Y} and bun v${Bun.version}`,{muted:!0}),r)m.cli(`Using ${te(r,2)}`,{muted:!0});let s=performance.now();m.cli("Build started");let{build:a}=await Promise.resolve().then(() => (me(),rt));await Promise.all(o.flatMap(({options:l,rootDir:h})=>{return Fe(l).map(async(O)=>{let D={...O,...en(t)};if(D.watch)await ot(D,h);else await a(D,h)})}));let p=performance.now()-s,d=ee(p);if(m.cli(`\u26A1\uFE0F Build completed in ${dt.default.green(d)}`),t.watch)m.cli("\uD83D\uDC40 Watching for file changes");if(t.onSuccess)m.cli(`Running command: ${t.onSuccess}`,{muted:!0}),await Qt(t.onSuccess,[],{nodeOptions:{shell:!0,stdio:"inherit"}});if(!t.watch)process.exit(process.exitCode??0)}function en(e){return{...e,onSuccess:void 0,config:void 0,filter:void 0,init:void 0}}Ht().catch((e)=>$e(e));