chore: upgrade dependencies and tighten TypeScript config - #385
Merged
Conversation
typescript 5.9.3 -> 7.0.2 (native compiler), vitest and @vitest/coverage-v8 4.1.8 -> 4.1.10, semantic-release 25.0.3 -> 25.0.8. typescript-eslint was the last consumer of the TypeScript JS API and left with the eslint stack, so nothing blocks the native compiler anymore -- oxlint-tsgolint bundles its own typescript-go checker.
Baseline gains noUncheckedIndexedAccess, exactOptionalPropertyTypes, noUnusedLocals/Parameters, noImplicitOverride, noImplicitReturns, noFallthroughCasesInSwitch, isolatedModules, verbatimModuleSyntax, erasableSyntaxOnly and moduleDetection: force. lib is pinned to ESNext and types to [] -- the library targets any ES2024 runtime and pulls in no ambient type packages. tsconfig.json is now noEmit; tsconfig.build.json turns emit back on and adds isolatedDeclarations, so the public declaration is derived from the annotated signature alone rather than from inference. Only fallout is the key loop: aKeys[l] is string | undefined under noUncheckedIndexedAccess, asserted non-null since the index is bounded by aKeys.length. Exposes a typecheck script; vp lint already type checks.
xobotyi
force-pushed
the
chore/deps-upgrade
branch
from
July 26, 2026 10:54
7e83edd to
6c3461b
Compare
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.
Dependencies
typescriptvitest@vitest/coverage-v8semantic-releaseEverything else is already at latest. TypeScript 7 was blocked by
typescript-eslint(the last consumer of the TS JS API), which left with the eslint stack in #384 --oxlint-tsgolintbundles its own typescript-go checker.This also supersedes the open dependabot PRs for
typescript@6.0.3,eslint-config-xo,eslint-config-xo-typescript,eslint-plugin-unicornand@ver0/eslint-config-- those packages are gone.Compiler options
Baseline now matches react-hookz/web:
noUncheckedIndexedAccess,exactOptionalPropertyTypes,noUnusedLocals/noUnusedParameters,noImplicitOverride,noImplicitReturns,noFallthroughCasesInSwitch,isolatedModules,verbatimModuleSyntax,erasableSyntaxOnly,moduleDetection: force.libpinned toESNext,typesto[]-- no ambient type packages leak in.tsconfig.jsonisnoEmit;tsconfig.build.jsonre-enables emit and addsisolatedDeclarations, sodist/is-equal.d.tscomes from the annotated signature instead of inference. Emitted declaration is unchanged.Single piece of fallout:
aKeys[l]isstring | undefinedundernoUncheckedIndexedAccess, asserted non-null with a comment since the index is bounded byaKeys.length.New
typecheckscript. CI needs no new step --vp lintruns type-aware andyarn buildcompiles.Stacked on #384.