refactor!: validate ts_project attributes with tsc --showConfig#950
Open
jbedard wants to merge 1 commit into
Open
refactor!: validate ts_project attributes with tsc --showConfig#950jbedard wants to merge 1 commit into
tsc --showConfig#950jbedard wants to merge 1 commit into
Conversation
--showConfig
--showConfig--showConfig (via node)
jbedard
force-pushed
the
tsconfig-validation
branch
3 times, most recently
from
July 14, 2026 21:07
4081324 to
7df7168
Compare
jbedard
force-pushed
the
tsconfig-validation
branch
2 times, most recently
from
July 15, 2026 20:15
70d2e79 to
10d9a08
Compare
thesayyn
pushed a commit
that referenced
this pull request
Jul 18, 2026
Close #962 which had an alternative approach. Ref #950 or #967 which do all validation (not only >=7.x) this way in rules_ts 4.x ### Changes are visible to end-users: yes - Searched for relevant documentation and updated as needed: yes - Breaking change (forces users to change their own code or config): no - Suggested release notes appear below: yes `ts_project` attribute vs tsconfig validation for ts v7+ is now done using `tsc --showConfig`. This may catch additional validation errors not previously found such as when tsconfigs extend from npm packages. ### Test plan - Covered by existing test cases - New test cases added
jbedard
force-pushed
the
tsconfig-validation
branch
from
July 18, 2026 02:40
10d9a08 to
0e2fae6
Compare
--showConfig (via node)tsc --showConfig
jbedard
force-pushed
the
tsconfig-validation
branch
2 times, most recently
from
July 18, 2026 03:23
0a5311b to
f483ba5
Compare
…idation Validation now resolves the tsconfig with `tsc --showConfig` and checks the ts_project attributes against the resolved config, writing it as the validation output. Previously the "extends" chain was not always resolved (in particular from npm packages), silently skipping some checks. Options that tsc materializes as computed defaults of other options do not require attribute mirroring.
jbedard
force-pushed
the
tsconfig-validation
branch
from
July 18, 2026 03:36
f483ba5 to
257c94f
Compare
jbedard
marked this pull request as ready for review
July 18, 2026 03:40
jbedard
enabled auto-merge (squash)
July 18, 2026 04:19
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.
This expands the rules_ts 3.x typescript 7
tsc --showConfiglogic (#969) to also apply to typescript <7 so we have a single implementation.Currently (typescript 7.0.2) typescript 7 is not as strict as typescript 5,6 so an extra generated
{extends: "./realConfigjson", files: []}is required for 5,6 - but we're doing it 100% of the time just for simplicity. A lot of the test cases added are to ensure this generated tsconfig works when in parent/children dirs, different repos etc.Changes are visible to end-users: yes
Some previously unsupported/undetected tsconfig validation (config vs
ts_projectattribute) issues will now be caught such as invalidts_projectattributes based on the a tsconfig.json which extends from an npm package. The extended npm package may now be correctly taken into account.Test plan