@tanstack/react-router 1.20.1 → 1.20.3-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +31 -0
  2. package/dist/cjs/Asset.cjs +41 -0
  3. package/dist/cjs/Asset.cjs.map +1 -0
  4. package/dist/cjs/Asset.d.cts +2 -0
  5. package/dist/cjs/CatchBoundary.cjs +16 -12
  6. package/dist/cjs/CatchBoundary.cjs.map +1 -1
  7. package/dist/cjs/CatchBoundary.d.cts +8 -32
  8. package/dist/cjs/ClientOnly.cjs +20 -0
  9. package/dist/cjs/ClientOnly.cjs.map +1 -0
  10. package/dist/cjs/ClientOnly.d.cts +29 -0
  11. package/dist/cjs/HeadContent.cjs +155 -0
  12. package/dist/cjs/HeadContent.cjs.map +1 -0
  13. package/dist/cjs/HeadContent.d.cts +7 -0
  14. package/dist/cjs/Match.cjs +252 -0
  15. package/dist/cjs/Match.cjs.map +1 -0
  16. package/dist/cjs/Match.d.cts +8 -0
  17. package/dist/cjs/Matches.cjs +39 -287
  18. package/dist/cjs/Matches.cjs.map +1 -1
  19. package/dist/cjs/Matches.d.cts +23 -83
  20. package/dist/cjs/RouterProvider.cjs +17 -140
  21. package/dist/cjs/RouterProvider.cjs.map +1 -1
  22. package/dist/cjs/RouterProvider.d.cts +8 -27
  23. package/dist/cjs/SafeFragment.cjs +8 -0
  24. package/dist/cjs/SafeFragment.cjs.map +1 -0
  25. package/dist/cjs/SafeFragment.d.cts +1 -0
  26. package/dist/cjs/ScriptOnce.cjs +28 -0
  27. package/dist/cjs/ScriptOnce.cjs.map +1 -0
  28. package/dist/cjs/ScriptOnce.d.cts +5 -0
  29. package/dist/cjs/Scripts.cjs +51 -0
  30. package/dist/cjs/Scripts.cjs.map +1 -0
  31. package/dist/cjs/Scripts.d.cts +1 -0
  32. package/dist/cjs/ScrollRestoration.cjs +39 -0
  33. package/dist/cjs/ScrollRestoration.cjs.map +1 -0
  34. package/dist/cjs/ScrollRestoration.d.cts +14 -0
  35. package/dist/cjs/Transitioner.cjs +115 -0
  36. package/dist/cjs/Transitioner.cjs.map +1 -0
  37. package/dist/cjs/Transitioner.d.cts +1 -0
  38. package/dist/cjs/awaited.cjs +12 -65
  39. package/dist/cjs/awaited.cjs.map +1 -1
  40. package/dist/cjs/awaited.d.cts +4 -4
  41. package/dist/cjs/fileRoute.cjs +41 -15
  42. package/dist/cjs/fileRoute.cjs.map +1 -1
  43. package/dist/cjs/fileRoute.d.cts +33 -108
  44. package/dist/cjs/history.d.cts +1 -0
  45. package/dist/cjs/index.cjs +216 -73
  46. package/dist/cjs/index.cjs.map +1 -1
  47. package/dist/cjs/index.d.cts +52 -29
  48. package/dist/cjs/lazyRouteComponent.cjs +40 -29
  49. package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
  50. package/dist/cjs/lazyRouteComponent.d.cts +1 -1
  51. package/dist/cjs/link.cjs +212 -106
  52. package/dist/cjs/link.cjs.map +1 -1
  53. package/dist/cjs/link.d.cts +41 -86
  54. package/dist/cjs/matchContext.cjs +27 -0
  55. package/dist/cjs/matchContext.cjs.map +1 -0
  56. package/dist/cjs/matchContext.d.cts +3 -0
  57. package/dist/cjs/not-found.cjs +9 -15
  58. package/dist/cjs/not-found.cjs.map +1 -1
  59. package/dist/cjs/not-found.d.cts +5 -22
  60. package/dist/cjs/renderRouteNotFound.cjs +22 -0
  61. package/dist/cjs/renderRouteNotFound.cjs.map +1 -0
  62. package/dist/cjs/renderRouteNotFound.d.cts +2 -0
  63. package/dist/cjs/route.cjs +110 -79
  64. package/dist/cjs/route.cjs.map +1 -1
  65. package/dist/cjs/route.d.cts +64 -361
  66. package/dist/cjs/router.cjs +12 -1237
  67. package/dist/cjs/router.cjs.map +1 -1
  68. package/dist/cjs/router.d.cts +69 -237
  69. package/dist/cjs/routerContext.cjs +1 -1
  70. package/dist/cjs/routerContext.cjs.map +1 -1
  71. package/dist/cjs/routerContext.d.cts +7 -2
  72. package/dist/cjs/scroll-restoration.cjs +16 -177
  73. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  74. package/dist/cjs/scroll-restoration.d.cts +1 -18
  75. package/dist/cjs/serializer.d.cts +6 -0
  76. package/dist/cjs/structuralSharing.d.cts +8 -0
  77. package/dist/cjs/typePrimitives.d.cts +16 -0
  78. package/dist/cjs/useBlocker.cjs +138 -9
  79. package/dist/cjs/useBlocker.cjs.map +1 -1
  80. package/dist/cjs/useBlocker.d.cts +64 -7
  81. package/dist/cjs/useCanGoBack.cjs +8 -0
  82. package/dist/cjs/useCanGoBack.cjs.map +1 -0
  83. package/dist/cjs/useCanGoBack.d.cts +1 -0
  84. package/dist/cjs/useLoaderData.cjs +15 -0
  85. package/dist/cjs/useLoaderData.cjs.map +1 -0
  86. package/dist/cjs/useLoaderData.d.cts +8 -0
  87. package/dist/cjs/useLoaderDeps.cjs +14 -0
  88. package/dist/cjs/useLoaderDeps.cjs.map +1 -0
  89. package/dist/cjs/useLoaderDeps.d.cts +8 -0
  90. package/dist/cjs/useLocation.cjs +10 -0
  91. package/dist/cjs/useLocation.cjs.map +1 -0
  92. package/dist/cjs/useLocation.d.cts +7 -0
  93. package/dist/cjs/useMatch.cjs +47 -0
  94. package/dist/cjs/useMatch.cjs.map +1 -0
  95. package/dist/cjs/useMatch.d.cts +10 -0
  96. package/dist/cjs/useNavigate.cjs +18 -19
  97. package/dist/cjs/useNavigate.cjs.map +1 -1
  98. package/dist/cjs/useNavigate.d.cts +4 -8
  99. package/dist/cjs/useParams.cjs +8 -8
  100. package/dist/cjs/useParams.cjs.map +1 -1
  101. package/dist/cjs/useParams.d.cts +9 -8
  102. package/dist/cjs/useRouteContext.cjs +3 -3
  103. package/dist/cjs/useRouteContext.cjs.map +1 -1
  104. package/dist/cjs/useRouteContext.d.cts +3 -7
  105. package/dist/cjs/useRouter.cjs.map +1 -1
  106. package/dist/cjs/useRouter.d.cts +3 -4
  107. package/dist/cjs/useRouterState.cjs +18 -1
  108. package/dist/cjs/useRouterState.cjs.map +1 -1
  109. package/dist/cjs/useRouterState.d.cts +8 -6
  110. package/dist/cjs/useSearch.cjs +7 -4
  111. package/dist/cjs/useSearch.cjs.map +1 -1
  112. package/dist/cjs/useSearch.d.cts +9 -7
  113. package/dist/cjs/utils.cjs +40 -122
  114. package/dist/cjs/utils.cjs.map +1 -1
  115. package/dist/cjs/utils.d.cts +46 -50
  116. package/dist/esm/Asset.d.ts +2 -0
  117. package/dist/esm/Asset.js +41 -0
  118. package/dist/esm/Asset.js.map +1 -0
  119. package/dist/esm/CatchBoundary.d.ts +8 -32
  120. package/dist/esm/CatchBoundary.js +16 -12
  121. package/dist/esm/CatchBoundary.js.map +1 -1
  122. package/dist/esm/ClientOnly.d.ts +29 -0
  123. package/dist/esm/ClientOnly.js +20 -0
  124. package/dist/esm/ClientOnly.js.map +1 -0
  125. package/dist/esm/HeadContent.d.ts +7 -0
  126. package/dist/esm/HeadContent.js +139 -0
  127. package/dist/esm/HeadContent.js.map +1 -0
  128. package/dist/esm/Match.d.ts +8 -0
  129. package/dist/esm/Match.js +235 -0
  130. package/dist/esm/Match.js.map +1 -0
  131. package/dist/esm/Matches.d.ts +23 -83
  132. package/dist/esm/Matches.js +36 -284
  133. package/dist/esm/Matches.js.map +1 -1
  134. package/dist/esm/RouterProvider.d.ts +8 -27
  135. package/dist/esm/RouterProvider.js +20 -126
  136. package/dist/esm/RouterProvider.js.map +1 -1
  137. package/dist/esm/SafeFragment.d.ts +1 -0
  138. package/dist/esm/SafeFragment.js +8 -0
  139. package/dist/esm/SafeFragment.js.map +1 -0
  140. package/dist/esm/ScriptOnce.d.ts +5 -0
  141. package/dist/esm/ScriptOnce.js +28 -0
  142. package/dist/esm/ScriptOnce.js.map +1 -0
  143. package/dist/esm/Scripts.d.ts +1 -0
  144. package/dist/esm/Scripts.js +51 -0
  145. package/dist/esm/Scripts.js.map +1 -0
  146. package/dist/esm/ScrollRestoration.d.ts +14 -0
  147. package/dist/esm/ScrollRestoration.js +39 -0
  148. package/dist/esm/ScrollRestoration.js.map +1 -0
  149. package/dist/esm/Transitioner.d.ts +1 -0
  150. package/dist/esm/Transitioner.js +98 -0
  151. package/dist/esm/Transitioner.js.map +1 -0
  152. package/dist/esm/awaited.d.ts +4 -4
  153. package/dist/esm/awaited.js +12 -65
  154. package/dist/esm/awaited.js.map +1 -1
  155. package/dist/esm/fileRoute.d.ts +33 -108
  156. package/dist/esm/fileRoute.js +38 -12
  157. package/dist/esm/fileRoute.js.map +1 -1
  158. package/dist/esm/history.d.ts +1 -0
  159. package/dist/esm/index.d.ts +52 -29
  160. package/dist/esm/index.js +41 -29
  161. package/dist/esm/index.js.map +1 -1
  162. package/dist/esm/lazyRouteComponent.d.ts +1 -1
  163. package/dist/esm/lazyRouteComponent.js +40 -29
  164. package/dist/esm/lazyRouteComponent.js.map +1 -1
  165. package/dist/esm/link.d.ts +41 -86
  166. package/dist/esm/link.js +212 -106
  167. package/dist/esm/link.js.map +1 -1
  168. package/dist/esm/matchContext.d.ts +3 -0
  169. package/dist/esm/matchContext.js +10 -0
  170. package/dist/esm/matchContext.js.map +1 -0
  171. package/dist/esm/not-found.d.ts +5 -22
  172. package/dist/esm/not-found.js +9 -15
  173. package/dist/esm/not-found.js.map +1 -1
  174. package/dist/esm/renderRouteNotFound.d.ts +2 -0
  175. package/dist/esm/renderRouteNotFound.js +22 -0
  176. package/dist/esm/renderRouteNotFound.js.map +1 -0
  177. package/dist/esm/route.d.ts +64 -361
  178. package/dist/esm/route.js +103 -72
  179. package/dist/esm/route.js.map +1 -1
  180. package/dist/esm/router.d.ts +69 -237
  181. package/dist/esm/router.js +13 -1238
  182. package/dist/esm/router.js.map +1 -1
  183. package/dist/esm/routerContext.d.ts +7 -2
  184. package/dist/esm/routerContext.js +1 -1
  185. package/dist/esm/routerContext.js.map +1 -1
  186. package/dist/esm/scroll-restoration.d.ts +1 -18
  187. package/dist/esm/scroll-restoration.js +17 -161
  188. package/dist/esm/scroll-restoration.js.map +1 -1
  189. package/dist/esm/serializer.d.ts +6 -0
  190. package/dist/esm/structuralSharing.d.ts +8 -0
  191. package/dist/esm/typePrimitives.d.ts +16 -0
  192. package/dist/esm/useBlocker.d.ts +64 -7
  193. package/dist/esm/useBlocker.js +138 -9
  194. package/dist/esm/useBlocker.js.map +1 -1
  195. package/dist/esm/useCanGoBack.d.ts +1 -0
  196. package/dist/esm/useCanGoBack.js +8 -0
  197. package/dist/esm/useCanGoBack.js.map +1 -0
  198. package/dist/esm/useLoaderData.d.ts +8 -0
  199. package/dist/esm/useLoaderData.js +15 -0
  200. package/dist/esm/useLoaderData.js.map +1 -0
  201. package/dist/esm/useLoaderDeps.d.ts +8 -0
  202. package/dist/esm/useLoaderDeps.js +14 -0
  203. package/dist/esm/useLoaderDeps.js.map +1 -0
  204. package/dist/esm/useLocation.d.ts +7 -0
  205. package/dist/esm/useLocation.js +10 -0
  206. package/dist/esm/useLocation.js.map +1 -0
  207. package/dist/esm/useMatch.d.ts +10 -0
  208. package/dist/esm/useMatch.js +30 -0
  209. package/dist/esm/useMatch.js.map +1 -0
  210. package/dist/esm/useNavigate.d.ts +4 -8
  211. package/dist/esm/useNavigate.js +18 -19
  212. package/dist/esm/useNavigate.js.map +1 -1
  213. package/dist/esm/useParams.d.ts +9 -8
  214. package/dist/esm/useParams.js +8 -8
  215. package/dist/esm/useParams.js.map +1 -1
  216. package/dist/esm/useRouteContext.d.ts +3 -7
  217. package/dist/esm/useRouteContext.js +2 -2
  218. package/dist/esm/useRouteContext.js.map +1 -1
  219. package/dist/esm/useRouter.d.ts +3 -4
  220. package/dist/esm/useRouter.js.map +1 -1
  221. package/dist/esm/useRouterState.d.ts +8 -6
  222. package/dist/esm/useRouterState.js +18 -1
  223. package/dist/esm/useRouterState.js.map +1 -1
  224. package/dist/esm/useSearch.d.ts +9 -7
  225. package/dist/esm/useSearch.js +6 -3
  226. package/dist/esm/useSearch.js.map +1 -1
  227. package/dist/esm/utils.d.ts +46 -50
  228. package/dist/esm/utils.js +41 -123
  229. package/dist/esm/utils.js.map +1 -1
  230. package/package.json +30 -31
  231. package/src/Asset.tsx +40 -0
  232. package/src/CatchBoundary.tsx +35 -19
  233. package/src/ClientOnly.tsx +68 -0
  234. package/src/HeadContent.tsx +174 -0
  235. package/src/Match.tsx +330 -0
  236. package/src/Matches.tsx +149 -558
  237. package/src/RouterProvider.tsx +58 -212
  238. package/src/SafeFragment.tsx +5 -0
  239. package/src/ScriptOnce.tsx +32 -0
  240. package/src/Scripts.tsx +65 -0
  241. package/src/ScrollRestoration.tsx +69 -0
  242. package/src/Transitioner.tsx +130 -0
  243. package/src/awaited.tsx +16 -87
  244. package/src/fileRoute.ts +145 -248
  245. package/src/history.ts +2 -1
  246. package/src/index.tsx +368 -30
  247. package/src/lazyRouteComponent.tsx +68 -54
  248. package/src/link.tsx +397 -522
  249. package/src/matchContext.tsx +8 -0
  250. package/src/not-found.tsx +13 -34
  251. package/src/renderRouteNotFound.tsx +27 -0
  252. package/src/route.tsx +572 -0
  253. package/src/router.ts +99 -2067
  254. package/src/routerContext.tsx +8 -2
  255. package/src/scroll-restoration.tsx +23 -224
  256. package/src/serializer.ts +7 -0
  257. package/src/structuralSharing.ts +47 -0
  258. package/src/typePrimitives.ts +84 -0
  259. package/src/useBlocker.tsx +297 -15
  260. package/src/useCanGoBack.ts +5 -0
  261. package/src/useLoaderData.tsx +80 -0
  262. package/src/useLoaderDeps.tsx +58 -0
  263. package/src/useLocation.tsx +41 -0
  264. package/src/useMatch.tsx +119 -0
  265. package/src/useNavigate.tsx +41 -61
  266. package/src/useParams.tsx +88 -23
  267. package/src/useRouteContext.ts +24 -18
  268. package/src/useRouter.tsx +4 -5
  269. package/src/useRouterState.tsx +52 -10
  270. package/src/useSearch.tsx +87 -24
  271. package/src/utils.ts +97 -312
  272. package/dist/cjs/createServerFn.cjs +0 -40
  273. package/dist/cjs/createServerFn.cjs.map +0 -1
  274. package/dist/cjs/createServerFn.d.cts +0 -44
  275. package/dist/cjs/defer.cjs +0 -30
  276. package/dist/cjs/defer.cjs.map +0 -1
  277. package/dist/cjs/defer.d.cts +0 -25
  278. package/dist/cjs/location.d.cts +0 -12
  279. package/dist/cjs/path.cjs +0 -213
  280. package/dist/cjs/path.cjs.map +0 -1
  281. package/dist/cjs/path.d.cts +0 -24
  282. package/dist/cjs/qss.cjs +0 -45
  283. package/dist/cjs/qss.cjs.map +0 -1
  284. package/dist/cjs/qss.d.cts +0 -2
  285. package/dist/cjs/redirects.cjs +0 -16
  286. package/dist/cjs/redirects.cjs.map +0 -1
  287. package/dist/cjs/redirects.d.cts +0 -18
  288. package/dist/cjs/routeInfo.d.cts +0 -31
  289. package/dist/cjs/searchParams.cjs +0 -63
  290. package/dist/cjs/searchParams.cjs.map +0 -1
  291. package/dist/cjs/searchParams.d.cts +0 -7
  292. package/dist/esm/createServerFn.d.ts +0 -44
  293. package/dist/esm/createServerFn.js +0 -40
  294. package/dist/esm/createServerFn.js.map +0 -1
  295. package/dist/esm/defer.d.ts +0 -25
  296. package/dist/esm/defer.js +0 -30
  297. package/dist/esm/defer.js.map +0 -1
  298. package/dist/esm/location.d.ts +0 -12
  299. package/dist/esm/path.d.ts +0 -24
  300. package/dist/esm/path.js +0 -213
  301. package/dist/esm/path.js.map +0 -1
  302. package/dist/esm/qss.d.ts +0 -2
  303. package/dist/esm/qss.js +0 -45
  304. package/dist/esm/qss.js.map +0 -1
  305. package/dist/esm/redirects.d.ts +0 -18
  306. package/dist/esm/redirects.js +0 -16
  307. package/dist/esm/redirects.js.map +0 -1
  308. package/dist/esm/routeInfo.d.ts +0 -31
  309. package/dist/esm/searchParams.d.ts +0 -7
  310. package/dist/esm/searchParams.js +0 -63
  311. package/dist/esm/searchParams.js.map +0 -1
  312. package/src/createServerFn.ts +0 -107
  313. package/src/defer.ts +0 -70
  314. package/src/location.ts +0 -13
  315. package/src/path.ts +0 -280
  316. package/src/qss.ts +0 -53
  317. package/src/redirects.ts +0 -56
  318. package/src/route.ts +0 -1356
  319. package/src/routeInfo.ts +0 -63
  320. package/src/searchParams.ts +0 -79
