Skip to content

fix(tsconfig): optimize TsconfigPathsPlugin and fix extends resolution bugs#483

Merged
alexander-akait merged 2 commits into
mainfrom
fix/tsconfig-paths-optimizations
Mar 16, 2026
Merged

fix(tsconfig): optimize TsconfigPathsPlugin and fix extends resolution bugs#483
alexander-akait merged 2 commits into
mainfrom
fix/tsconfig-paths-optimizations

Conversation

@xiaoxiaojx

@xiaoxiaojx xiaoxiaojx commented Mar 15, 2026

Copy link
Copy Markdown
Member

Summary
Perf/cleanup:

  • Remove redundant slice in getPrefixLength (return indexOf result directly)
  • Precompute allContexts in _loadTsconfigPathsMap to avoid per-call object rebuild
  • Parallelize _loadTsconfigReferences with Promise.all instead of sequential await

Bug fixes:

  • Fix baseUrl inheritance from deep extends chains: use dirname(extendedConfigPath) (absolute) instead of dirname(extendedConfigValue) (relative), so non-sibling directory structures resolve correctly
  • Fix scoped npm package extends (@scope/name): add fallback to resolve node_modules/@scope/name/tsconfig.json when node_modules/@scope/name.json is not found TSConfig extends does not resolve Node.js style specifiers microsoft/TypeScript#62753

Add test fixtures and cases covering both bug scenarios.

What kind of change does this PR introduce?
fix

Did you add tests for your changes?

Yes

Does this PR introduce a breaking change?

No
If relevant, what needs to be documented once your changes are merged or what have you already documented?
Nothing

Use of AI
Partial

xiaoxiaojx and others added 2 commits March 15, 2026 20:23
…n bugs

Perf/cleanup:
- Remove redundant slice in getPrefixLength (return indexOf result directly)
- Precompute allContexts in _loadTsconfigPathsMap to avoid per-call object rebuild
- Parallelize _loadTsconfigReferences with Promise.all instead of sequential await

Bug fixes:
- Fix baseUrl inheritance from deep extends chains: use dirname(extendedConfigPath)
  (absolute) instead of dirname(extendedConfigValue) (relative), so non-sibling
  directory structures resolve correctly
- Fix scoped npm package extends (@scope/name): add fallback to resolve
  node_modules/@scope/name/tsconfig.json when node_modules/@scope/name.json
  is not found

Add test fixtures and cases covering both bug scenarios.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codecov

codecov Bot commented Mar 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.42%. Comparing base (8148159) to head (cbcc384).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #483      +/-   ##
==========================================
+ Coverage   93.40%   93.42%   +0.02%     
==========================================
  Files          50       50              
  Lines        2502     2511       +9     
  Branches      759      766       +7     
==========================================
+ Hits         2337     2346       +9     
  Misses        136      136              
  Partials       29       29              
Flag Coverage Δ
integration 93.42% <100.00%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

@alexander-akait alexander-akait merged commit 6d27b83 into main Mar 16, 2026
28 checks passed
@alexander-akait alexander-akait deleted the fix/tsconfig-paths-optimizations branch March 16, 2026 15:27
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