Skip to content
Merged

Devinxi #4111

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
444 commits
Select commit Hold shift + click to select a range
b421e80
chore: fix build
brandonroberts Apr 11, 2025
3b41fda
revert throw workaround
schiller-manuel Apr 11, 2025
67908d3
avoid casting
schiller-manuel Apr 11, 2025
16afc25
return promise
schiller-manuel Apr 11, 2025
c82b353
only create nitro once
schiller-manuel Apr 11, 2025
63e2b27
no more 'ssr' env in start plugin compiler
schiller-manuel Apr 11, 2025
5486969
remove start-server-functions-ssr
schiller-manuel Apr 11, 2025
6abab40
remove @tanstack/start package
schiller-manuel Apr 11, 2025
130cf61
apply fix from react plugin to solid plugin
schiller-manuel Apr 11, 2025
e78c6c3
remove unused SSR response header handling
schiller-manuel Apr 11, 2025
17d2710
WIP move e2e react-start basic to vite
schiller-manuel Apr 11, 2025
b1b071c
add comments on the use of `checkRouteFullPathUniqueness`
SeanCassiere Apr 12, 2025
f2c34f7
sync solid
birkskyum Apr 12, 2025
1fcd952
format with prettier
birkskyum Apr 12, 2025
af3dccd
add vite to devdeps of start-server-core and start-server-functions-f…
birkskyum Apr 12, 2025
08f9e4c
sync solid start example and e2e
birkskyum Apr 12, 2025
46e8b5a
swap vinxi for vite in solid-start e2e
birkskyum Apr 12, 2025
a90e7b6
update all solid-start e2e to vite
birkskyum Apr 12, 2025
c50f1ca
fix builds of solid-start e2e
birkskyum Apr 12, 2025
f06ddc0
pass most e2e test for solid-start
birkskyum Apr 12, 2025
11cfd20
pass most e2e test for solid-start
birkskyum Apr 12, 2025
f2c604c
checkpoint
tannerlinsley Apr 16, 2025
c22655d
export `createServerFileRoute`
SeanCassiere Apr 16, 2025
aedfcc6
compiler for server route to use ts/react-start/server as the import
SeanCassiere Apr 16, 2025
b1da22b
Merge remote-tracking branch 'origin/main' into HEAD
schiller-manuel Apr 17, 2025
953939d
checkpoint
tannerlinsley Apr 17, 2025
ad2b61d
resolve
tannerlinsley Apr 17, 2025
5de0525
Merge remote-tracking branch 'origin/devinxi' into HEAD
schiller-manuel Apr 17, 2025
1af2c83
making `routePathname` possibly `undefined`
SeanCassiere Apr 18, 2025
45e3b7b
Squashed commit of the following:
tannerlinsley Apr 19, 2025
9e4bafd
start-basic to not be `static`
SeanCassiere Apr 19, 2025
4e12d43
resolve eslint errors in nitro-plugin
SeanCassiere Apr 19, 2025
bad0ea0
track the logs for createStartHandler
SeanCassiere Apr 19, 2025
ad85333
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere Apr 19, 2025
219fffa
get a basic functioning server route handler working
SeanCassiere Apr 20, 2025
bec8104
virtual file sytem for intermediate SSR build
schiller-manuel Apr 20, 2025
132766a
correctly handle virtual files
schiller-manuel Apr 20, 2025
84e3041
only apply capture-output plugin for server build
schiller-manuel Apr 20, 2025
7a2b132
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere Apr 21, 2025
53388c5
document how undici can be patched to solve the relative `fetch` issue
SeanCassiere Apr 21, 2025
4d2babe
Merge branch 'devinxi-vfs' into 'devinxi'
schiller-manuel Apr 21, 2025
979f7fd
checkpoint
tannerlinsley Apr 21, 2025
c567da3
checkpoint
tannerlinsley Apr 21, 2025
0e59338
fixes
tannerlinsley Apr 21, 2025
d221c92
default the 'Accept' header to 'text/html'
SeanCassiere Apr 22, 2025
6a6cb61
fix the if condition check for the 'Accept' header
SeanCassiere Apr 22, 2025
19edf0b
use the web standard default 'Accept' header value
SeanCassiere Apr 22, 2025
926f040
checkpoint
tannerlinsley Apr 22, 2025
54aa457
fix: generation of types for `createServerFileRoute`
chorobin Apr 22, 2025
470c4aa
fix: children types in generation
chorobin Apr 22, 2025
00bef54
chore: fix large example
chorobin Apr 22, 2025
d0540a5
checkpoint
tannerlinsley Apr 22, 2025
8cc267f
Merge remote-tracking branch 'origin/main' into devinxi
chorobin Apr 22, 2025
c82c706
Merge remote-tracking branch 'origin/devinxi' into devinxi
chorobin Apr 22, 2025
3c4184c
chore: added type
chorobin Apr 22, 2025
8cb2bbc
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere Apr 23, 2025
398eb96
do not create if `Route`/`ServerRoute` are commented out
SeanCassiere Apr 23, 2025
df1961d
checkpoint
tannerlinsley Apr 23, 2025
11aad1f
checkpoint
tannerlinsley Apr 23, 2025
c70a8f2
checkpoint
tannerlinsley Apr 23, 2025
6b09a81
set the nitro log level to `3`
SeanCassiere Apr 24, 2025
26709b7
refactor(start-client-core): refactor server function middleware befo…
chorobin Apr 24, 2025
2580d52
refactor(start-client-core): do not use TType
chorobin Apr 24, 2025
aec638a
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere Apr 25, 2025
832acf3
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere Apr 25, 2025
e2e7946
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere Apr 25, 2025
1e9e63e
do not import `undici` in the SSR request
SeanCassiere Apr 25, 2025
00bfcf0
mark the `undici` functions as "internal"
SeanCassiere Apr 25, 2025
aaeef8d
fix prerendering
SeanCassiere Apr 25, 2025
6407b8c
switch the server entry to `defineEventHandler`
SeanCassiere Apr 25, 2025
81ad369
feat: add request middleware types
chorobin Apr 25, 2025
7a6616a
Merge remote-tracking branch 'origin/devinxi' into devinxi
chorobin Apr 25, 2025
44c08cb
refactor(start): clean up sever route types
chorobin Apr 26, 2025
587ce82
chore: add type tests and fix some edge cases for types
chorobin Apr 26, 2025
e12a530
chore: change directory of server route gen
chorobin Apr 26, 2025
dd586b3
chore: fix runtime tests for type tests
chorobin Apr 28, 2025
af38e5e
catch up solid start
birkskyum Apr 29, 2025
3a7bd6c
fix e2e tests solid-start
birkskyum Apr 29, 2025
ea3cc78
Redirects use redirect responses
tannerlinsley Apr 30, 2025
bdc694d
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere Apr 30, 2025
d8a9063
don't export getStartManifest
schiller-manuel Apr 30, 2025
1a6b088
allow custom opts for parseAst
schiller-manuel Apr 30, 2025
f17c30f
delete client output dir before building
schiller-manuel Apr 30, 2025
bc73246
move .tanstack-start folder to project root
schiller-manuel Apr 30, 2025
4e8fd7b
handle start manifest being imported on the client
schiller-manuel Apr 30, 2025
349efbf
delete client dist before build on solid as well
schiller-manuel Apr 30, 2025
be7b46e
fix clientDistDir
schiller-manuel Apr 30, 2025
009587e
checkpoint
tannerlinsley Apr 30, 2025
2abeaf4
fix redirect
tannerlinsley Apr 30, 2025
c382cd2
Update start examples to use vite + plugin
tannerlinsley May 1, 2025
20d7508
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere May 1, 2025
9902267
cleanup js vite config files for packages
SeanCassiere May 1, 2025
34d4b5e
cleanup README files for Start packages
SeanCassiere May 1, 2025
1f2542f
make react-start/website e2e work and add the `.md` suffix POC
SeanCassiere May 3, 2025
94a10ce
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere May 4, 2025
3fe29f6
test(router-core): validate the behaviour of path/parsePathname
SeanCassiere May 4, 2025
4c1e0c6
rebreak the website example
SeanCassiere May 4, 2025
32a2117
log params
SeanCassiere May 4, 2025
470fff5
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere May 4, 2025
123bde0
Merge remote-tracking branch 'origin/main' into devinxi
SeanCassiere May 5, 2025
f17dceb
ensure extracted dev scripts run before hydration
schiller-manuel May 6, 2025
16b31c6
get initial groundwork and get the wildcard working
SeanCassiere May 4, 2025
bcd111e
more tests for interpolatePath
SeanCassiere May 4, 2025
a82989c
add failing tests for matchPathname for named path params
SeanCassiere May 4, 2025
13b3238
fix the tests for matchPathname to expect the correct value
SeanCassiere May 5, 2025
7ede9d7
support for prefix-suffix for named path params in matchByPathname
SeanCassiere May 5, 2025
88f255b
document whats being worked on
SeanCassiere May 5, 2025
ba3832a
refactor the prefix+suffix tests to be more separated
SeanCassiere May 5, 2025
9af58a0
more rearrangement of the tests
SeanCassiere May 5, 2025
18f6774
named path params to use curly brace syntax
SeanCassiere May 5, 2025
811bfeb
wildcard params to use curly brace syntax
SeanCassiere May 5, 2025
d26331b
use regex and keep variable instantiation outside of scope
SeanCassiere May 5, 2025
a5a8f83
test for being able to also only use the curly brace syntax
SeanCassiere May 5, 2025
8679160
add e2e for code-based approach
SeanCassiere May 5, 2025
6ce62ac
rank the routes with prefix/suffixes higher
SeanCassiere May 5, 2025
865cfcb
modify resolvePath to handle params with optional prefix/suffix
SeanCassiere May 5, 2025
86fc5cb
switch e2e code-based tests to use object syntax
SeanCassiere May 5, 2025
3c7825e
check destination heading to make sure the correct component is loade…
SeanCassiere May 5, 2025
e869cdd
make prefix and suffix work for file-based routing
SeanCassiere May 6, 2025
2ffd4bd
make `routePathToVariable` safe with special characters
SeanCassiere May 6, 2025
8c151e7
update the structure of the website e2e sandbox
SeanCassiere May 6, 2025
51d5220
parenthesis should be empty?
SeanCassiere May 6, 2025
0588209
tests for the generator
SeanCassiere May 6, 2025
cfde635
fix broken redirect in the code-based e2e test
SeanCassiere May 6, 2025
7f431e1
copy code-based e2e to file-based
SeanCassiere May 6, 2025
ce06463
move code-based e2e to use `params-ps` to match file-based
SeanCassiere May 6, 2025
e232dc0
switch to the simplified path syntax
SeanCassiere May 6, 2025
577fd55
update the `react-start/website` e2e sandbox
SeanCassiere May 6, 2025
cb26724
de-"vinxi"
tannerlinsley May 7, 2025
c07c4d2
log possibilities for optionals and escaped chars
SeanCassiere May 7, 2025
4d958ba
docs
tannerlinsley May 7, 2025
b6b0c37
fix lockfile
SeanCassiere May 7, 2025
294a815
chore update labeler
SeanCassiere May 7, 2025
e7569ce
fix conflicts
SeanCassiere May 7, 2025
45ca56c
suppress prefix-suffix param errors using `ts-expect-error`
SeanCassiere May 7, 2025
7727675
ignore start build directory
schiller-manuel May 6, 2025
19ec25f
remove create-start e2e tests
schiller-manuel May 6, 2025
2027c50
delete start-api-routes
schiller-manuel May 7, 2025
2264492
remove `./api`
SeanCassiere May 7, 2025
9576165
remove unused plugins
schiller-manuel May 7, 2025
b1a1c1a
consolidate start plugin
schiller-manuel May 7, 2025
18966b1
fix import
schiller-manuel May 7, 2025
6f8a934
patch tests for `start-plugin-core`
SeanCassiere May 8, 2025
9984b0d
update labeler
SeanCassiere May 8, 2025
3b4a782
disable serverTypes for js-only
SeanCassiere May 8, 2025
f6a79b9
proper HMR handling for file routes
schiller-manuel May 8, 2025
da23539
consolidate start plugin even more
schiller-manuel May 8, 2025
1b1fa7d
fix formatting
schiller-manuel May 8, 2025
c89099a
routeTree for solid start exampels
birkskyum May 8, 2025
04ece67
fix js-only tree
schiller-manuel May 8, 2025
e777738
fix prod check in solid-start test
birkskyum May 8, 2025
6f8bb6d
fix start-plugin-core unit test
schiller-manuel May 8, 2025
13ee43f
fix(start-plugin-core): fix types
schiller-manuel May 8, 2025
68b764f
dont use .js imports
schiller-manuel May 8, 2025
10a8680
dont emit tsc for the start plugins
schiller-manuel May 8, 2025
732d750
fix type tests
schiller-manuel May 8, 2025
d180d06
Merge remote-tracking branch 'origin/main' into HEAD
schiller-manuel May 8, 2025
33442d0
fix missing import
schiller-manuel May 8, 2025
a8620f3
apply type optimizations from main
schiller-manuel May 8, 2025
f14d5c7
fix eslint
schiller-manuel May 8, 2025
c3e84a8
update docs
schiller-manuel May 8, 2025
e1f32d4
use server routes ins e2e basic
schiller-manuel May 8, 2025
ba5501c
fix ValidateRedirectOptions
schiller-manuel May 8, 2025
8b97bbe
fix eslint/typescript 5.3
schiller-manuel May 8, 2025
d4433ba
module augementation for lazy file routes in generator, replace brack…
schiller-manuel May 8, 2025
d302439
run code generator and format
schiller-manuel May 8, 2025
1d87237
upgrade start-bare example
schiller-manuel May 8, 2025
7ea43e0
disable unit test execution
schiller-manuel May 8, 2025
e52b59f
dont use .js extension
schiller-manuel May 8, 2025
6c835a9
code gen + formatting
schiller-manuel May 8, 2025
603d6eb
generator add ts-nocheck to test file
SeanCassiere May 9, 2025
7086c9b
update generator file-tree-modification to test files to use new syntax
SeanCassiere May 9, 2025
7e1b346
lint errors for start-compiler-plugin
SeanCassiere May 9, 2025
83424d2
docs: update build-from-scratch guides
SeanCassiere May 9, 2025
4427973
e2e:react-start/scroll-restoration
SeanCassiere May 9, 2025
283bae8
e2e:react-start/basic-tsr-config
SeanCassiere May 9, 2025
72e82f5
e2e:react-start/basic-react-query
SeanCassiere May 9, 2025
df22824
e2e:react-start/server-functions
SeanCassiere May 9, 2025
d512222
ci: apply automated fixes
autofix-ci[bot] May 9, 2025
93046e1
e2e:react-start/basic-rsc
SeanCassiere May 9, 2025
075fb02
e2e:react-start/clerk still broken
SeanCassiere May 9, 2025
1f23e7a
remove entry
SeanCassiere May 9, 2025
ffb408b
e2e:react-start/basic-auth
SeanCassiere May 9, 2025
eb91243
e2e:react-start/website
SeanCassiere May 9, 2025
e204493
ci: apply automated fixes
autofix-ci[bot] May 9, 2025
52fb1bc
e2e:react-start/website rename and script fix
SeanCassiere May 9, 2025
3d13231
sync e2e:solid-start/website
SeanCassiere May 9, 2025
3d2e716
move the preloadIntentProximity to separate pr #4122
birkskyum May 9, 2025
58fbb00
remove outdated config
schiller-manuel May 9, 2025
8c5a9f1
only update router if new values are passed in
schiller-manuel May 9, 2025
eb39ac5
prevent re-rendering Scripts by activating structural sharing
schiller-manuel May 9, 2025
a950c99
remove dummy test
schiller-manuel May 9, 2025
4f0c2fe
remove log in test
schiller-manuel May 9, 2025
57703c3
reduce unit test noise
schiller-manuel May 9, 2025
647fd8a
fix lint
schiller-manuel May 9, 2025
c40a3eb
fix redirect
schiller-manuel May 9, 2025
4b2e0f4
temporarily add createLazyFileRoute as global
schiller-manuel May 9, 2025
c5a8a1c
ci: apply automated fixes
autofix-ci[bot] May 9, 2025
f9b7a1c
-vinxi
tannerlinsley May 9, 2025
56ae64d
fix lint
schiller-manuel May 9, 2025
29c392c
fix tests
schiller-manuel May 9, 2025
e115a28
ci: apply automated fixes
autofix-ci[bot] May 9, 2025
966a95c
disable examples
schiller-manuel May 9, 2025
adfe260
fix server functions header tests
schiller-manuel May 9, 2025
f6a1b1c
fix runtime of createLazyFileRoute for usage without id
schiller-manuel May 9, 2025
4d3c2ec
ci: apply automated fixes
autofix-ci[bot] May 9, 2025
6fdb1e5
same fix for solid
schiller-manuel May 9, 2025
586cab9
add create file functions imports via plugin
schiller-manuel May 9, 2025
b13897b
remove unused imports
schiller-manuel May 9, 2025
ce533a4
fix lint / formatting
schiller-manuel May 9, 2025
090cf52
typescript fix
schiller-manuel May 9, 2025
e2e6f72
fix plugin
schiller-manuel May 9, 2025
76c2cc9
fix: types for lazy file route
chorobin May 9, 2025
852f243
Merge remote-tracking branch 'origin/devinxi' into devinxi
chorobin May 9, 2025
894ffd2
fix: resolve Location for redirects with an href
tannerlinsley May 9, 2025
c986f0f
fix: exit early in start handler for redirects
tannerlinsley May 9, 2025
598530a
chore: add no tscheck back
chorobin May 9, 2025
218b5a3
dont add module augmentation for virtual routes
schiller-manuel May 9, 2025
4fa10c1
re-run route gen
schiller-manuel May 9, 2025
4294438
ci: apply automated fixes
autofix-ci[bot] May 9, 2025
f7f0ca2
dont use DEPLOY_URL in e2e tests
schiller-manuel May 9, 2025
e46c758
prettierignore
schiller-manuel May 9, 2025
591e851
chore: add options to disable
chorobin May 9, 2025
26154d0
Merge remote-tracking branch 'origin/devinxi' into devinxi
chorobin May 9, 2025
2f20f9a
generator handle verbose file route flag
schiller-manuel May 9, 2025
3ae45b2
cli defaults to verboserRouteFiles=true
schiller-manuel May 9, 2025
0674720
re-generate cli project
schiller-manuel May 9, 2025
906c041
remove extra escapes in regex
SeanCassiere May 10, 2025
ce005dc
only import ServerRoutes into the `routeTree` for TanStack Start
SeanCassiere May 10, 2025
53eb12b
ci: apply automated fixes
autofix-ci[bot] May 10, 2025
9700549
only include type imports when in use
SeanCassiere May 10, 2025
3b3f473
ci: apply automated fixes
autofix-ci[bot] May 10, 2025
34cde9f
fix: throwRedirect test
tannerlinsley May 10, 2025
683d984
type the server routes using a declaration file
SeanCassiere May 10, 2025
90776b4
remove test script
SeanCassiere May 10, 2025
4cf2199
fix the server-fucntions header tests
birkskyum May 10, 2025
cf0b457
remove .only
birkskyum May 10, 2025
c8687c7
ci: apply automated fixes
autofix-ci[bot] May 10, 2025
5ffaf12
consistent e2e test naming
birkskyum May 10, 2025
ba66d0e
run router plugin before start plugins
schiller-manuel May 10, 2025
fa831dd
re-add global file route functions as a safeguard
schiller-manuel May 10, 2025
310ff49
temporarily disable clerk e2e
schiller-manuel May 10, 2025
74f02de
fix eslint
schiller-manuel May 10, 2025
93cf36f
checkin lockfile after e2e sandbox normalization
SeanCassiere May 10, 2025
8d176f1
reorg start plugins
schiller-manuel May 10, 2025
453c5e5
ci: apply automated fixes
autofix-ci[bot] May 10, 2025
adcf500
add tanstackRouter export to align with tanstackStart
birkskyum May 10, 2025
7816fb9
fix type imports in generator
schiller-manuel May 10, 2025
b0a1fdd
make verboseFileRoutes opt-in for router
schiller-manuel May 10, 2025
642c60e
fix generator test
schiller-manuel May 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
32 changes: 10 additions & 22 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,12 @@
- 'packages/react-router-with-query/**/*'
'package: react-start':
- 'packages/react-start/**/*'
'package: start-api-routes':
- 'packages/start-api-routes/**/*'
'package: react-start-client':
- 'packages/react-start-client/**/*'
'package: react-start-config':
- 'packages/react-start-config/**/*'
'package: react-start-plugin':
- 'packages/react-start-plugin/**/*'
'package: react-start-router-manifest':
- 'packages/react-start-router-manifest/**/*'
'package: react-start-server':
- 'packages/react-start-server/**/*'
'package: start-server-functions-client':
- 'packages/start-server-functions-client/**/*'
'package: start-server-functions-fetcher':
- 'packages/start-server-functions-fetcher/**/*'
'package: start-server-functions-handler':
- 'packages/start-server-functions-handler/**/*'
'package: start-server-functions-ssr':
- 'packages/start-server-functions-ssr/**/*'
'package: router-cli':
- 'packages/router-cli/**/*'
'package: router-core':
Expand All @@ -60,18 +46,20 @@
- 'packages/solid-start/**/*'
'package: solid-start-client':
- 'packages/solid-start-client/**/*'
'package: solid-start-config':
- 'packages/solid-start-config/**/*'
'package: solid-start-plugin':
- 'packages/solid-start-plugin/**/*'
'package: solid-start-router-manifest':
- 'packages/solid-start-router-manifest/**/*'
'package: solid-start-server':
- 'packages/solid-start-server/**/*'
'package: start':
- 'packages/start/**/*'
'package: start-config':
- 'packages/start-config/**/*'
'package: start-client-core':
- 'packages/start-client-core/**/*'
'package: start-plugin-core':
- 'packages/start-plugin-core/**/*'
'package: start-server-core':
- 'packages/start-server-core/**/*'
'package: start-server-functions-client':
- 'packages/start-server-functions-client/**/*'
'package: start-server-functions-fetcher':
- 'packages/start-server-functions-fetcher/**/*'
'package: start-server-functions-server':
- 'packages/start-server-functions-server/**/*'
'package: valibot-adapter':
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,14 @@ nx-cloud.env
gpt/db.json

