Skip to content

Commit 4256386

Browse files
committed
build(dts-minify): minify the type declaration files(.d.ts)
Use dts-minify package to minify the type declaration files(.d.ts) to optimize the package size Signed-off-by: Niloy Sikdar <[email protected]>
1 parent a4206cf commit 4256386

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

build.js

+21-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
// eslint-disable-next-line @typescript-eslint/no-var-requires
1+
/* eslint-disable @typescript-eslint/no-var-requires */
22
const esbuild = require('esbuild');
3+
const { createMinifier } = require('dts-minify');
4+
const ts = require('typescript');
5+
const path = require('path');
6+
const fs = require('fs');
37

48
// Build for ESM
59
esbuild
@@ -30,3 +34,19 @@ esbuild
3034
format: 'cjs',
3135
})
3236
.catch(() => process.exit(1));
37+
38+
// Minify types files
39+
const minifier = createMinifier(ts);
40+
41+
// load .d.ts files from /dist/types
42+
const files = fs.readdirSync(path.resolve(__dirname, 'dist/types'));
43+
44+
files.forEach((file) => {
45+
const filePath = path.resolve(__dirname, 'dist/types', file);
46+
const fileContent = fs.readFileSync(filePath, 'utf-8');
47+
48+
const minified = minifier.minify(fileContent, { keepJsDocs: true });
49+
50+
// write minified content to the same file
51+
fs.writeFileSync(filePath, minified);
52+
});

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"@typescript-eslint/eslint-plugin": "^5.37.0",
6262
"@typescript-eslint/parser": "^5.37.0",
6363
"cz-conventional-changelog": "^3.3.0",
64+
"dts-minify": "^0.3.0",
6465
"esbuild": "^0.15.13",
6566
"eslint": "^8.23.1",
6667
"eslint-config-prettier": "^8.5.0",

yarn.lock

+12
Original file line numberDiff line numberDiff line change
@@ -1578,6 +1578,13 @@ dot-prop@^5.1.0:
15781578
dependencies:
15791579
is-obj "^2.0.0"
15801580

1581+
dts-minify@^0.3.0:
1582+
version "0.3.0"
1583+
resolved "https://registry.yarnpkg.com/dts-minify/-/dts-minify-0.3.0.tgz#fbad948b1ce1ebb65759d393e43b56f30dbf29a7"
1584+
integrity sha512-785XUyfWCH4e2wJAGwaltdN6xMHsE06HDk3I203WaoOl4kxz6gQrHITDPMkWz6lu0goyTjNdzmG1aMr2ukKi3g==
1585+
dependencies:
1586+
tslib "2.3.1"
1587+
15811588
duplexer2@~0.1.0:
15821589
version "0.1.4"
15831590
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
@@ -4619,6 +4626,11 @@ ts-node@^10.8.1:
46194626
v8-compile-cache-lib "^3.0.1"
46204627
yn "3.1.1"
46214628

4629+
4630+
version "2.3.1"
4631+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
4632+
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
4633+
46224634
tslib@^1.8.1:
46234635
version "1.14.1"
46244636
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"

0 commit comments

Comments
 (0)