bunup 0.3.79 → 0.3.80

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,10 +16,6 @@ _Lower build time is better. Benchmark run on the same code with identical outpu
16
16
 
17
17
  To run the benchmarks yourself, clone this repo and run `pnpm benchmark` and check `results.md` in the benchmarks folder.
18
18
 
19
- ## See How Fast It Is
20
-
21
- https://github.com/user-attachments/assets/348287ea-78f3-4a91-a2a4-03956e17faee
22
-
23
19
  ## 🚀 Quick Start
24
20
 
25
21
  ### Installations
package/build/cli.mjs CHANGED
@@ -20,7 +20,7 @@ To fix this, use named entries in your configuration:
20
20
  }
21
21
  }
22
22
 
23
- See: https://bunup.arshadyaseen.com/#named-entries`,{muted:!0,verticalSpace:!0}),t.push({name:l,path:o})}else t.push({name:s,path:o}),n.add(s),r[s]=o}if(Array.isArray(e))for(let s of e){let o=A(s);i(o,s)}else if(typeof e==="object")for(let[s,o]of Object.entries(e))i(s,o);else{let s=A(e);i(s,e)}return t}function De(e,t){return`[dir]/${e}${t}`}var re=oe(ne(),1);async function We(e,t){return Array.isArray(e)&&"root"in e[0]?e.map((n)=>({rootDir:n.root,options:fe(n.config,"name",n.name)})):[{rootDir:t,options:e}]}async function He(e){let{config:t,filepath:n}=await re.loadConfig({name:"package",cwd:e,extensions:[".json"],maxDepth:1});return{packageJson:t,path:n}}async function Fe(e,t){let{config:n,filepath:r}=await re.loadConfig({name:"tsconfig",cwd:e,extensions:[".json"],preferredPath:t,maxDepth:3});return{tsconfig:n,path:r}}function qe(e,t){return{name:"bunup:external-plugin",setup(n){n.onResolve({filter:/.*/},(r)=>{let i=r.path;if(e.some((o)=>o.test(i))&&!t.some((o)=>o.test(i)))return{path:i,external:!0};return null})}}}var O=new Set;async function H(e,t){if(!e.entry||e.entry.length===0||!e.outDir)throw new b("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");let{packageJson:n,path:r}=await He(t);if(n&&r)f.cli(`Using package.json: ${x(r,2)}`,{muted:!0,identifier:e.name,once:`${r}:${e.name}`});let i=n?.type,s=_(e,n),o=j(e),a=[qe(s,o)],l=D(e.entry),c=le(e,t),p=e.format.flatMap((u)=>l.map((m)=>{return Nt(e,t,m,u,i,a,c)}));if(await Promise.all(p),e.dts){let u=await Fe(t,e.preferredTsconfigPath);if(u.path)f.cli(`Using tsconfig: ${x(u.path,2)}`,{muted:!0,identifier:e.name,once:`${u.path}:${e.name}`});let m=e.format.filter(($)=>{if($==="iife"&&!N(i)&&e.format.includes("cjs"))return!1;return!0}),E=typeof e.dts==="object"&&e.dts.entry?D(e.dts.entry):l;try{await Promise.all(E.map(async($)=>{let Ze=await Ae(t,$.path,e,u,n);await Promise.all(m.map(async(ze)=>{let Je=me(ze,i),V=`${t}/${e.outDir}/${$.name}${Je}`;await Bun.write(V,Ze);let et=Bun.file(V).size||0;f.progress("DTS",x(V),Q(et),e.name)}))}))}catch($){throw new g(h($))}}}async function Nt(e,t,n,r,i,s,o){let a=pe(r,i),l=await Bun.build({...o,entrypoints:[`${t}/${n.path}`],format:r,naming:{entry:De(n.name,a)},splitting:de(e.splitting,r),bytecode:be(e.bytecode,r),plugins:s,throw:!1});if(!l.success)for(let u of l.logs){if(u.level==="error")throw new b(u.message);if(u.level==="warning")f.warn(u.message);else if(u.level==="info")f.info(u.message)}let c=`${t}/${e.outDir}/${n.name}${a}`,p=Bun.file(c).size||0;f.progress(r.toUpperCase(),x(c),Q(p),e.name)}var F="0.3.79";var Ve="https://bun.sh/docs/installation",Ge="https://bunup.arshadyaseen.com/#cli-options";function y(e){return(t,n)=>{n[e]=t===!0?!0:t==="true"}}function w(e){return(t,n)=>{if(typeof t==="string")n[e]=t;else throw new d(`Option --${e} requires a string value`)}}function Xe(e){return(t,n)=>{if(typeof t==="string")n[e]=t.split(",");else throw new d(`Option --${e} requires a string value`)}}function _t(){console.log(`
23
+ See: https://bunup.arshadyaseen.com/#named-entries`,{muted:!0,verticalSpace:!0}),t.push({name:l,path:o})}else t.push({name:s,path:o}),n.add(s),r[s]=o}if(Array.isArray(e))for(let s of e){let o=A(s);i(o,s)}else if(typeof e==="object")for(let[s,o]of Object.entries(e))i(s,o);else{let s=A(e);i(s,e)}return t}function De(e,t){return`[dir]/${e}${t}`}var re=oe(ne(),1);async function We(e,t){return Array.isArray(e)&&"root"in e[0]?e.map((n)=>({rootDir:n.root,options:fe(n.config,"name",n.name)})):[{rootDir:t,options:e}]}async function He(e){let{config:t,filepath:n}=await re.loadConfig({name:"package",cwd:e,extensions:[".json"],maxDepth:1});return{packageJson:t,path:n}}async function Fe(e,t){let{config:n,filepath:r}=await re.loadConfig({name:"tsconfig",cwd:e,extensions:[".json"],preferredPath:t,maxDepth:3});return{tsconfig:n,path:r}}function qe(e,t){return{name:"bunup:external-plugin",setup(n){n.onResolve({filter:/.*/},(r)=>{let i=r.path;if(e.some((o)=>o.test(i))&&!t.some((o)=>o.test(i)))return{path:i,external:!0};return null})}}}var O=new Set;async function H(e,t){if(!e.entry||e.entry.length===0||!e.outDir)throw new b("Nothing to build. Please make sure you have provided a proper bunup configuration or cli arguments.");let{packageJson:n,path:r}=await He(t);if(n&&r)f.cli(`Using package.json: ${x(r,2)}`,{muted:!0,identifier:e.name,once:`${r}:${e.name}`});let i=n?.type,s=_(e,n),o=j(e),a=[qe(s,o)],l=D(e.entry),c=le(e,t),p=e.format.flatMap((u)=>l.map((m)=>{return Nt(e,t,m,u,i,a,c)}));if(await Promise.all(p),e.dts){let u=await Fe(t,e.preferredTsconfigPath);if(u.path)f.cli(`Using tsconfig: ${x(u.path,2)}`,{muted:!0,identifier:e.name,once:`${u.path}:${e.name}`});let m=e.format.filter(($)=>{if($==="iife"&&!N(i)&&e.format.includes("cjs"))return!1;return!0}),E=typeof e.dts==="object"&&e.dts.entry?D(e.dts.entry):l;try{await Promise.all(E.map(async($)=>{let Ze=await Ae(t,$.path,e,u,n);await Promise.all(m.map(async(ze)=>{let Je=me(ze,i),V=`${t}/${e.outDir}/${$.name}${Je}`;await Bun.write(V,Ze);let et=Bun.file(V).size||0;f.progress("DTS",x(V),Q(et),e.name)}))}))}catch($){throw new g(h($))}}}async function Nt(e,t,n,r,i,s,o){let a=pe(r,i),l=await Bun.build({...o,entrypoints:[`${t}/${n.path}`],format:r,naming:{entry:De(n.name,a)},splitting:de(e.splitting,r),bytecode:be(e.bytecode,r),plugins:s,throw:!1});if(!l.success)for(let u of l.logs){if(u.level==="error")throw new b(u.message);if(u.level==="warning")f.warn(u.message);else if(u.level==="info")f.info(u.message)}let c=`${t}/${e.outDir}/${n.name}${a}`,p=Bun.file(c).size||0;f.progress(r.toUpperCase(),x(c),Q(p),e.name)}var F="0.3.80";var Ve="https://bun.sh/docs/installation",Ge="https://bunup.arshadyaseen.com/#cli-options";function y(e){return(t,n)=>{n[e]=t===!0?!0:t==="true"}}function w(e){return(t,n)=>{if(typeof t==="string")n[e]=t;else throw new d(`Option --${e} requires a string value`)}}function Xe(e){return(t,n)=>{if(typeof t==="string")n[e]=t.split(",");else throw new d(`Option --${e} requires a string value`)}}function _t(){console.log(`
24
24
  Bunup - An extremely fast, zero-config bundler for JavaScript and TypeScript, powered by Bun.