app.config.timestamp-*
vite.config.timestamp-*
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
app.config.js.timestamp-*
app.config.ts.timestamp-*

app.config.timestamp_*
vite.config.timestamp_*
vite.config.js.timestamp_*
vite.config.ts.timestamp_*
app.config.js.timestamp_*
Expand All @@ -76,4 +78,5 @@ app.config.ts.timestamp_*

# Handling VSCode settings
/.vscode/
!/examples/react/**/.vscode/settings.json
!/examples/react/**/.vscode/settings.json
**/.tanstack-start/build
1 change: 0 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
pnpm-lock.yaml
**/snapshots
**/.vercel
**/.vinxi
**/.output
**/node_modules
node_modules
Expand Down
13 changes: 0 additions & 13 deletions docs/router/api/file-based-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,19 +132,6 @@ By default, this value is set to `false`.
> [!TIP]
> You should ignore the path of your generated route tree file from your linter and formatter to avoid conflicts.

### `apiBase`

As a framework, [TanStack Start](/start) supports the concept of API routes. This option configures the base path for API routes.

By default, this value is set to `/api`.

This means that all API routes will be prefixed with `/api`.

This configuration value is only useful if you are using TanStack Start.

> [!IMPORTANT]
> This default value may conflict with your own project's routing if you planned on having a normal route with the same base path. You can change this value to avoid conflicts.

