Skip to content

chore(deps): adopt TypeScript 7; keep Stryker off the TS JS API#56

Merged
the-simian merged 1 commit into
mainfrom
chore/ts7-migration
Jul 10, 2026
Merged

chore(deps): adopt TypeScript 7; keep Stryker off the TS JS API#56
the-simian merged 1 commit into
mainfrom
chore/ts7-migration

Conversation

@the-simian

Copy link
Copy Markdown
Member

Closes #55 by correcting the blocker locally rather than waiting for upstream.

What changed

  • typescript@^7.0.2 replaces @typescript/native-preview; tsgo becomes tsc in the build/typecheck scripts and CI step names (same shape as chore(deps): adopt TypeScript 7 stable and refresh dev deps chromonym#42)
  • stryker.config.json adds ignorePatterns for tsconfig.json and tsconfig.test.json: Stryker's tsconfig preprocessor only calls import('typescript') when a tsconfig is present in the sandbox, so excluding them short-circuits the one code path that needs the TS JS API (which the native TS 7 package does not ship from its bare entry; the API now lives behind typescript/unstable/* subpaths). bun test does not read tsconfig in the sandbox; the mutation run under TS 7 reproduces the exact per-file scores of the TS 5 baseline (96.36, break threshold 75)
  • demo: typescript@^6.0.3, the ceiling of @typescript-eslint/typescript-estree's peer range (>=4.8.4 <6.1.0); TS 7 in the demo stays blocked until typescript-eslint ports to the native API
  • demo tsconfig.json: baseUrl removed; TS 6 deprecates it (TS5101) and TS 7 removes it, and the existing paths entries already resolve relative to the tsconfig without it

Testing

bun run check and bun run mutation pass locally under TS 7: build (tsc), demo build, biome, demo ESLint, typecheck, demo typecheck (TS 6.0.3), bun test, knip, publint + attw, Stryker 96.36.

Resolves the blocker in #55 locally instead of waiting upstream.
- typescript ^7.0.2 replaces @typescript/native-preview; tsgo becomes
  tsc in scripts and CI step names
- stryker: ignore tsconfig*.json in the sandbox so the tsconfig
  preprocessor short-circuits before import('typescript'); bun test
  needs no tsconfig in the sandbox, and the mutation score is
  byte-identical (96.36)
- demo: typescript ^6.0.3, the ceiling of typescript-estree's peer
  range (>=4.8.4 <6.1.0); drop deprecated baseUrl (paths resolve
  relative to tsconfig without it, and TS 7 removes the option)
@the-simian the-simian changed the title chore(deps)!: adopt TypeScript 7; keep Stryker off the TS JS API chore(deps): adopt TypeScript 7; keep Stryker off the TS JS API Jul 10, 2026
@the-simian
the-simian force-pushed the chore/ts7-migration branch from 8649931 to 88ed66e Compare July 10, 2026 20:21
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (10e7325) to head (88ed66e).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##              main       #56   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           34        34           
  Lines         2555      2555           
=========================================
  Hits          2555      2555           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@the-simian
the-simian merged commit 525efed into main Jul 10, 2026
8 checks passed
@the-simian
the-simian deleted the chore/ts7-migration branch July 10, 2026 20:28
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.

Adopt stable typescript@7 once Stryker works without the TS JS API (upstream)

1 participant