Repository navigation
chore: upgrade to TypeScript 6 - #165
Draft
claude[bot] wants to merge 1 commit into
Draft
claude[bot] wants to merge 1 commit into
claude[bot] wants to merge 1 commit into
Conversation
Bump typescript to ^6.0.3 with a real tsconfig migration so it compiles cleanly with no ignoreDeprecations. Stacked on chore/npm-dependencies-bump. TS 6 turns the previously-tolerated tsconfig options into hard errors: - Remove baseUrl from tsconfig.base and make every paths entry relative (prefix ./). TypeScript resolves paths relative to the tsconfig without baseUrl since TS 4.1, and no source relies on baseUrl-relative bare imports, so resolution is unchanged. - Migrate moduleResolution "node" (node10, deprecated in TS 6) -> "bundler", the org standard (matches js_corelibrary) and the correct mode for this library: module stays "esnext", sources use extensionless relative imports, and downstream consumers bundle the emitted output. Emitted JS is byte-identical (moduleResolution/baseUrl are resolution-only). - Bump tools/tsconfig.tools.json target es5 -> es2022 (ES5 target is also deprecated in TS 6). Verified on Node 24.18: fresh npm install + npm ci clean, and nx run-many -t lint build test green (lint 10, build 9, test 31/23 snapshots) with no ignoreDeprecations anywhere. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Łukasz Komoszyński · Slack thread
Upgrades the workspace to TypeScript 6.0.3, done properly with a real tsconfig migration so it compiles cleanly with no
ignoreDeprecations.Why a separate PR
TypeScript 6 turns several long-tolerated tsconfig options into hard errors (they were previously only suppressible with
ignoreDeprecations: "6.0"). Rather than paper over them, this PR removes the deprecated options for real.tsconfig migration
baseUrlfromtsconfig.base.json. Since TS 4.1,pathsare resolved relative to the tsconfig's own location whenbaseUrlis absent, so everypathsentry is now relative (prefixed with./). No source relies onbaseUrl-relative bare imports, so module resolution is unchanged.moduleResolutionnode→bundlerintsconfig.base.json. The old value (node/node10) is deprecated in TS 6.bundleris the org standard (matchesjs_corelibrary'stsconfig.base.json) and the correct mode for this package:modulestaysesnext, the sources use extensionless relative imports, and the emitted output is consumed/bundled downstream.module/target/libare unchanged, so the emitted JavaScript is byte-identical (moduleResolutionandbaseUrlonly affect compile-time resolution, not emit).tools/tsconfig.tools.jsontargetes5→es2022. The ES5 target is also deprecated in TS 6;es2022aligns it withtsconfig.base.json.Dependency
typescript5.9.3→^6.0.3(lockfile regenerated). TS 6.0.3 sits insidetypescript-eslint@8.64's peer range (<6.1.0), so lint is unaffected.Verification
On Node 24.18: fresh strict
npm installandnpm ciboth resolve cleanly (exit 0);nx run-many -t lint build testis green (lint 10 projects, build 9 projects, test 31 tests / 23 snapshots). Atsc --noEmitsweep across every project tsconfig reports noTS5107/TS5101deprecation diagnostics, and there is noignoreDeprecationsanywhere in the tree.