Skip to content

Upgrade to TypeScript 6 - #737

Merged
barborico merged 2 commits into
mainfrom
brynna/deps_typescript_6
Nov 5, 2026
Merged

barborico merged 2 commits into
mainfrom
brynna/deps_typescript_6

Conversation

@barborico

@barborico barborico commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Upgrades TypeScript to 6.0 (with vite 8.3.5 and @vitejs/plugin-react 6.1.2) and moves tsconfig.json off the options TypeScript 6 deprecates. This supersedes Dependabot's #734, whose node-lint job fails on those options.

Urgency: LOW: patches no open security advisories.
Expected review effort: <5 min

Motivation

TypeScript 6 rejects target: es5 and moduleResolution: node (node10) with TS5107, so tsc --noEmit fails. TypeScript 7 stays held back in .github/dependabot.yml because the OpenAPI codegen depends on a compiler API it removes; 6.0 still ships that API.

Detailed Description of Changes

  • target becomes es2022. With noEmit and an explicit lib, it only sets the language level tsc checks against; Vite does the transpiling.
  • moduleResolution becomes bundler, which matches how Vite resolves imports and reads exports maps. react-hook-form-mui's date-pickers subpath now resolves natively, so its paths override goes away, along with the now-empty tsconfig.paths.json and its COPY in the Dockerfile.

Validation

Confidence: high

  • tsc --noEmit, prettier --check ., and vitest run (205/205) pass locally on Node 22.23.
  • vite build passes, both plain and with SENTRY_AUTH_TOKEN set and an unreachable SENTRY_URL, so the Sentry plugin still loads and runs from vite.config.ts, which tsc doesn't check.
  • npm run codegen against an offline spec finishes on TypeScript 6 and produces no change to src/api/ beyond the known apiComponents.ts formatting churn.
  • tsc --traceResolution resolves react-hook-form-mui/date-pickers to its dist/date-pickers.d.ts without the paths override.

Guidance for Reviewers

Suggested approach: commit-by-commit. The first commit is Dependabot's version bump; the second is the tsconfig change.

The MUI 9 upgrade in #706 was type-checked on TypeScript 5.3, so whichever of the two lands second needs another tsc run.

🤖 Generated with Claude Code

dependabot Bot and others added 2 commits November 4, 2026 17:00
… updates

Bumps the build-tools group with 3 updates in the / directory: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react), [typescript](https://github.com/microsoft/TypeScript) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@vitejs/plugin-react` from 6.1.1 to 6.1.2
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.1.2/packages/plugin-react)

Updates `typescript` from 5.3.3 to 6.0.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](microsoft/TypeScript@v5.3.3...v6.0.3)

Updates `vite` from 8.3.4 to 8.3.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.3.5/packages/vite)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: typescript
  dependency-version: 6.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: build-tools
- dependency-name: vite
  dependency-version: 8.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
TypeScript 6 rejects `target: es5` and `moduleResolution: node` (node10)
with TS5107, which fails `tsc --noEmit` in node-lint.

- `target` becomes es2022. With `noEmit` and an explicit `lib`, it only
  sets the language level tsc checks against; Vite does the transpiling.
- `moduleResolution` becomes `bundler`, which matches how Vite resolves
  imports and reads `exports` maps. react-hook-form-mui's
  `date-pickers` subpath now resolves natively, so the `paths` override
  for it (in both tsconfig.json and tsconfig.paths.json) is removed,
  along with the now-empty tsconfig.paths.json and its Dockerfile COPY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@barborico
barborico merged commit a3b3045 into main Nov 5, 2026
8 checks passed
@barborico
barborico deleted the brynna/deps_typescript_6 branch November 5, 2026 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants