Skip to content

feat(router-generator): implement AST-based export detection for routes - #4669

Closed
hyungwookchoi wants to merge 5 commits into
TanStack:mainfrom
hyungwookchoi:issue-4487
Closed

feat(router-generator): implement AST-based export detection for routes#4669
hyungwookchoi wants to merge 5 commits into
TanStack:mainfrom
hyungwookchoi:issue-4487

Conversation

@hyungwookchoi

Copy link
Copy Markdown
Contributor

fix#4487

Enhanced the router generator with AST-based parsing logic to detect route exports.
Added support for both default and named exports in route files.

@nx-cloud

nx-cloudBot commented Jul 16, 2025

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 13a520d

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded4m 11sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded47sView ↗

☁️ Nx Cloud last updated this comment at 2025-07-22 12:32:45 UTC

@pkg-pr-new

pkg-pr-newBot commented Jul 16, 2025

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@4669

@tanstack/directive-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/directive-functions-plugin@4669

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/eslint-plugin-router@4669

@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@4669

@tanstack/react-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router@4669

@tanstack/react-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-devtools@4669

@tanstack/react-router-with-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-with-query@4669

@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@4669

@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@4669

@tanstack/react-start-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-plugin@4669

@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@4669

@tanstack/router-cli

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-cli@4669

@tanstack/router-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-core@4669

@tanstack/router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools@4669

@tanstack/router-devtools-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools-core@4669

@tanstack/router-generator

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-generator@4669

@tanstack/router-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-plugin@4669

@tanstack/router-utils

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-utils@4669

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-vite-plugin@4669

@tanstack/server-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/server-functions-plugin@4669

@tanstack/solid-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router@4669

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-devtools@4669

@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@4669

@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@4669

@tanstack/solid-start-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-plugin@4669

@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@4669

@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@4669

@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@4669

@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@4669

@tanstack/start-server-functions-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-client@4669

@tanstack/start-server-functions-fetcher

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-fetcher@4669

@tanstack/start-server-functions-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-server@4669

@tanstack/start-storage-context

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-storage-context@4669

@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@4669

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@4669

@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@4669

commit: 13a520d

@schiller-manuel

Copy link
Copy Markdown
Collaborator

thanks for approaching this. we already have very similar code for detecting the normal route exports. we should generalize this so it can be reused for both normal routes and the root route.

@hyungwookchoi

Copy link
Copy Markdown
ContributorAuthor

separated the common logic into utility files and modified the normal routes and root route to enable sharing of that logic.

@CC-Bell

Copy link
Copy Markdown

Small note, seems like the following is currently not supported (not sure if this PR addresses this):

exportconst{ x }=y

@schiller-manuel

Copy link
Copy Markdown
Collaborator

closing in favor of #7167

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

createRootRoute is not detected if exported via export { Route } instead of export const Route

3 participants

@hyungwookchoi@schiller-manuel@CC-Bell