From 8c5c0f76165e2a15afd98e5bc331b80b8998766b Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Wed, 22 Jul 2026 23:27:04 -0400 Subject: [PATCH] chore(tsconfig): es2024 target/lib, require @types/node types:[node] turns a wall of TS2591 ambient-type errors into one actionable TS2688 when @types/node is missing. es2024 lib covers the modern APIs (toSorted, Promise.withResolvers) our lint rules push. --- .changeset/tsconfig-baseline.md | 8 ++++++++ tsconfig.json | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 .changeset/tsconfig-baseline.md diff --git a/.changeset/tsconfig-baseline.md b/.changeset/tsconfig-baseline.md new file mode 100644 index 0000000..0d8efc1 --- /dev/null +++ b/.changeset/tsconfig-baseline.md @@ -0,0 +1,8 @@ +--- +'@bomb.sh/tools': minor +--- + +Updates the shared `tsconfig.json` baseline for modern Node packages + +- `target` and `lib` move from `es2022` to `es2024`, so modern APIs like `Array.prototype.toSorted` and `Promise.withResolvers` type-check without shims. +- Adds `"types": ["node"]`. Packages must now have `@types/node` installed — missing it previously surfaced as dozens of `Cannot find name 'process'/'Buffer'` (TS2591) errors; now it's a single actionable `Cannot find type definition file for 'node'` (TS2688). Remedy: `pnpm add -D @types/node`. diff --git a/tsconfig.json b/tsconfig.json index 8916860..7576448 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ /* Base Options: */ "esModuleInterop": true, "skipLibCheck": true, - "target": "es2022", + "target": "es2024", "allowJs": true, "resolveJsonModule": true, "moduleDetection": "force", @@ -23,7 +23,10 @@ "moduleResolution": "nodenext", "noEmit": true, "declaration": true, - "lib": ["es2022"], + "lib": ["es2024"], + + /* Node packages need @types/node — one clear error beats a wall of TS2591s */ + "types": ["node"], /* Monorepo? */ "composite": true,