Commit 82a5e0b

Anton Golub <antongolub@antongolub.com>
2025-02-19 18:42:21
perf(pkg): replace types deps with triple-slash refs (#1102)
1 parent 1fc9d0b
scripts/build-dts.mjs
@@ -99,12 +99,20 @@ for (const i in results) {
   await fs.writeFile(entry.outFile, result, 'utf8')
 }
 
-// Replaces redundant triple-slash directives
+// Properly formats triple-slash directives
+const pkgEntries = ['core', 'index', 'vendor']
+const prefix = `/// <reference types="node" />
+/// <reference types="fs-extra" />
+
+`
+
 for (const dts of await glob(['build/**/*.d.ts', '!build/vendor-*.d.ts'])) {
-  const contents = (await fs.readFile(dts, 'utf8'))
-    .split('\n')
-    .filter((line) => !line.startsWith('/// <reference types'))
-    .join('\n')
+  const contents =
+    (pkgEntries.some((e) => dts.includes(e)) ? prefix : '') +
+    (await fs.readFile(dts, 'utf8'))
+      .split('\n')
+      .filter((line) => !line.startsWith('/// <reference types'))
+      .join('\n')
 
   await fs.writeFile(dts, contents, 'utf8')
 }
.size-limit.json
@@ -16,7 +16,7 @@
   {
     "name": "dts libdefs",
     "path": "build/*.d.ts",
-    "limit": "38.5 kB",
+    "limit": "38.7 kB",
     "brotli": false,
     "gzip": false
   },
package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "zx",
-  "version": "8.3.2",
+  "version": "8.4.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "zx",
-      "version": "8.3.2",
+      "version": "8.4.0",
       "license": "Apache-2.0",
       "bin": {
         "zx": "build/cli.js"
@@ -55,10 +55,6 @@
       },
       "engines": {
         "node": ">= 12.17.0"
-      },
-      "optionalDependencies": {
-        "@types/fs-extra": ">=11",
-        "@types/node": ">=20"
       }
     },
     "node_modules/@algolia/autocomplete-core": {
package.json
@@ -1,6 +1,6 @@
 {
   "name": "zx",
-  "version": "8.3.2",
+  "version": "8.4.0",
   "description": "A tool for writing better scripts",
   "type": "module",
   "main": "./build/index.cjs",
@@ -92,10 +92,6 @@
     "test:smoke:deno": "deno test ./test/smoke/deno.test.js --allow-read --allow-sys --allow-env --allow-run",
     "test:workflow": "zizmor .github/workflows -v -p"
   },
-  "optionalDependencies": {
-    "@types/fs-extra": ">=11",
-    "@types/node": ">=20"
-  },
   "devDependencies": {
     "@size-limit/file": "11.1.6",
     "@types/fs-extra": "11.0.4",