Skip to content

fix(vite): type check TSRX imports - #11450

Merged
NathanWalker merged 3 commits into
NativeScript:mainfrom
aleclarson:fix/tsrx-typescript-check
Sep 25, 2026
Merged

NathanWalker merged 3 commits into
NativeScript:mainfrom
aleclarson:fix/tsrx-typescript-check

Conversation

@aleclarson

Copy link
Copy Markdown
Contributor

When a TypeScript project imports .tsrx files and has @tsrx/typescript-plugin installed, the build-time checker now delegates to tsrx-tsc using the existing platform-filtered root files. Other projects keep the in-process TypeScript checker, and the temporary config used for TSRX checking is cleaned up afterward.

aleclarson and others added 2 commits September 24, 2026 14:48
Delegate build-time type checks to tsrx-tsc when project sources import .tsrx files, so the TSRX language plugin can transform those files before TypeScript checks them.

Use a temporary config with the platform-filtered root files to preserve NativeScript's platform selection.
TypeScript resolves default typeRoots and `types` entries relative to the
config file's directory, so a scratch tsconfig under os.tmpdir() lost every
`@types/*` package (TS2688 for `types: ["node"]`, TS2580 for automatic
inclusion). The generated config now lives under node_modules/.ns-vite/.

The scratch config also declares `tsrx.platform` for the platform being
built (ios for visionOS), so platform guards in .tsrx files compile the way
the bundle does instead of following a hardcoded tsconfig value.

Resolve the tsrx-tsc binary before scanning sources so projects without
@tsrx/typescript-plugin pay nothing extra, point at the plugin when the
in-process checker reports unresolved .tsrx imports, and cover the
delegation with a spec.
@NathanWalker NathanWalker self-assigned this Sep 25, 2026
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