@@ -1,240 +1,72 @@
1
- import * as React from 'react';
2
- import { HistoryState, RouterHistory } from '@tanstack/history';
3
- import { Store } from '@tanstack/react-store';
4
- import { AnySearchSchema, AnyRoute, AnyContext, RouteMask, NotFoundRouteComponent } from './route.js';
5
- import { FullSearchSchema, RouteById, RoutePaths, RoutesById, RoutesByPath } from './routeInfo.js';
6
- import { PickAsRequired, Updater, NonNullableUpdater, Timeout } from './utils.js';
7
- import { RouteComponent } from './route.js';
8
- import { AnyRouteMatch, MatchRouteOptions, RouteMatch } from './Matches.js';
9
- import { ParsedLocation } from './location.js';
10
- import { SearchSerializer, SearchParser } from './searchParams.js';
11
- import { BuildLocationFn, CommitLocationOptions, InjectedHtmlEntry, NavigateFn } from './RouterProvider.js';
12
- import { AnyRedirect, ResolvedRedirect } from './redirects.js';
13
- import { NotFoundError } from './not-found.js';
14
- import { NavigateOptions, ResolveRelativePath, ToOptions } from './link.js';
15
- import { NoInfer } from '@tanstack/react-store';
16
- import { DeferredPromiseState } from './defer.js';
17
- declare global {
18
- interface Window {
19
- __TSR_DEHYDRATED__?: {
20
- data: string;
21
- };
22
- __TSR_ROUTER_CONTEXT__?: React.Context<Router<any>>;
1
+ import { RouterCore, AnyRoute, CreateRouterFn, RouterConstructorOptions, TrailingSlashOption } from '@tanstack/router-core';
2
+ import { RouterHistory } from '@tanstack/history';
3
+ import { ErrorRouteComponent, NotFoundRouteComponent, RouteComponent } from './route.js';
4
+ declare module '@tanstack/router-core' {
5
+ interface RouterOptionsExtensions {
6
+ /**
7
+ * The default `component` a route should use if no component is provided.
8
+ *
9
+ * @default Outlet
10
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultcomponent-property)
11
+ */
12
+ defaultComponent?: RouteComponent;
13
+ /**
14
+ * The default `errorComponent` a route should use if no error component is provided.
15
+ *
16
+ * @default ErrorComponent
17
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaulterrorcomponent-property)
18
+ * @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#handling-errors-with-routeoptionserrorcomponent)
19
+ */
20
+ defaultErrorComponent?: ErrorRouteComponent;
21
+ /**
22
+ * The default `pendingComponent` a route should use if no pending component is provided.
23
+ *
24
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultpendingcomponent-property)
25
+ * @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#showing-a-pending-component)
26
+ */
27
+ defaultPendingComponent?: RouteComponent;
28
+ /**
29
+ * The default `notFoundComponent` a route should use if no notFound component is provided.
30
+ *
31
+ * @default NotFound
32
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultnotfoundcomponent-property)
33
+ * @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/not-found-errors#default-router-wide-not-found-handling)
34
+ */
35
+ defaultNotFoundComponent?: NotFoundRouteComponent;
36
+ /**
37
+ * A component that will be used to wrap the entire router.
38
+ *
39
+ * This is useful for providing a context to the entire router.
40
+ *
41
+ * Only non-DOM-rendering components like providers should be used, anything else will cause a hydration error.
42
+ *
43
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#wrap-property)
44
+ */
45
+ Wrap?: (props: {
46
+ children: any;
47
+ }) => React.JSX.Element;
48
+ /**
49
+ * A component that will be used to wrap the inner contents of the router.
50
+ *
51
+ * This is useful for providing a context to the inner contents of the router where you also need access to the router context and hooks.
52
+ *
53
+ * Only non-DOM-rendering components like providers should be used, anything else will cause a hydration error.
54
+ *
55
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#innerwrap-property)
56
+ */
57
+ InnerWrap?: (props: {
58
+ children: any;
59
+ }) => React.JSX.Element;
60
+ /**
61
+ * The default `onCatch` handler for errors caught by the Router ErrorBoundary
62
+ *
63
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultoncatch-property)
64
+ * @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#handling-errors-with-routeoptionsoncatch)
65
+ */
66
+ defaultOnCatch?: (error: Error, errorInfo: React.ErrorInfo) => void;
23
67
  }
24
68
  }
25
- export interface Register {
69
+ export declare const createRouter: CreateRouterFn;
70
+ export declare class Router<in out TRouteTree extends AnyRoute, in out TTrailingSlashOption extends TrailingSlashOption = 'never', in out TDefaultStructuralSharingOption extends boolean = false, in out TRouterHistory extends RouterHistory = RouterHistory, in out TDehydrated extends Record<string, any> = Record<string, any>> extends RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated> {
71
+ constructor(options: RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>);
26
72
  }
27
- export type AnyRouter = Router<AnyRoute, any, any>;
28
- export type RegisteredRouter = Register extends {
29
- router: infer TRouter extends AnyRouter;
30
- } ? TRouter : AnyRouter;
31
- export type HydrationCtx = {
32
- router: DehydratedRouter;
33
- payload: Record<string, any>;
34
- };
35
- export type RouterContextOptions<TRouteTree extends AnyRoute> = AnyContext extends TRouteTree['types']['routerContext'] ? {
36
- context?: TRouteTree['types']['routerContext'];
37
- } : {
38
- context: TRouteTree['types']['routerContext'];
39
- };
40
- export interface RouterOptions<TRouteTree extends AnyRoute, TDehydrated extends Record<string, any> = Record<string, any>, TSerializedError extends Record<string, any> = Record<string, any>> {
41
- history?: RouterHistory;
42
- stringifySearch?: SearchSerializer;
43
- parseSearch?: SearchParser;
44
- defaultPreload?: false | 'intent';
45
- defaultPreloadDelay?: number;
46
- defaultComponent?: RouteComponent;
47
- defaultErrorComponent?: RouteComponent;
48
- defaultPendingComponent?: RouteComponent;
49
- defaultPendingMs?: number;
50
- defaultPendingMinMs?: number;
51
- defaultStaleTime?: number;
52
- defaultPreloadStaleTime?: number;
53
- defaultPreloadGcTime?: number;
54
- notFoundMode?: 'root' | 'fuzzy';
55
- defaultGcTime?: number;
56
- caseSensitive?: boolean;
57
- routeTree?: TRouteTree;
58
- basepath?: string;
59
- context?: TRouteTree['types']['routerContext'];
60
- dehydrate?: () => TDehydrated;
61
- hydrate?: (dehydrated: TDehydrated) => void;
62
- routeMasks?: RouteMask<TRouteTree>[];
63
- unmaskOnReload?: boolean;
64
- Wrap?: (props: {
65
- children: any;
66
- }) => React.ReactNode;
67
- InnerWrap?: (props: {
68
- children: any;
69
- }) => React.ReactNode;
70
- /**
71
- * @deprecated
72
- * Use `notFoundComponent` instead.
73
- * See https://tanstack.com/router/v1/docs/guide/not-found-errors#migrating-from-notfoundroute for more info.
74
- */
75
- notFoundRoute?: AnyRoute;
76
- defaultNotFoundComponent?: NotFoundRouteComponent;
77
- transformer?: RouterTransformer;
78
- errorSerializer?: RouterErrorSerializer<TSerializedError>;
79
- }
80
- export interface RouterTransformer {
81
- stringify: (obj: unknown) => string;
82
- parse: (str: string) => unknown;
83
- }
84
- export interface RouterErrorSerializer<TSerializedError> {
85
- serialize: (err: unknown) => TSerializedError;
86
- deserialize: (err: TSerializedError) => unknown;
87
- }
88
- export interface RouterState<TRouteTree extends AnyRoute = AnyRoute> {
89
- status: 'pending' | 'idle';
90
- isLoading: boolean;
91
- isTransitioning: boolean;
92
- matches: RouteMatch<TRouteTree>[];
93
- pendingMatches?: RouteMatch<TRouteTree>[];
94
- cachedMatches: RouteMatch<TRouteTree>[];
95
- location: ParsedLocation<FullSearchSchema<TRouteTree>>;
96
- resolvedLocation: ParsedLocation<FullSearchSchema<TRouteTree>>;
97
- lastUpdated: number;
98
- statusCode: number;
99
- redirect?: ResolvedRedirect;
100
- }
101
- export type ListenerFn<TEvent extends RouterEvent> = (event: TEvent) => void;
102
- export interface BuildNextOptions {
103
- to?: string | number | null;
104
- params?: true | Updater<unknown>;
105
- search?: true | Updater<unknown>;
106
- hash?: true | Updater<string>;
107
- state?: true | NonNullableUpdater<HistoryState>;
108
- mask?: {
109
- to?: string | number | null;
110
- params?: true | Updater<unknown>;
111
- search?: true | Updater<unknown>;
112
- hash?: true | Updater<string>;
113
- state?: true | NonNullableUpdater<HistoryState>;
114
- unmaskOnReload?: boolean;
115
- };
116
- from?: string;
117
- }
118
- export interface DehydratedRouterState {
119
- dehydratedMatches: DehydratedRouteMatch[];
120
- }
121
- export type DehydratedRouteMatch = Pick<RouteMatch, 'id' | 'status' | 'updatedAt' | 'loaderData'>;
122
- export interface DehydratedRouter {
123
- state: DehydratedRouterState;
124
- }
125
- export type RouterConstructorOptions<TRouteTree extends AnyRoute, TDehydrated extends Record<string, any>, TSerializedError extends Record<string, any>> = Omit<RouterOptions<TRouteTree, TDehydrated, TSerializedError>, 'context'> & RouterContextOptions<TRouteTree>;
126
- export declare const componentTypes: readonly ["component", "errorComponent", "pendingComponent", "notFoundComponent"];
127
- export type RouterEvents = {
128
- onBeforeLoad: {
129
- type: 'onBeforeLoad';
130
- fromLocation: ParsedLocation;
131
- toLocation: ParsedLocation;
132
- pathChanged: boolean;
133
- };
134
- onLoad: {
135
- type: 'onLoad';
136
- fromLocation: ParsedLocation;
137
- toLocation: ParsedLocation;
138
- pathChanged: boolean;
139
- };
140
- onResolved: {
141
- type: 'onResolved';
142
- fromLocation: ParsedLocation;
143
- toLocation: ParsedLocation;
144
- pathChanged: boolean;
145
- };
146
- };
147
- export type RouterEvent = RouterEvents[keyof RouterEvents];
148
- export type RouterListener<TRouterEvent extends RouterEvent> = {
149
- eventType: TRouterEvent['type'];
150
- fn: ListenerFn<TRouterEvent>;
151
- };
152
- export declare function createRouter<TRouteTree extends AnyRoute = AnyRoute, TDehydrated extends Record<string, any> = Record<string, any>, TSerializedError extends Record<string, any> = Record<string, any>>(options: RouterConstructorOptions<TRouteTree, TDehydrated, TSerializedError>): Router<TRouteTree, TDehydrated, TSerializedError>;
153
- export declare class Router<TRouteTree extends AnyRoute = AnyRoute, TDehydrated extends Record<string, any> = Record<string, any>, TSerializedError extends Record<string, any> = Record<string, any>> {
154
- tempLocationKey: string | undefined;
155
- resetNextScroll: boolean;
156
- navigateTimeout: Timeout | null;
157
- latestLoadPromise: Promise<void>;
158
- subscribers: Set<RouterListener<RouterEvent>>;
159
- injectedHtml: InjectedHtmlEntry[];
160
- dehydratedData?: TDehydrated;
161
- __store: Store<RouterState<TRouteTree>>;
162
- options: PickAsRequired<Omit<RouterOptions<TRouteTree, TDehydrated, TSerializedError>, 'transformer'> & {
163
- transformer: RouterTransformer;
164
- }, 'stringifySearch' | 'parseSearch' | 'context'>;
165
- history: RouterHistory;
166
- latestLocation: ParsedLocation;
167
- basepath: string;
168
- routeTree: TRouteTree;
169
- routesById: RoutesById<TRouteTree>;
170
- routesByPath: RoutesByPath<TRouteTree>;
171
- flatRoutes: AnyRoute[];
172
- /**
173
- * @deprecated Use the `createRouter` function instead
174
- */
175
- constructor(options: RouterConstructorOptions<TRouteTree, TDehydrated, TSerializedError>);
176
- startReactTransition: (fn: () => void) => void;
177
- update: (newOptions: RouterConstructorOptions<TRouteTree, TDehydrated, TSerializedError>) => void;
178
- get state(): RouterState<TRouteTree>;
179
- buildRouteTree: () => void;
180
- subscribe: <TType extends keyof RouterEvents>(eventType: TType, fn: ListenerFn<RouterEvents[TType]>) => () => void;
181
- emit: (routerEvent: RouterEvent) => void;
182
- checkLatest: (promise: Promise<void>) => undefined | Promise<void>;
183
- parseLocation: (previousLocation?: ParsedLocation) => ParsedLocation<FullSearchSchema<TRouteTree>>;
184
- resolvePathWithBase: (from: string, path: string) => string;
185
- get looseRoutesById(): Record<string, AnyRoute>;
186
- matchRoutes: <TRouteTree_1 extends AnyRoute>(pathname: string, locationSearch: AnySearchSchema, opts?: {
187
- preload?: boolean;
188
- throwOnError?: boolean;
189
- debug?: boolean;
190
- }) => RouteMatch<TRouteTree_1, import("./routeInfo").ParseRoute<TRouteTree_1, TRouteTree_1>["id"], false>[];
191
- cancelMatch: (id: string) => void;
192
- cancelMatches: () => void;
193
- buildLocation: BuildLocationFn<TRouteTree>;
194
- commitLocation: ({ startTransition, ...next }: ParsedLocation & CommitLocationOptions) => Promise<void>;
195
- buildAndCommitLocation: ({ replace, resetScroll, startTransition, ...rest }?: BuildNextOptions & CommitLocationOptions) => Promise<void>;
196
- navigate: NavigateFn;
197
- loadMatches: ({ checkLatest, location, matches, preload, }: {
198
- checkLatest: () => Promise<void> | undefined;
199
- location: ParsedLocation;
200
- matches: AnyRouteMatch[];
201
- preload?: boolean | undefined;
202
- }) => Promise<RouteMatch[]>;
203
- invalidate: () => void;
204
- load: () => Promise<void>;
205
- resolveRedirect: (err: AnyRedirect) => ResolvedRedirect;
206
- cleanCache: () => void;
207
- preloadRoute: <TFrom extends string | import("./routeInfo").ParseRoute<TRouteTree, TRouteTree>["fullPath"] = string, TTo extends string = "", TMaskFrom extends string | import("./routeInfo").ParseRoute<TRouteTree, TRouteTree>["fullPath"] = TFrom, TMaskTo extends string = "">(opts: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<AnyRouteMatch[] | undefined>;
208
- matchRoute: <TFrom extends RoutePaths<TRouteTree> = "/", TTo extends string = "", TResolved = ResolveRelativePath<TFrom, NoInfer<TTo>>>(location: ToOptions<TRouteTree, TFrom, TTo>, opts?: MatchRouteOptions) => false | RouteById<TRouteTree, TResolved>["types"]["allParams"];
209
- injectHtml: (html: string | (() => Promise<string> | string)) => Promise<void>;
210
- registeredDeferredsIds: Map<string, {}>;
211
- registeredDeferreds: WeakMap<{}, DeferredPromiseState<any>>;
212
- getDeferred: (uid: string) => DeferredPromiseState<any> | undefined;
213
- /**
214
- * @deprecated Please inject your own html using the `injectHtml` method
215
- */
216
- dehydrateData: <T>(key: any, getData: T | (() => T | Promise<T>)) => () => T | undefined;
217
- /**
218
- * @deprecated Please extract your own data from scripts injected using the `injectHtml` method
219
- */
220
- hydrateData: <T extends unknown = unknown>(key: any) => T | undefined;
221
- dehydrate: () => DehydratedRouter;
222
- hydrate: (__do_not_use_server_ctx?: string) => Promise<void>;
223
- handleNotFound: (matches: AnyRouteMatch[], err: NotFoundError) => void;
224
- hasNotFoundMatch: () => boolean;
225
- }
226
- export declare function lazyFn<T extends Record<string, (...args: any[]) => any>, TKey extends keyof T = 'default'>(fn: () => Promise<T>, key?: TKey): (...args: Parameters<T[TKey]>) => Promise<Awaited<ReturnType<T[TKey]>>>;
227
- export declare class SearchParamError extends Error {
228
- }
229
- export declare class PathParamError extends Error {
230
- }
231
- export declare function getInitialRouterState(location: ParsedLocation): RouterState<any>;
232
- export declare function defaultSerializeError(err: unknown): {
233
- name: string;
234
- message: string;
235
- data?: undefined;
236
- } | {
237
- data: unknown;
238
- name?: undefined;
239
- message?: undefined;
240
- };