### `autoCodeSplitting`

This feature is only available is you are using the TanStack Router Bundler Plugin.
Expand Down
4 changes: 2 additions & 2 deletions docs/router/eslint/create-route-property-order.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Examples of **incorrect** code for this rule:
/* eslint "@tanstack/router/create-route-property-order": "warn" */
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/foo/bar/$id')({
export const Route = createFileRoute({
loader: async ({context}) => {
await context.queryClient.ensureQueryData(getQueryOptions(context.hello)),
},
Expand All @@ -43,7 +43,7 @@ Examples of **correct** code for this rule:
/* eslint "@tanstack/router/create-route-property-order": "warn" */
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/foo/bar/$id')({
export const Route = createFileRoute({
beforeLoad: () => ({hello: 'world'}),
loader: async ({context}) => {
await context.queryClient.ensureQueryData(getQueryOptions(context.hello)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ A new function that accepts a single argument of type [`RouteOptions`](./RouteOp
```tsx
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/')({
export const Route = createFileRoute({
loader: () => {
return 'Hello World'
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const searchSchema = z.object({
two: z.string().optional(),
})

export const Route = createFileRoute('/hello')({
export const Route = createFileRoute({
validateSearch: zodValidator(searchSchema),
search: {
middlewares: [retainSearchParams(true)],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ const searchSchema = z.object({
two: z.string().default(defaultValues.two),
})

export const Route = createFileRoute('/hello')({
export const Route = createFileRoute({
validateSearch: zodValidator(searchSchema),
search: {
// strip default values
Expand Down Expand Up @@ -68,7 +68,7 @@ const searchSchema = z.object({
two: z.string().default('xyz'),
})

export const Route = createFileRoute('/hello')({
export const Route = createFileRoute({
validateSearch: zodValidator(searchSchema),
search: {
// remove all search params
Expand Down
2 changes: 1 addition & 1 deletion docs/router/framework/react/decisions-on-dx.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ Let's take a look at how the route configuration for the previous example would
// src/routes/posts/index.ts
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/posts/')({
export const Route = createFileRoute({
component: () => 'Posts index component goes here!!!',
})
```
Expand Down
4 changes: 2 additions & 2 deletions docs/router/framework/react/guide/code-splitting.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,11 @@ To enable automatic code-splitting, you just need to add the following to the co
// vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { TanStackRouterVite } from '@tanstack/router-plugin/vite'
import { tanstackRouter } from '@tanstack/router-plugin/vite'

export default defineConfig({
plugins: [
TanStackRouterVite({
tanstackRouter({
// ...
autoCodeSplitting: true,
}),
Expand Down
6 changes: 3 additions & 3 deletions docs/router/framework/react/guide/external-data-loading.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Here is a naive illustration (don't do this) of using a Route's `loader` option
// src/routes/posts.tsx
let postsCache = []

export const Route = createFileRoute('/posts')({
export const Route = createFileRoute({
loader: async () => {
postsCache = await fetchPosts()
},
Expand Down Expand Up @@ -80,7 +80,7 @@ const postsQueryOptions = queryOptions({
queryFn: () => fetchPosts(),
})

export const Route = createFileRoute('/posts')({
export const Route = createFileRoute({
// Use the `loader` option to ensure that the data is loaded
loader: () => queryClient.ensureQueryData(postsQueryOptions),
component: () => {
Expand All @@ -105,7 +105,7 @@ export const Route = createFileRoute('/posts')({
When an error occurs while using `suspense` with `Tanstack Query`, you'll need to let queries know that you want to try again when re-rendering. This can be done by using the `reset` function provided by the `useQueryErrorResetBoundary` hook. We can invoke this function in an effect as soon as the error component mounts. This will make sure that the query is reset and will try to fetch data again when the route component is rendered again. This will also cover cases where users navigate away from our route instead of clicking the `retry` button.

```tsx
export const Route = createFileRoute('/posts')({
export const Route = createFileRoute({
loader: () => queryClient.ensureQueryData(postsQueryOptions),
errorComponent: ({ error, reset }) => {
const router = useRouter()
Expand Down
10 changes: 5 additions & 5 deletions docs/router/framework/react/guide/router-context.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Once you have defined the router context type, you can use it in your route defi

```tsx
// src/routes/todos.tsx
export const Route = createFileRoute('/todos')({
export const Route = createFileRoute({
component: Todos,
loader: ({ context }) => fetchTodosByUserId(context.user.id),
})
Expand Down Expand Up @@ -122,7 +122,7 @@ Then, in your route:

```tsx
// src/routes/todos.tsx
export const Route = createFileRoute('/todos')({
export const Route = createFileRoute({
component: Todos,
loader: ({ context }) => context.fetchTodosByUserId(context.userId),
})
Expand Down Expand Up @@ -158,7 +158,7 @@ Then, in your route:

```tsx
// src/routes/todos.tsx
export const Route = createFileRoute('/todos')({
export const Route = createFileRoute({
component: Todos,
loader: async ({ context }) => {
await context.queryClient.ensureQueryData({
Expand Down Expand Up @@ -234,7 +234,7 @@ So, now in our route's `loader` function, we can access the `networkStrength` ho
```tsx
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/posts')({
export const Route = createFileRoute({
component: Posts,
loader: ({ context }) => {
if (context.networkStrength === 'STRONG') {
Expand Down Expand Up @@ -282,7 +282,7 @@ const router = createRouter({
```tsx
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/todos')({
export const Route = createFileRoute({
component: Todos,
beforeLoad: () => {
return {
Expand Down
70 changes: 10 additions & 60 deletions docs/router/framework/react/guide/tanstack-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,12 @@ TanStack Start is powered by the following packages and need to be installed as

- [@tanstack/start](https://github.com/tanstack/start)
- [@tanstack/react-router](https://tanstack.com/router)
- [Vinxi](https://vinxi.vercel.app/)

> [!NOTE]
> Vinxi is a temporary dependency that will be replaced by a simple vite plugin or a dedicated Start CLI.
- [Vite](https://vite.dev/)

To install them, run:

```shell
npm i @tanstack/react-start @tanstack/react-router vinxi
npm i @tanstack/react-start @tanstack/react-router vite
```

You'll also need React and the Vite React plugin, so install their dependencies as well:
Expand All @@ -72,16 +69,16 @@ npm i -D typescript @types/react @types/react-dom

# Update Configuration Files

We'll then update our `package.json` to use Vinxi's CLI and set `"type": "module"`:
We'll then update our `package.json` to use Vite's CLI and set `"type": "module"`:

```jsonc
{
// ...
"type": "module",
"scripts": {
"dev": "vinxi dev",
"build": "vinxi build",
"start": "vinxi start",
"dev": "vite dev",
"build": "vite build",
"start": "vite start",
},
}
```
Expand All @@ -97,12 +94,10 @@ export default defineConfig({})

# Add the Basic Templating

There are four required files for TanStack Start usage:
There are 2 required files for TanStack Start usage:

1. The router configuration
2. The server entry point
3. The client entry point
4. The root of your application
2. The root of your application

Once configuration is done, we'll have a file tree that looks like the following:

Expand All @@ -111,10 +106,8 @@ Once configuration is done, we'll have a file tree that looks like the following
├── app/
│ ├── routes/
│ │ └── `__root.tsx`
│ ├── `client.tsx`
│ ├── `router.tsx`
│ ├── `routeTree.gen.ts`
│ └── `ssr.tsx`
├── `.gitignore`
├── `app.config.ts`
├── `package.json`
Expand All @@ -123,7 +116,7 @@ Once configuration is done, we'll have a file tree that looks like the following

## The Router Configuration

This is the file that will dictate the behavior of TanStack Router used within Start. Here, you can configure everything
This is the file that will dictate the behavior of TanStack Router used within Start for both the server and the client. Here, you can configure everything
from the default [preloading functionality](./preloading.md) to [caching staleness](./data-loading.md).

```tsx
Expand All @@ -149,52 +142,9 @@ declare module '@tanstack/react-router' {
> `routeTree.gen.ts` is not a file you're expected to have at this point.
> It will be generated when you run TanStack Start (via `npm run dev` or `npm run start`) for the first time.

## The Server Entry Point

As TanStack Start is an [SSR](https://unicorn-utterances.com/posts/what-is-ssr-and-ssg) framework, we need to pipe this router
information to our server entry point:

```tsx
// app/ssr.tsx
import {
createStartHandler,
defaultStreamHandler,
} from '@tanstack/react-start/server'
import { getRouterManifest } from '@tanstack/react-start/router-manifest'

import { createRouter } from './router'

export default createStartHandler({
createRouter,
getRouterManifest,
})(defaultStreamHandler)
```

This allows us to know what routes and loaders we need to execute when the user hits a given route.

## The Client Entry Point

Now we need a way to hydrate our client-side JavaScript once the route resolves to the client. We do this by piping the same
router information to our client entry point:

```tsx
// app/client.tsx
import { hydrateRoot } from 'react-dom/client'
import { StartClient } from '@tanstack/react-start'
import { createRouter } from './router'

const router = createRouter({
scrollRestoration: true,
})

hydrateRoot(document!, <StartClient router={router} />)
```

This enables us to kick off client-side routing once the user's initial server request has fulfilled.

## The Root of Your Application

Finally, we need to create the root of our application. This is the entry point for all other routes. The code in this file will wrap all other routes in the application.
Finally, we need to create the root of our application. This is the entry point for all application routes. The code in this file will wrap all other routes in the application.

```tsx
// app/routes/__root.tsx
Expand Down
Loading