@tanstack/solid-router 1.108.0

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 (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +29 -0
  3. package/dist/cjs/Asset.cjs +59 -0
  4. package/dist/cjs/Asset.cjs.map +1 -0
  5. package/dist/cjs/Asset.d.cts +2 -0
  6. package/dist/cjs/CatchBoundary.cjs +92 -0
  7. package/dist/cjs/CatchBoundary.cjs.map +1 -0
  8. package/dist/cjs/CatchBoundary.d.cts +11 -0
  9. package/dist/cjs/HeadContent.cjs +129 -0
  10. package/dist/cjs/HeadContent.cjs.map +1 -0
  11. package/dist/cjs/HeadContent.d.cts +8 -0
  12. package/dist/cjs/Match.cjs +340 -0
  13. package/dist/cjs/Match.cjs.map +1 -0
  14. package/dist/cjs/Match.d.cts +8 -0
  15. package/dist/cjs/Matches.cjs +151 -0
  16. package/dist/cjs/Matches.cjs.map +1 -0
  17. package/dist/cjs/Matches.d.cts +69 -0
  18. package/dist/cjs/RouterProvider.cjs +45 -0
  19. package/dist/cjs/RouterProvider.cjs.map +1 -0
  20. package/dist/cjs/RouterProvider.d.cts +35 -0
  21. package/dist/cjs/SafeFragment.cjs +8 -0
  22. package/dist/cjs/SafeFragment.cjs.map +1 -0
  23. package/dist/cjs/SafeFragment.d.cts +1 -0
  24. package/dist/cjs/ScriptOnce.cjs +23 -0
  25. package/dist/cjs/ScriptOnce.cjs.map +1 -0
  26. package/dist/cjs/ScriptOnce.d.cts +5 -0
  27. package/dist/cjs/Scripts.cjs +48 -0
  28. package/dist/cjs/Scripts.cjs.map +1 -0
  29. package/dist/cjs/Scripts.d.cts +1 -0
  30. package/dist/cjs/ScrollRestoration.cjs +37 -0
  31. package/dist/cjs/ScrollRestoration.cjs.map +1 -0
  32. package/dist/cjs/ScrollRestoration.d.cts +15 -0
  33. package/dist/cjs/Transitioner.cjs +132 -0
  34. package/dist/cjs/Transitioner.cjs.map +1 -0
  35. package/dist/cjs/Transitioner.d.cts +1 -0
  36. package/dist/cjs/awaited.cjs +53 -0
  37. package/dist/cjs/awaited.cjs.map +1 -0
  38. package/dist/cjs/awaited.d.cts +11 -0
  39. package/dist/cjs/fileRoute.cjs +90 -0
  40. package/dist/cjs/fileRoute.cjs.map +1 -0
  41. package/dist/cjs/fileRoute.d.cts +58 -0
  42. package/dist/cjs/history.d.cts +8 -0
  43. package/dist/cjs/index.cjs +260 -0
  44. package/dist/cjs/index.cjs.map +1 -0
  45. package/dist/cjs/index.d.cts +53 -0
  46. package/dist/cjs/lazyRouteComponent.cjs +74 -0
  47. package/dist/cjs/lazyRouteComponent.cjs.map +1 -0
  48. package/dist/cjs/lazyRouteComponent.d.cts +7 -0
  49. package/dist/cjs/link.cjs +279 -0
  50. package/dist/cjs/link.cjs.map +1 -0
  51. package/dist/cjs/link.d.cts +113 -0
  52. package/dist/cjs/matchContext.cjs +25 -0
  53. package/dist/cjs/matchContext.cjs.map +1 -0
  54. package/dist/cjs/matchContext.d.cts +3 -0
  55. package/dist/cjs/not-found.cjs +51 -0
  56. package/dist/cjs/not-found.cjs.map +1 -0
  57. package/dist/cjs/not-found.d.cts +27 -0
  58. package/dist/cjs/redirects.cjs +29 -0
  59. package/dist/cjs/redirects.cjs.map +1 -0
  60. package/dist/cjs/redirects.d.cts +21 -0
  61. package/dist/cjs/renderRouteNotFound.cjs +23 -0
  62. package/dist/cjs/renderRouteNotFound.cjs.map +1 -0
  63. package/dist/cjs/renderRouteNotFound.d.cts +3 -0
  64. package/dist/cjs/route.cjs +233 -0
  65. package/dist/cjs/route.cjs.map +1 -0
  66. package/dist/cjs/route.d.cts +297 -0
  67. package/dist/cjs/routeInfo.d.cts +53 -0
  68. package/dist/cjs/router.cjs +1687 -0
  69. package/dist/cjs/router.cjs.map +1 -0
  70. package/dist/cjs/router.d.cts +555 -0
  71. package/dist/cjs/routerContext.cjs +33 -0
  72. package/dist/cjs/routerContext.cjs.map +1 -0
  73. package/dist/cjs/routerContext.d.cts +8 -0
  74. package/dist/cjs/scroll-restoration.cjs +183 -0
  75. package/dist/cjs/scroll-restoration.cjs.map +1 -0
  76. package/dist/cjs/scroll-restoration.d.cts +29 -0
  77. package/dist/cjs/typePrimitives.d.cts +66 -0
  78. package/dist/cjs/useBlocker.cjs +165 -0
  79. package/dist/cjs/useBlocker.cjs.map +1 -0
  80. package/dist/cjs/useBlocker.d.cts +68 -0
  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 +14 -0
  85. package/dist/cjs/useLoaderData.cjs.map +1 -0
  86. package/dist/cjs/useLoaderData.d.cts +13 -0
  87. package/dist/cjs/useLoaderDeps.cjs +17 -0
  88. package/dist/cjs/useLoaderDeps.cjs.map +1 -0
  89. package/dist/cjs/useLoaderDeps.d.cts +12 -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 +39 -0
  94. package/dist/cjs/useMatch.cjs.map +1 -0
  95. package/dist/cjs/useMatch.d.cts +14 -0
  96. package/dist/cjs/useNavigate.cjs +45 -0
  97. package/dist/cjs/useNavigate.cjs.map +1 -0
  98. package/dist/cjs/useNavigate.d.cts +7 -0
  99. package/dist/cjs/useParams.cjs +15 -0
  100. package/dist/cjs/useParams.cjs.map +1 -0
  101. package/dist/cjs/useParams.d.cts +15 -0
  102. package/dist/cjs/useRouteContext.cjs +11 -0
  103. package/dist/cjs/useRouteContext.cjs.map +1 -0
  104. package/dist/cjs/useRouteContext.d.cts +13 -0
  105. package/dist/cjs/useRouter.cjs +29 -0
  106. package/dist/cjs/useRouter.cjs.map +1 -0
  107. package/dist/cjs/useRouter.d.cts +4 -0
  108. package/dist/cjs/useRouterState.cjs +16 -0
  109. package/dist/cjs/useRouterState.cjs.map +1 -0
  110. package/dist/cjs/useRouterState.d.cts +8 -0
  111. package/dist/cjs/useSearch.cjs +15 -0
  112. package/dist/cjs/useSearch.cjs.map +1 -0
  113. package/dist/cjs/useSearch.d.cts +15 -0
  114. package/dist/cjs/utils.cjs +58 -0
  115. package/dist/cjs/utils.cjs.map +1 -0
  116. package/dist/cjs/utils.d.cts +44 -0
  117. package/dist/esm/Asset.d.ts +2 -0
  118. package/dist/esm/Asset.js +59 -0
  119. package/dist/esm/Asset.js.map +1 -0
  120. package/dist/esm/CatchBoundary.d.ts +11 -0
  121. package/dist/esm/CatchBoundary.js +75 -0
  122. package/dist/esm/CatchBoundary.js.map +1 -0
  123. package/dist/esm/HeadContent.d.ts +8 -0
  124. package/dist/esm/HeadContent.js +112 -0
  125. package/dist/esm/HeadContent.js.map +1 -0
  126. package/dist/esm/Match.d.ts +8 -0
  127. package/dist/esm/Match.js +323 -0
  128. package/dist/esm/Match.js.map +1 -0
  129. package/dist/esm/Matches.d.ts +69 -0
  130. package/dist/esm/Matches.js +134 -0
  131. package/dist/esm/Matches.js.map +1 -0
  132. package/dist/esm/RouterProvider.d.ts +35 -0
  133. package/dist/esm/RouterProvider.js +45 -0
  134. package/dist/esm/RouterProvider.js.map +1 -0
  135. package/dist/esm/SafeFragment.d.ts +1 -0
  136. package/dist/esm/SafeFragment.js +8 -0
  137. package/dist/esm/SafeFragment.js.map +1 -0
  138. package/dist/esm/ScriptOnce.d.ts +5 -0
  139. package/dist/esm/ScriptOnce.js +23 -0
  140. package/dist/esm/ScriptOnce.js.map +1 -0
  141. package/dist/esm/Scripts.d.ts +1 -0
  142. package/dist/esm/Scripts.js +48 -0
  143. package/dist/esm/Scripts.js.map +1 -0
  144. package/dist/esm/ScrollRestoration.d.ts +15 -0
  145. package/dist/esm/ScrollRestoration.js +37 -0
  146. package/dist/esm/ScrollRestoration.js.map +1 -0
  147. package/dist/esm/Transitioner.d.ts +1 -0
  148. package/dist/esm/Transitioner.js +115 -0
  149. package/dist/esm/Transitioner.js.map +1 -0
  150. package/dist/esm/awaited.d.ts +11 -0
  151. package/dist/esm/awaited.js +36 -0
  152. package/dist/esm/awaited.js.map +1 -0
  153. package/dist/esm/fileRoute.d.ts +58 -0
  154. package/dist/esm/fileRoute.js +90 -0
  155. package/dist/esm/fileRoute.js.map +1 -0
  156. package/dist/esm/history.d.ts +8 -0
  157. package/dist/esm/index.d.ts +53 -0
  158. package/dist/esm/index.js +149 -0
  159. package/dist/esm/index.js.map +1 -0
  160. package/dist/esm/lazyRouteComponent.d.ts +7 -0
  161. package/dist/esm/lazyRouteComponent.js +74 -0
  162. package/dist/esm/lazyRouteComponent.js.map +1 -0
  163. package/dist/esm/link.d.ts +113 -0
  164. package/dist/esm/link.js +262 -0
  165. package/dist/esm/link.js.map +1 -0
  166. package/dist/esm/matchContext.d.ts +3 -0
  167. package/dist/esm/matchContext.js +8 -0
  168. package/dist/esm/matchContext.js.map +1 -0
  169. package/dist/esm/not-found.d.ts +27 -0
  170. package/dist/esm/not-found.js +51 -0
  171. package/dist/esm/not-found.js.map +1 -0
  172. package/dist/esm/redirects.d.ts +21 -0
  173. package/dist/esm/redirects.js +29 -0
  174. package/dist/esm/redirects.js.map +1 -0
  175. package/dist/esm/renderRouteNotFound.d.ts +3 -0
  176. package/dist/esm/renderRouteNotFound.js +23 -0
  177. package/dist/esm/renderRouteNotFound.js.map +1 -0
  178. package/dist/esm/route.d.ts +297 -0
  179. package/dist/esm/route.js +233 -0
  180. package/dist/esm/route.js.map +1 -0
  181. package/dist/esm/routeInfo.d.ts +53 -0
  182. package/dist/esm/router.d.ts +555 -0
  183. package/dist/esm/router.js +1687 -0
  184. package/dist/esm/router.js.map +1 -0
  185. package/dist/esm/routerContext.d.ts +8 -0
  186. package/dist/esm/routerContext.js +16 -0
  187. package/dist/esm/routerContext.js.map +1 -0
  188. package/dist/esm/scroll-restoration.d.ts +29 -0
  189. package/dist/esm/scroll-restoration.js +183 -0
  190. package/dist/esm/scroll-restoration.js.map +1 -0
  191. package/dist/esm/typePrimitives.d.ts +66 -0
  192. package/dist/esm/useBlocker.d.ts +68 -0
  193. package/dist/esm/useBlocker.js +148 -0
  194. package/dist/esm/useBlocker.js.map +1 -0
  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 +13 -0
  199. package/dist/esm/useLoaderData.js +14 -0
  200. package/dist/esm/useLoaderData.js.map +1 -0
  201. package/dist/esm/useLoaderDeps.d.ts +12 -0
  202. package/dist/esm/useLoaderDeps.js +17 -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 +14 -0
  208. package/dist/esm/useMatch.js +22 -0
  209. package/dist/esm/useMatch.js.map +1 -0
  210. package/dist/esm/useNavigate.d.ts +7 -0
  211. package/dist/esm/useNavigate.js +28 -0
  212. package/dist/esm/useNavigate.js.map +1 -0
  213. package/dist/esm/useParams.d.ts +15 -0
  214. package/dist/esm/useParams.js +15 -0
  215. package/dist/esm/useParams.js.map +1 -0
  216. package/dist/esm/useRouteContext.d.ts +13 -0
  217. package/dist/esm/useRouteContext.js +11 -0
  218. package/dist/esm/useRouteContext.js.map +1 -0
  219. package/dist/esm/useRouter.d.ts +4 -0
  220. package/dist/esm/useRouter.js +12 -0
  221. package/dist/esm/useRouter.js.map +1 -0
  222. package/dist/esm/useRouterState.d.ts +8 -0
  223. package/dist/esm/useRouterState.js +16 -0
  224. package/dist/esm/useRouterState.js.map +1 -0
  225. package/dist/esm/useSearch.d.ts +15 -0
  226. package/dist/esm/useSearch.js +15 -0
  227. package/dist/esm/useSearch.js.map +1 -0
  228. package/dist/esm/utils.d.ts +44 -0
  229. package/dist/esm/utils.js +41 -0
  230. package/dist/esm/utils.js.map +1 -0
  231. package/package.json +75 -0
  232. package/src/Asset.tsx +23 -0
  233. package/src/CatchBoundary.tsx +78 -0
  234. package/src/HeadContent.tsx +146 -0
  235. package/src/Match.tsx +356 -0
  236. package/src/Matches.tsx +348 -0
  237. package/src/RouterProvider.tsx +130 -0
  238. package/src/SafeFragment.tsx +3 -0
  239. package/src/ScriptOnce.tsx +30 -0
  240. package/src/Scripts.tsx +65 -0
  241. package/src/ScrollRestoration.tsx +65 -0
  242. package/src/Transitioner.tsx +152 -0
  243. package/src/awaited.tsx +49 -0
  244. package/src/fileRoute.ts +274 -0
  245. package/src/history.ts +9 -0
  246. package/src/index.tsx +359 -0
  247. package/src/lazyRouteComponent.tsx +114 -0
  248. package/src/link.tsx +1002 -0
  249. package/src/matchContext.tsx +10 -0
  250. package/src/not-found.tsx +69 -0
  251. package/src/redirects.ts +71 -0
  252. package/src/renderRouteNotFound.tsx +27 -0
  253. package/src/route.ts +1477 -0
  254. package/src/routeInfo.ts +239 -0
  255. package/src/router.ts +3066 -0
  256. package/src/routerContext.tsx +26 -0
  257. package/src/scroll-restoration.tsx +337 -0
  258. package/src/typePrimitives.ts +195 -0
  259. package/src/useBlocker.tsx +298 -0
  260. package/src/useCanGoBack.ts +5 -0
  261. package/src/useLoaderData.tsx +64 -0
  262. package/src/useLoaderDeps.tsx +52 -0
  263. package/src/useLocation.tsx +26 -0
  264. package/src/useMatch.tsx +96 -0
  265. package/src/useNavigate.tsx +61 -0
  266. package/src/useParams.tsx +83 -0
  267. package/src/useRouteContext.ts +62 -0
  268. package/src/useRouter.tsx +15 -0
  269. package/src/useRouterState.tsx +32 -0
  270. package/src/useSearch.tsx +84 -0
  271. package/src/utils.ts +96 -0
@@ -0,0 +1,274 @@
1
+ import warning from 'tiny-warning'
2
+ import { createRoute } from './route'
3
+
4
+ import { useMatch } from './useMatch'
5
+ import { useLoaderDeps } from './useLoaderDeps'
6
+ import { useLoaderData } from './useLoaderData'
7
+ import { useSearch } from './useSearch'
8
+ import { useParams } from './useParams'
9
+ import { useNavigate } from './useNavigate'
10
+ import type { UseParamsRoute } from './useParams'
11
+ import type { UseMatchRoute } from './useMatch'
12
+ import type { UseSearchRoute } from './useSearch'
13
+ import type {
14
+ AnyContext,
15
+ AnyPathParams,
16
+ AnyValidator,
17
+ Constrain,
18
+ ResolveParams,
19
+ } from '@tanstack/router-core'
20
+
21
+ import type {
22
+ AnyRoute,
23
+ FileBaseRouteOptions,
24
+ RootRoute,
25
+ Route,
26
+ RouteConstraints,
27
+ RouteLoaderFn,
28
+ UpdatableRouteOptions,
29
+ } from './route'
30
+ import type { RegisteredRouter } from './router'
31
+ import type { RouteById, RouteIds } from './routeInfo'
32
+ import type { UseLoaderDepsRoute } from './useLoaderDeps'
33
+ import type { UseLoaderDataRoute } from './useLoaderData'
34
+ import type { UseRouteContextRoute } from './useRouteContext'
35
+
36
+ export interface FileRoutesByPath {
37
+ // '/': {
38
+ // parentRoute: typeof rootRoute
39
+ // }
40
+ }
41
+
42
+ export interface FileRouteTypes {
43
+ fileRoutesByFullPath: any
44
+ fullPaths: any
45
+ to: any
46
+ fileRoutesByTo: any
47
+ id: any
48
+ fileRoutesById: any
49
+ }
50
+
51
+ export type InferFileRouteTypes<TRouteTree extends AnyRoute> =
52
+ TRouteTree extends RootRoute<
53
+ any,
54
+ any,
55
+ any,
56
+ any,
57
+ any,
58
+ any,
59
+ any,
60
+ infer TFileRouteTypes extends FileRouteTypes
61
+ >
62
+ ? TFileRouteTypes
63
+ : never
64
+
65
+ export function createFileRoute<
66
+ TFilePath extends keyof FileRoutesByPath,
67
+ TParentRoute extends AnyRoute = FileRoutesByPath[TFilePath]['parentRoute'],
68
+ TId extends RouteConstraints['TId'] = FileRoutesByPath[TFilePath]['id'],
69
+ TPath extends RouteConstraints['TPath'] = FileRoutesByPath[TFilePath]['path'],
70
+ TFullPath extends
71
+ RouteConstraints['TFullPath'] = FileRoutesByPath[TFilePath]['fullPath'],
72
+ >(
73
+ path: TFilePath,
74
+ ): FileRoute<TFilePath, TParentRoute, TId, TPath, TFullPath>['createRoute'] {
75
+ return new FileRoute<TFilePath, TParentRoute, TId, TPath, TFullPath>(path, {
76
+ silent: true,
77
+ }).createRoute
78
+ }
79
+
80
+ /**
81
+ @deprecated It's no longer recommended to use the `FileRoute` class directly.
82
+ Instead, use `createFileRoute('/path/to/file')(options)` to create a file route.
83
+ */
84
+ export class FileRoute<
85
+ TFilePath extends keyof FileRoutesByPath,
86
+ TParentRoute extends AnyRoute = FileRoutesByPath[TFilePath]['parentRoute'],
87
+ TId extends RouteConstraints['TId'] = FileRoutesByPath[TFilePath]['id'],
88
+ TPath extends RouteConstraints['TPath'] = FileRoutesByPath[TFilePath]['path'],
89
+ TFullPath extends
90
+ RouteConstraints['TFullPath'] = FileRoutesByPath[TFilePath]['fullPath'],
91
+ > {
92
+ silent?: boolean
93
+
94
+ constructor(
95
+ public path: TFilePath,
96
+ _opts?: { silent: boolean },
97
+ ) {
98
+ this.silent = _opts?.silent
99
+ }
100
+
101
+ createRoute = <
102
+ TSearchValidator = undefined,
103
+ TParams = ResolveParams<TPath>,
104
+ TRouteContextFn = AnyContext,
105
+ TBeforeLoadFn = AnyContext,
106
+ TLoaderDeps extends Record<string, any> = {},
107
+ TLoaderFn = undefined,
108
+ TChildren = unknown,
109
+ >(
110
+ options?: FileBaseRouteOptions<
111
+ TParentRoute,
112
+ TId,
113
+ TPath,
114
+ TSearchValidator,
115
+ TParams,
116
+ TLoaderDeps,
117
+ TLoaderFn,
118
+ AnyContext,
119
+ TRouteContextFn,
120
+ TBeforeLoadFn
121
+ > &
122
+ UpdatableRouteOptions<
123
+ TParentRoute,
124
+ TId,
125
+ TFullPath,
126
+ TParams,
127
+ TSearchValidator,
128
+ TLoaderFn,
129
+ TLoaderDeps,
130
+ AnyContext,
131
+ TRouteContextFn,
132
+ TBeforeLoadFn
133
+ >,
134
+ ): Route<
135
+ TParentRoute,
136
+ TPath,
137
+ TFullPath,
138
+ TFilePath,
139
+ TId,
140
+ TSearchValidator,
141
+ TParams,
142
+ AnyContext,
143
+ TRouteContextFn,
144
+ TBeforeLoadFn,
145
+ TLoaderDeps,
146
+ TLoaderFn,
147
+ TChildren
148
+ > => {
149
+ warning(
150
+ this.silent,
151
+ 'FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.',
152
+ )
153
+ const route = createRoute(options as any)
154
+ ;(route as any).isRoot = false
155
+ return route as any
156
+ }
157
+ }
158
+
159
+ /**
160
+ @deprecated It's recommended not to split loaders into separate files.
161
+ Instead, place the loader function in the the main route file, inside the
162
+ `createFileRoute('/path/to/file)(options)` options.
163
+ */
164
+ export function FileRouteLoader<
165
+ TFilePath extends keyof FileRoutesByPath,
166
+ TRoute extends FileRoutesByPath[TFilePath]['preLoaderRoute'],
167
+ >(
168
+ _path: TFilePath,
169
+ ): <TLoaderFn>(
170
+ loaderFn: Constrain<
171
+ TLoaderFn,
172
+ RouteLoaderFn<
173
+ TRoute['parentRoute'],
174
+ TRoute['types']['id'],
175
+ TRoute['types']['params'],
176
+ TRoute['types']['loaderDeps'],
177
+ TRoute['types']['routerContext'],
178
+ TRoute['types']['routeContextFn'],
179
+ TRoute['types']['beforeLoadFn']
180
+ >
181
+ >,
182
+ ) => TLoaderFn {
183
+ warning(
184
+ false,
185
+ `FileRouteLoader is deprecated and will be removed in the next major version. Please place the loader function in the the main route file, inside the \`createFileRoute('/path/to/file')(options)\` options`,
186
+ )
187
+ return (loaderFn) => loaderFn as any
188
+ }
189
+
190
+ export type LazyRouteOptions = Pick<
191
+ UpdatableRouteOptions<
192
+ AnyRoute,
193
+ string,
194
+ string,
195
+ AnyPathParams,
196
+ AnyValidator,
197
+ {},
198
+ AnyContext,
199
+ AnyContext,
200
+ AnyContext,
201
+ AnyContext
202
+ >,
203
+ 'component' | 'errorComponent' | 'pendingComponent' | 'notFoundComponent'
204
+ >
205
+
206
+ export class LazyRoute<TRoute extends AnyRoute> {
207
+ options: {
208
+ id: string
209
+ } & LazyRouteOptions
210
+
211
+ constructor(
212
+ opts: {
213
+ id: string
214
+ } & LazyRouteOptions,
215
+ ) {
216
+ this.options = opts
217
+ }
218
+
219
+ useMatch: UseMatchRoute<TRoute['id']> = (opts) => {
220
+ return useMatch({
221
+ select: opts?.select,
222
+ from: this.options.id,
223
+ } as any) as any
224
+ }
225
+
226
+ useRouteContext: UseRouteContextRoute<TRoute['id']> = (opts) => {
227
+ return useMatch({
228
+ from: this.options.id,
229
+ select: (d: any) => (opts?.select ? opts.select(d.context) : d.context),
230
+ }) as any
231
+ }
232
+
233
+ useSearch: UseSearchRoute<TRoute['id']> = (opts) => {
234
+ return useSearch({
235
+ select: opts?.select,
236
+ from: this.options.id,
237
+ } as any) as any
238
+ }
239
+
240
+ useParams: UseParamsRoute<TRoute['id']> = (opts) => {
241
+ return useParams({
242
+ select: opts?.select,
243
+ from: this.options.id,
244
+ } as any) as any
245
+ }
246
+
247
+ useLoaderDeps: UseLoaderDepsRoute<TRoute['id']> = (opts) => {
248
+ return useLoaderDeps({ ...opts, from: this.options.id } as any)
249
+ }
250
+
251
+ useLoaderData: UseLoaderDataRoute<TRoute['id']> = (opts) => {
252
+ return useLoaderData({ ...opts, from: this.options.id } as any)
253
+ }
254
+
255
+ useNavigate = () => {
256
+ return useNavigate({ from: this.options.id })
257
+ }
258
+ }
259
+
260
+ export function createLazyRoute<
261
+ TId extends RouteIds<RegisteredRouter['routeTree']>,
262
+ TRoute extends AnyRoute = RouteById<RegisteredRouter['routeTree'], TId>,
263
+ >(id: TId) {
264
+ return (opts: LazyRouteOptions) => {
265
+ return new LazyRoute<TRoute>({ id: id as any, ...opts })
266
+ }
267
+ }
268
+
269
+ export function createLazyFileRoute<
270
+ TFilePath extends keyof FileRoutesByPath,
271
+ TRoute extends FileRoutesByPath[TFilePath]['preLoaderRoute'],
272
+ >(id: TFilePath) {
273
+ return (opts: LazyRouteOptions) => new LazyRoute<TRoute>({ id, ...opts })
274
+ }
package/src/history.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { HistoryLocation } from '@tanstack/history'
2
+
3
+ declare module '@tanstack/history' {
4
+ interface HistoryState {
5
+ __tempLocation?: HistoryLocation
6
+ __tempKey?: string
7
+ __hashScrollIntoViewOptions?: boolean | ScrollIntoViewOptions
8
+ }
9
+ }
package/src/index.tsx ADDED
@@ -0,0 +1,359 @@
1
+ export { default as invariant } from 'tiny-invariant'
2
+ export { default as warning } from 'tiny-warning'
3
+
4
+ export {
5
+ defer,
6
+ TSR_DEFERRED_PROMISE,
7
+ isMatch,
8
+ joinPaths,
9
+ cleanPath,
10
+ trimPathLeft,
11
+ trimPathRight,
12
+ trimPath,
13
+ resolvePath,
14
+ parsePathname,
15
+ interpolatePath,
16
+ matchPathname,
17
+ removeBasepath,
18
+ matchByPath,
19
+ encode,
20
+ decode,
21
+ rootRouteId,
22
+ defaultSerializeError,
23
+ defaultParseSearch,
24
+ defaultStringifySearch,
25
+ parseSearchWith,
26
+ stringifySearchWith,
27
+ escapeJSON, // SSR
28
+ pick,
29
+ functionalUpdate,
30
+ replaceEqualDeep,
31
+ isPlainObject,
32
+ isPlainArray,
33
+ deepEqual,
34
+ shallow,
35
+ createControlledPromise,
36
+ retainSearchParams,
37
+ stripSearchParams,
38
+ } from '@tanstack/router-core'
39
+
40
+ export type {
41
+ StartSerializer,
42
+ Serializable,
43
+ SerializerParse,
44
+ SerializerParseBy,
45
+ SerializerStringify,
46
+ SerializerStringifyBy,
47
+ DeferredPromiseState,
48
+ DeferredPromise,
49
+ ParsedLocation,
50
+ ParsePathParams,
51
+ RemoveTrailingSlashes,
52
+ RemoveLeadingSlashes,
53
+ ActiveOptions,
54
+ Segment,
55
+ ResolveRelativePath,
56
+ RootRouteId,
57
+ AnyPathParams,
58
+ ResolveParams,
59
+ SearchSchemaInput,
60
+ AnyContext,
61
+ RouteContext,
62
+ PreloadableObj,
63
+ RoutePathOptions,
64
+ StaticDataRouteOption,
65
+ RoutePathOptionsIntersection,
66
+ UpdatableStaticRouteOption,
67
+ MetaDescriptor,
68
+ RouteLinkEntry,
69
+ ParseParamsFn,
70
+ SearchFilter,
71
+ ResolveId,
72
+ InferFullSearchSchema,
73
+ InferFullSearchSchemaInput,
74
+ ErrorRouteProps,
75
+ ErrorComponentProps,
76
+ NotFoundRouteProps,
77
+ TrimPath,
78
+ TrimPathLeft,
79
+ TrimPathRight,
80
+ ParseSplatParams,
81
+ SplatParams,
82
+ StringifyParamsFn,
83
+ ParamsOptions,
84
+ InferAllParams,
85
+ InferAllContext,
86
+ LooseReturnType,
87
+ LooseAsyncReturnType,
88
+ ContextReturnType,
89
+ ContextAsyncReturnType,
90
+ ResolveLoaderData,
91
+ ResolveRouteContext,
92
+ SearchSerializer,
93
+ SearchParser,
94
+ TrailingSlashOption,
95
+ ExtractedEntry,
96
+ ExtractedStream,
97
+ ExtractedPromise,
98
+ StreamState,
99
+ Manifest,
100
+ RouterManagedTag,
101
+ ControlledPromise,
102
+ Constrain,
103
+ Expand,
104
+ MergeAll,
105
+ Assign,
106
+ IntersectAssign,
107
+ ResolveValidatorInput,
108
+ ResolveValidatorOutput,
109
+ AnyValidator,
110
+ DefaultValidator,
111
+ ValidatorFn,
112
+ AnySchema,
113
+ AnyValidatorAdapter,
114
+ AnyValidatorFn,
115
+ AnyValidatorObj,
116
+ ResolveValidatorInputFn,
117
+ ResolveValidatorOutputFn,
118
+ ResolveSearchValidatorInput,
119
+ ResolveSearchValidatorInputFn,
120
+ Validator,
121
+ ValidatorAdapter,
122
+ ValidatorObj,
123
+ } from '@tanstack/router-core'
124
+
125
+ export {
126
+ createHistory,
127
+ createBrowserHistory,
128
+ createHashHistory,
129
+ createMemoryHistory,
130
+ } from '@tanstack/history'
131
+
132
+ export type {
133
+ BlockerFn,
134
+ HistoryLocation,
135
+ RouterHistory,
136
+ ParsedPath,
137
+ HistoryState,
138
+ } from '@tanstack/history'
139
+
140
+ export { useAwaited, Await } from './awaited'
141
+ export type { AwaitOptions } from './awaited'
142
+
143
+ export { CatchBoundary, ErrorComponent } from './CatchBoundary'
144
+
145
+ export {
146
+ FileRoute,
147
+ createFileRoute,
148
+ FileRouteLoader,
149
+ LazyRoute,
150
+ createLazyRoute,
151
+ createLazyFileRoute,
152
+ } from './fileRoute'
153
+ export type {
154
+ FileRoutesByPath,
155
+ FileRouteTypes,
156
+ LazyRouteOptions,
157
+ } from './fileRoute'
158
+
159
+ export * from './history'
160
+
161
+ export { lazyRouteComponent } from './lazyRouteComponent'
162
+
163
+ export { useLinkProps, createLink, Link, linkOptions } from './link'
164
+ export type {
165
+ InferDescendantToPaths,
166
+ RelativeToPath,
167
+ RelativeToParentPath,
168
+ RelativeToCurrentPath,
169
+ AbsoluteToPath,
170
+ RelativeToPathAutoComplete,
171
+ NavigateOptions,
172
+ ToOptions,
173
+ ToMaskOptions,
174
+ ToSubOptions,
175
+ ResolveRoute,
176
+ SearchParamOptions,
177
+ PathParamOptions,
178
+ ToPathOption,
179
+ LinkOptions,
180
+ UseLinkPropsOptions,
181
+ ActiveLinkOptions,
182
+ LinkProps,
183
+ LinkComponent,
184
+ LinkComponentProps,
185
+ CreateLinkProps,
186
+ MakeOptionalPathParams,
187
+ } from './link'
188
+
189
+ export {
190
+ Matches,
191
+ useMatchRoute,
192
+ MatchRoute,
193
+ useMatches,
194
+ useParentMatches,
195
+ useChildMatches,
196
+ } from './Matches'
197
+
198
+ export type {
199
+ RouteMatch,
200
+ AnyRouteMatch,
201
+ MatchRouteOptions,
202
+ UseMatchRouteOptions,
203
+ MakeMatchRouteOptions,
204
+ MakeRouteMatch,
205
+ MakeRouteMatchUnion,
206
+ } from './Matches'
207
+
208
+ export { matchContext } from './matchContext'
209
+ export { Match, Outlet } from './Match'
210
+
211
+ export { useMatch } from './useMatch'
212
+ export { useLoaderDeps } from './useLoaderDeps'
213
+ export { useLoaderData } from './useLoaderData'
214
+
215
+ export { redirect, isRedirect } from './redirects'
216
+ export type { AnyRedirect, Redirect, ResolvedRedirect } from './redirects'
217
+
218
+ export {
219
+ RouteApi,
220
+ getRouteApi,
221
+ Route,
222
+ createRoute,
223
+ RootRoute,
224
+ rootRouteWithContext,
225
+ createRootRoute,
226
+ createRootRouteWithContext,
227
+ createRouteMask,
228
+ NotFoundRoute,
229
+ } from './route'
230
+ export type {
231
+ RouteOptions,
232
+ FileBaseRouteOptions,
233
+ BaseRouteOptions,
234
+ UpdatableRouteOptions,
235
+ RouteLoaderFn,
236
+ LoaderFnContext,
237
+ ResolveFullSearchSchema,
238
+ ResolveFullSearchSchemaInput,
239
+ AnyRoute,
240
+ RouteConstraints,
241
+ AnyRootRoute,
242
+ ResolveFullPath,
243
+ RouteMask,
244
+ SolidNode,
245
+ SyncRouteComponent,
246
+ AsyncRouteComponent,
247
+ RouteComponent,
248
+ ErrorRouteComponent,
249
+ NotFoundRouteComponent,
250
+ RootRouteOptions,
251
+ AnyRouteWithContext,
252
+ FullSearchSchemaOption,
253
+ RouteContextFn,
254
+ RouteContextOptions,
255
+ BeforeLoadFn,
256
+ BeforeLoadContextOptions,
257
+ ContextOptions,
258
+ RouteContextParameter,
259
+ BeforeLoadContextParameter,
260
+ ResolveAllContext,
261
+ ResolveAllParamsFromParent,
262
+ MakeRemountDepsOptionsUnion,
263
+ RemountDepsOptions,
264
+ } from './route'
265
+
266
+ export type {
267
+ ParseRoute,
268
+ RoutesById,
269
+ RouteById,
270
+ RouteIds,
271
+ RoutesByPath,
272
+ RouteByPath,
273
+ RoutePaths,
274
+ FullSearchSchema,
275
+ AllParams,
276
+ AllLoaderData,
277
+ FullSearchSchemaInput,
278
+ AllContext,
279
+ } from './routeInfo'
280
+
281
+ export {
282
+ componentTypes,
283
+ createRouter,
284
+ Router,
285
+ lazyFn,
286
+ SearchParamError,
287
+ PathParamError,
288
+ getInitialRouterState,
289
+ } from './router'
290
+
291
+ export type {
292
+ Register,
293
+ AnyRouter,
294
+ RegisteredRouter,
295
+ RouterContextOptions,
296
+ RouterOptions,
297
+ RouterErrorSerializer,
298
+ RouterState,
299
+ ListenerFn,
300
+ BuildNextOptions,
301
+ RouterConstructorOptions,
302
+ RouterEvents,
303
+ RouterEvent,
304
+ RouterListener,
305
+ AnyRouterWithContext,
306
+ ControllablePromise,
307
+ InjectedHtmlEntry,
308
+ } from './router'
309
+
310
+ export { RouterProvider, RouterContextProvider } from './RouterProvider'
311
+ export type {
312
+ RouterProps,
313
+ CommitLocationOptions,
314
+ MatchLocation,
315
+ NavigateFn,
316
+ BuildLocationFn,
317
+ } from './RouterProvider'
318
+
319
+ export {
320
+ useElementScrollRestoration,
321
+ ScrollRestoration,
322
+ } from './ScrollRestoration'
323
+
324
+ export type { UseBlockerOpts, ShouldBlockFn } from './useBlocker'
325
+ export { useBlocker, Block } from './useBlocker'
326
+
327
+ export { useNavigate, Navigate } from './useNavigate'
328
+ export type { UseNavigateResult } from './useNavigate'
329
+
330
+ export { useParams } from './useParams'
331
+ export { useSearch } from './useSearch'
332
+
333
+ export {
334
+ getRouterContext, // SSR
335
+ } from './routerContext'
336
+
337
+ export { useRouteContext } from './useRouteContext'
338
+ export { useRouter } from './useRouter'
339
+ export { useRouterState } from './useRouterState'
340
+ export { useLocation } from './useLocation'
341
+ export { useCanGoBack } from './useCanGoBack'
342
+
343
+ export { useLayoutEffect } from './utils'
344
+
345
+ export {
346
+ notFound,
347
+ isNotFound,
348
+ CatchNotFound,
349
+ DefaultGlobalNotFound,
350
+ } from './not-found'
351
+ export type { NotFoundError } from './not-found'
352
+
353
+ export * from './typePrimitives'
354
+
355
+ export { ScriptOnce } from './ScriptOnce'
356
+
357
+ export { Asset } from './Asset'
358
+ export { HeadContent } from './HeadContent'
359
+ export { Scripts } from './Scripts'