🔧 Declare Node 26 as the supported runtime

- Add .node-version (single line: '26') so fnm/nvm/volta/mise and the
  VS Code Node version manager extension auto-switch when entering the
  project directory
- engines.node in package.json: bump from '>=22.6' to '>=26' (npm-side
  install-time declaration)
- Drop --experimental-strip-types flag from node --test invocations:
  Node 26 has --strip-types unflagged
- .github/workflows/ci.yml: switch from hard-coded node-version: 24 to
  node-version-file: .node-version in both build and publish jobs so CI
  follows the .node-version file (single source of truth)
- .npmignore: add .node-version (developer-tool file, not for publish)
- .vscode/settings.json: pin js/ts.tsdk.path to node_modules/typescript/lib
  so the editor uses the project's TS 7, not a different global install
- .vscode/extensions.json: swap ms-vscode.vscode-typescript-next for
  typescriptteam.native-preview (the official TS team extension that
  ships nightly TS support, including TS 7)
- cspell: add 'esbenp' and 'typescriptteam' to dictionary
- package-lock.json: regenerated for engines.node >=26

tsconfig.json target/lib are unchanged: es2024 is the highest stable ES
target TS 7.0.2 ships, and Node 26 supports all ES2024 features natively.
This commit is contained in:
tmu committed 2026-09-03 12:45:32 +00:00
1 parent e5df17310e
commit 77dc40da07
8 files changed
+741 -597

No files matched your search

+2 -2
View File
@@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
node-version-file: .node-version
cache: "npm"
- run: npm ci
- run: npm run build
@@ -34,7 +34,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
node-version-file: .node-version
registry-url: "https://registry.npmjs.org/"
- run: npm ci
- run: npm run build
+1
View File
@@ -0,0 +1 @@
26
+1
View File
@@ -7,6 +7,7 @@ src/
.editorconfig
.oxfmtrc.json
.oxlintrc.json
.node-version
cspell.json
lefthook.yml
.sortpackagerc.json
+1 -1
View File
@@ -2,6 +2,6 @@
"recommendations": [
"oxc.oxc-vscode",
"streetsidesoftware.code-spell-checker",
"ms-vscode.vscode-typescript-next"
"typescriptteam.native-preview"
]
}
+2 -1
View File
@@ -17,5 +17,6 @@
"editor.formatOnSave": true
},
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
"editor.formatOnSave": true,
"js/ts.tsdk.path": "node_modules/typescript/lib"
}
+3 -1
View File
@@ -13,7 +13,9 @@
"oxfmtrc",
"oxlintrc",
"sortpackagerc",
"EDITMSG"
"EDITMSG",
"esbenp",
"typescriptteam"
],
"ignorePaths": ["dist", "node_modules", "public", "coverage", "*.svg"]
}
+727 -588
View File
File diff suppressed because it is too large. Load diff
+4 -4
View File
@@ -43,9 +43,9 @@
"fix:oxfmt": "oxfmt src",
"fix:oxlint": "oxlint --fix src",
"fix:package": "sort-package-json --write",
"test": "npm run check:tsc && node --test --experimental-strip-types --no-warnings src/",
"test:ci": "c8 --reporter=text --reporter=lcov --reporter=html node --test --experimental-strip-types --no-warnings src/",
"test:unit": "node --test --experimental-strip-types --no-warnings src/",
"test": "npm run check:tsc && node --test --strip-types src/",
"test:ci": "c8 --reporter=text --reporter=lcov --reporter=html node --test --strip-types src/",
"test:unit": "node --test --strip-types src/",
"use:git-commit-message": "cp commit-message-template .git/COMMIT_EDITMSG || true"
},
"devDependencies": {
@@ -65,7 +65,7 @@
"typescript": "^7.0.2"
},
"engines": {
"node": ">=22.6"
"node": ">=26"
},
"publishConfig": {
"access": "public"