v4: embed typescript-native-bridge, drop Volar-based framework support - #103
Open
johnsoncodehk wants to merge 4 commits into
Open
johnsoncodehk wants to merge 4 commits into
johnsoncodehk wants to merge 4 commits into
Conversation
- @tsslint/cli now depends on typescript-native-bridge (pinned 6.0.3-bridge.15.tsgo.7.0.2) instead of the typescript peer dep; type checking runs on the TS 7 (tsgo) engine - Remove --vue-project/--vue-vine-project/--mdx-project/--astro-project/ --ts-macro-project flags and the Volar language plugin wiring (@volar/language-core, @volar/language-hub, @volar/typescript) - Meta-framework support will be provided by the TS 7.1 content mapper (tsconfig contentMappers) once TNB rebases onto tsgo 7.1 - Remove fixtures/meta-frameworks and untracked tsgo/relay experiments
The file was deleted with the Volar wiring; the hardcoded corpus list in packages/compat-eslint/test/bench/dogfood-corpus.ts still referenced it, failing lazy-estree.test.js with ENOENT in CI.
…lumbing - packages/cli now pins typescript-native-bridge 6.0.3-bridge.16.tsgo.7.0.2 - remove the languages parameter from the cache layer (dead since the Volar removal); the cache key no longer carries it, which also invalidates existing caches
- README: real framework-support section (tsconfig contentMappers), updated requirements (bundled engine, no typescript pin, musl unsupported) - docs/migration-v4.md: breaking changes, flag -> contentMappers mapping, engine behavior notes, editor status, availability gates
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.
Summary
First milestone of v4 (Phase 0–2 of the v4 plan): move the CLI onto the TypeScript 7 engine and remove the Volar-based framework support.
@tsslint/clinow embedstypescript-native-bridge(pinned6.0.3-bridge.16.tsgo.7.0.2) as a direct dependency, replacing thetypescriptpeer dep. Type checking runs on the TS 7 (tsgo 7.0.2) engine — no API changes, TNB is a drop-in for the classictypescriptsurface.--vue-project/--vue-vine-project/--mdx-project/--astro-project/--ts-macro-projectflags and all Volar wiring (@volar/language-core,@volar/language-hub,@volar/typescript, proxy language service, diagnostic mapping) are removed (-1,497 lines).meta-frameworksfixture, and thelanguagesplumbing left behind in the cache layer.docs/migration-v4.md(breaking changes, flag →contentMappersmapping, engine behavior, editor status) and updated README requirements.What's next (not in this PR)
contentMappers), gated on TNB rebasing onto tsgo 7.1. Diagnostics will be mapped back throughspanMap; fixes only on Exact/Verbatim spans.@tsslint/typescript-plugin) and VS Code extension will be rebuilt on the TS 7 LSP extension points, also gated on TS 7.1.Verification
Full CI-equivalent suite run locally on the final tree:
pnpm install,pnpm run build, compat-eslint bench (107 rules × 33 files = clean parity), upstream scope-manager (212/225, 13 known divergences, 0 regressions), predicate coverage (152/152), JSX react-x parity, lazy-estree parity, compat-pipeline, selector-analysis, ts-ast-scan, core probe / builder-program-poc / skip-rules, CLI cache / cache-flow / integration / incremental-state — all passnpm run linton the repo itself:59 passedTNB ACTIVEbanner confirmed on stderr;require.resolvepoints at the bridgeNotes
docs/migration-v4.mdts as unknown as typeof import('typescript')) since@tsslint/coretypings are declared against stocktypescript; the runtime object is identical