1- import { build } from "esbuild" ;
1+ import { build as esbuild } from "esbuild" ;
22import { execSync } from "node:child_process" ;
33import { readFileSync } from "node:fs" ;
44import { gzipSync } from "node:zlib" ;
55
66console . log ( "Generating TypeScript declarations..." ) ;
77execSync ( "tsc -p tsconfig.build.json" , { stdio : "inherit" } ) ;
88
9- const config = {
10- bundle : true ,
11- minify : true ,
12- minifySyntax : true ,
13- treeShaking : true ,
14- logLevel : "silent" ,
15- entryPoints : [ "src/index.ts" ] ,
16- platform : "neutral" ,
17- metafile : true ,
18- } ;
19-
209const formatSize = ( bytes ) => {
2110 if ( bytes < 1024 ) return `${ bytes } b` ;
2211 if ( bytes < 1024 * 1024 ) return `${ ( bytes / 1024 ) . toFixed ( 1 ) } kb` ;
@@ -34,16 +23,27 @@ const reportSize = (outfile) => {
3423 console . log ( `⚡ Done\n` ) ;
3524} ;
3625
37- await build ( {
38- ...config ,
39- format : "esm" ,
40- outfile : "dist/tokenizers.mjs" ,
41- } ) ;
42- reportSize ( "dist/tokenizers.mjs" ) ;
26+ const build = async ( outfile ) => {
27+ const format = outfile . endsWith ( ".mjs" ) ? "esm" : "cjs" ;
28+ const minifyOptions = / \. m i n \. [ c m ] j s $ / . test ( outfile )
29+ ? { minify : true , minifySyntax : true }
30+ : { } ;
31+
32+ await esbuild ( {
33+ bundle : true ,
34+ treeShaking : true ,
35+ logLevel : "silent" ,
36+ entryPoints : [ "src/index.ts" ] ,
37+ platform : "neutral" ,
38+ metafile : true ,
39+ format,
40+ outfile,
41+ ...minifyOptions ,
42+ } ) ;
43+ reportSize ( outfile ) ;
44+ }
4345
44- await build ( {
45- ...config ,
46- format : "cjs" ,
47- outfile : "dist/tokenizers.cjs" ,
48- } ) ;
49- reportSize ( "dist/tokenizers.cjs" ) ;
46+ await build ( "dist/tokenizers.mjs" ) ;
47+ await build ( "dist/tokenizers.cjs" ) ;
48+ await build ( "dist/tokenizers.min.mjs" ) ;
49+ await build ( "dist/tokenizers.min.cjs" ) ;
0 commit comments