Skip to content

Commit

Permalink
build(dts-minify): minify the type declaration files(.d.ts)
Browse files Browse the repository at this point in the history
Use dts-minify package to minify the type declaration files(.d.ts) to optimize the package size

Signed-off-by: Niloy Sikdar <niloysikdar30@gmail.com>
  • Loading branch information
niloysikdar committed Nov 4, 2022
1 parent a4206cf commit 4256386
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
22 changes: 21 additions & 1 deletion build.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
/* eslint-disable @typescript-eslint/no-var-requires */
const esbuild = require('esbuild');
const { createMinifier } = require('dts-minify');
const ts = require('typescript');
const path = require('path');
const fs = require('fs');

// Build for ESM
esbuild
Expand Down Expand Up @@ -30,3 +34,19 @@ esbuild
format: 'cjs',
})
.catch(() => process.exit(1));

// Minify types files
const minifier = createMinifier(ts);

// load .d.ts files from /dist/types
const files = fs.readdirSync(path.resolve(__dirname, 'dist/types'));

files.forEach((file) => {
const filePath = path.resolve(__dirname, 'dist/types', file);
const fileContent = fs.readFileSync(filePath, 'utf-8');

const minified = minifier.minify(fileContent, { keepJsDocs: true });

// write minified content to the same file
fs.writeFileSync(filePath, minified);
});
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
"@typescript-eslint/eslint-plugin": "^5.37.0",
"@typescript-eslint/parser": "^5.37.0",
"cz-conventional-changelog": "^3.3.0",
"dts-minify": "^0.3.0",
"esbuild": "^0.15.13",
"eslint": "^8.23.1",
"eslint-config-prettier": "^8.5.0",
Expand Down
12 changes: 12 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1578,6 +1578,13 @@ dot-prop@^5.1.0:
dependencies:
is-obj "^2.0.0"

dts-minify@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/dts-minify/-/dts-minify-0.3.0.tgz#fbad948b1ce1ebb65759d393e43b56f30dbf29a7"
integrity sha512-785XUyfWCH4e2wJAGwaltdN6xMHsE06HDk3I203WaoOl4kxz6gQrHITDPMkWz6lu0goyTjNdzmG1aMr2ukKi3g==
dependencies:
tslib "2.3.1"

duplexer2@~0.1.0:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
Expand Down Expand Up @@ -4619,6 +4626,11 @@ ts-node@^10.8.1:
v8-compile-cache-lib "^3.0.1"
yn "3.1.1"

tslib@2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==

tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
Expand Down

0 comments on commit 4256386

Please sign in to comment.