Skip to content

Conversation

@tannerlinsley
Copy link
Member

@tannerlinsley tannerlinsley commented Oct 20, 2025

Add JSDoc annotations to getRouteApi, createLazyRoute, and createLazyFileRoute to improve IDE intellisense and in-editor documentation.


Open in Cursor Open in Web

Summary by CodeRabbit

Release Notes

  • New Features
    • Enhanced lazy loading support for routes with flexible configuration options
    • Added type-safe route API accessor for accessing route-specific hooks in code-split contexts

Co-authored-by: tannerlinsley <tannerlinsley@gmail.com>
@cursor
Copy link

cursor bot commented Oct 20, 2025

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 20, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

The PR extends React Router's public API by adding two new lazy route factory functions (createLazyRoute, createLazyFileRoute) and a route API accessor (getRouteApi). These enable type-safe, lazily-configurable routes and route-specific APIs without requiring explicit route imports.

Changes

Cohort / File(s) Summary
Lazy Route Factories
packages/react-router/src/fileRoute.ts
Adds createLazyRoute and createLazyFileRoute public factory functions. Both return functions accepting LazyRouteOptions to construct LazyRoute instances. Includes comprehensive JSDoc documentation for parameters and return types.
Route API Accessor
packages/react-router/src/route.tsx
Adds getRouteApi exported function that returns a type-safe RouteApi pre-bound to a specific route ID. Generically typed over route ID and router, with detailed JSDoc comments.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

The changes consist of straightforward API additions with comprehensive documentation. No complex logic modifications or structural refactors are involved. Review focuses on JSDoc accuracy, type constraint correctness, and API design consistency.

Poem

🐰 Three new pathways open wide,
Where lazy routes and types now guide,
No imports needed, just an ID,
Type-safe routes hop wild and free,
The router's burrow's growing spree! ✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch cursor/add-essential-jsdoc-to-public-api-aa6f

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8568185 and 2ac788d.

📒 Files selected for processing (2)
  • packages/react-router/src/fileRoute.ts (2 hunks)
  • packages/react-router/src/route.tsx (1 hunks)

Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud
Copy link

nx-cloud bot commented Oct 20, 2025

View your CI Pipeline Execution ↗ for commit 2ac788d

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 7m 27s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 52s View ↗

☁️ Nx Cloud last updated this comment at 2025-10-20 21:55:00 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Oct 20, 2025

More templates

@tanstack/arktype-adapter

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

@tanstack/directive-functions-plugin

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

@tanstack/eslint-plugin-router

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-ssr-query-core@5553

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/server-functions-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/zod-adapter

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

commit: 2ac788d

@tannerlinsley tannerlinsley marked this pull request as ready for review October 20, 2025 23:10
@tannerlinsley tannerlinsley merged commit 57f1b79 into main Oct 20, 2025
6 checks passed
@tannerlinsley tannerlinsley deleted the cursor/add-essential-jsdoc-to-public-api-aa6f branch October 20, 2025 23:10
Sign up for free to 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.

3 participants