25
25
  `),console.log("For more information on available options, visit:"),console.log(`\x1B[36m\x1B[4m${Ge}\x1B[0m
26
26
  `),process.exit(0)}function jt(){console.log(F),process.exit(0)}var kt={name:{flags:["n","name"],handler:w("name")},format:{flags:["f","format"],handler:(e,t)=>{if(typeof e==="string")t.format=e.split(",");else throw new d("Option --format requires a string value")}},outDir:{flags:["o","out-dir"],handler:w("outDir")},minify:{flags:["m","minify"],handler:y("minify")},watch:{flags:["w","watch"],handler:y("watch")},dts:{flags:["d","dts"],handler:y("dts")},banner:{flags:["b","banner"],handler:w("banner")},footer:{flags:["f","footer"],handler:w("footer")},external:{flags:["e","external"],handler:Xe("external")},sourcemap:{flags:["sm","sourcemap"],handler:w("sourcemap")},target:{flags:["t","target"],handler:w("target")},minifyWhitespace:{flags:["mw","minify-whitespace"],handler:y("minifyWhitespace")},minifyIdentifiers:{flags:["mi","minify-identifiers"],handler:y("minifyIdentifiers")},minifySyntax:{flags:["ms","minify-syntax"],handler:y("minifySyntax")},clean:{flags:["c","clean"],handler:y("clean")},splitting:{flags:["s","splitting"],handler:y("splitting")},noExternal:{flags:["ne","no-external"],handler:Xe("noExternal")},preferredTsconfigPath:{flags:["tsconfig","preferred-tsconfig-path"],handler:w("preferredTsconfigPath")},bytecode:{flags:["bc","bytecode"],handler:y("bytecode")}},Wt={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}}},Ht={help:{flags:["h","help"],handler:()=>_t()},version:{flags:["v","version"],handler:()=>jt()}},I={};for(let e of Object.values(kt))if(e)for(let t of e.flags)I[t]=e.handler;for(let e of Object.values(Wt))for(let t of e.flags)I[t]=e.handler;for(let e of Object.values(Ht))for(let t of e.flags)I[t]=e.handler;function Ye(e){let t={},n={},r=0;while(r<e.length){let i=e[r];if(i.startsWith("--")){let s,o;if(i.includes("=")){let[a,l]=i.slice(2).split("=",2);s=a,o=l}else{s=i.slice(2);let a=e[r+1];if(o=a&&!a.startsWith("-")?a:!0,typeof o==="string")r++}if(s==="entry")if(typeof o==="string"){let a=A(o);if(n[a])f.warn(`Duplicate entry name '${a}' derived from '${o}'. Overwriting previous entry.`);n[a]=o}else throw new d("Option --entry requires a string value");else if(s.startsWith("entry.")){let a=s.slice(6);if(typeof o==="string"){if(n[a])f.warn(`Duplicate entry name '${a}' provided via --entry.${a}. Overwriting previous entry.`);n[a]=o}else throw new d(`Option --entry.${a} requires a string value`)}else{let a=I[s];if(a)a(o,t);else throw new d(`Unknown option: --${s}`)}}else if(i.startsWith("-")){let s=i.slice(1),o=e[r+1],a=o&&!o.startsWith("-")?o:!0;if(typeof a==="string")r++;let l=I[s];if(l)l(a,t);else throw new d(`Unknown option: -${s}`)}else{let s=A(i);if(n[s])f.warn(`Duplicate entry name '${s}' derived from positional argument '${i}'. Overwriting previous entry.`);n[s]=i}r++}if(Object.keys(n).length>0)t.entry=n;return t}(()=>{if(typeof Bun==="undefined")throw new d(`Bunup requires Bun to run.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bunup",
3
- "version": "0.3.79",
3
+ "version": "0.3.80",
4
4
  "description": "An extremely fast, zero-config bundler for TypeScript & JavaScript, powered by Bun.",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -22,7 +22,7 @@
22
22
  "husky": "^9.1.7",
23
23
  "typescript": "^5.8.3",
24
24
  "vitest": "^2.1.9",
25
- "create-bunup": "0.3.79"
25
+ "create-bunup": "0.3.80"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "typescript": ">=4.5.0"