@tanstack/solid-router 1.111.4 → 1.111.7

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 (97) hide show
  1. package/dist/cjs/Matches.cjs.map +1 -1
  2. package/dist/cjs/Matches.d.cts +8 -44
  3. package/dist/cjs/fileRoute.cjs +4 -1
  4. package/dist/cjs/fileRoute.cjs.map +1 -1
  5. package/dist/cjs/fileRoute.d.cts +5 -5
  6. package/dist/cjs/index.d.cts +3 -5
  7. package/dist/cjs/redirects.cjs.map +1 -1
  8. package/dist/cjs/redirects.d.cts +2 -16
  9. package/dist/cjs/route.cjs.map +1 -1
  10. package/dist/cjs/route.d.cts +8 -109
  11. package/dist/cjs/router.cjs.map +1 -1
  12. package/dist/cjs/router.d.cts +4 -5
  13. package/dist/cjs/typePrimitives.d.cts +3 -4
  14. package/dist/cjs/useLoaderData.cjs.map +1 -1
  15. package/dist/cjs/useLoaderData.d.cts +2 -4
  16. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  17. package/dist/cjs/useLoaderDeps.d.cts +2 -4
  18. package/dist/cjs/useMatch.cjs.map +1 -1
  19. package/dist/cjs/useMatch.d.cts +1 -2
  20. package/dist/cjs/useNavigate.cjs.map +1 -1
  21. package/dist/cjs/useNavigate.d.cts +1 -2
  22. package/dist/cjs/useParams.cjs.map +1 -1
  23. package/dist/cjs/useParams.d.cts +2 -4
  24. package/dist/cjs/useRouteContext.cjs.map +1 -1
  25. package/dist/cjs/useRouteContext.d.cts +1 -8
  26. package/dist/cjs/useSearch.cjs.map +1 -1
  27. package/dist/cjs/useSearch.d.cts +2 -4
  28. package/dist/esm/Matches.d.ts +8 -44
  29. package/dist/esm/Matches.js.map +1 -1
  30. package/dist/esm/fileRoute.d.ts +5 -5
  31. package/dist/esm/fileRoute.js +4 -1
  32. package/dist/esm/fileRoute.js.map +1 -1
  33. package/dist/esm/index.d.ts +3 -5
  34. package/dist/esm/redirects.d.ts +2 -16
  35. package/dist/esm/redirects.js.map +1 -1
  36. package/dist/esm/route.d.ts +8 -109
  37. package/dist/esm/route.js.map +1 -1
  38. package/dist/esm/router.d.ts +4 -5
  39. package/dist/esm/router.js.map +1 -1
  40. package/dist/esm/typePrimitives.d.ts +3 -4
  41. package/dist/esm/useLoaderData.d.ts +2 -4
  42. package/dist/esm/useLoaderData.js.map +1 -1
  43. package/dist/esm/useLoaderDeps.d.ts +2 -4
  44. package/dist/esm/useLoaderDeps.js.map +1 -1
  45. package/dist/esm/useMatch.d.ts +1 -2
  46. package/dist/esm/useMatch.js.map +1 -1
  47. package/dist/esm/useNavigate.d.ts +1 -2
  48. package/dist/esm/useNavigate.js.map +1 -1
  49. package/dist/esm/useParams.d.ts +2 -4
  50. package/dist/esm/useParams.js.map +1 -1
  51. package/dist/esm/useRouteContext.d.ts +1 -8
  52. package/dist/esm/useRouteContext.js.map +1 -1
  53. package/dist/esm/useSearch.d.ts +2 -4
  54. package/dist/esm/useSearch.js.map +1 -1
  55. package/dist/source/Matches.d.ts +8 -44
  56. package/dist/source/Matches.jsx.map +1 -1
  57. package/dist/source/fileRoute.d.ts +5 -5
  58. package/dist/source/fileRoute.js +4 -1
  59. package/dist/source/fileRoute.js.map +1 -1
  60. package/dist/source/index.d.ts +3 -5
  61. package/dist/source/index.jsx.map +1 -1
  62. package/dist/source/redirects.d.ts +2 -16
  63. package/dist/source/redirects.js.map +1 -1
  64. package/dist/source/route.d.ts +8 -109
  65. package/dist/source/route.js.map +1 -1
  66. package/dist/source/router.d.ts +4 -5
  67. package/dist/source/router.js.map +1 -1
  68. package/dist/source/typePrimitives.d.ts +3 -4
  69. package/dist/source/useLoaderData.d.ts +2 -4
  70. package/dist/source/useLoaderData.jsx.map +1 -1
  71. package/dist/source/useLoaderDeps.d.ts +2 -4
  72. package/dist/source/useLoaderDeps.jsx.map +1 -1
  73. package/dist/source/useMatch.d.ts +1 -2
  74. package/dist/source/useMatch.jsx.map +1 -1
  75. package/dist/source/useNavigate.d.ts +1 -2
  76. package/dist/source/useNavigate.jsx.map +1 -1
  77. package/dist/source/useParams.d.ts +2 -4
  78. package/dist/source/useParams.jsx.map +1 -1
  79. package/dist/source/useRouteContext.d.ts +1 -8
  80. package/dist/source/useRouteContext.js.map +1 -1
  81. package/dist/source/useSearch.d.ts +2 -4
  82. package/dist/source/useSearch.jsx.map +1 -1
  83. package/package.json +2 -2
  84. package/src/Matches.tsx +8 -105
  85. package/src/fileRoute.ts +16 -14
  86. package/src/index.tsx +16 -18
  87. package/src/redirects.ts +4 -36
  88. package/src/route.ts +11 -532
  89. package/src/router.ts +9 -10
  90. package/src/typePrimitives.ts +5 -3
  91. package/src/useLoaderData.tsx +5 -19
  92. package/src/useLoaderDeps.tsx +5 -11
  93. package/src/useMatch.tsx +5 -2
  94. package/src/useNavigate.tsx +5 -12
  95. package/src/useParams.tsx +3 -20
  96. package/src/useRouteContext.ts +5 -36
  97. package/src/useSearch.tsx +3 -21
@@ -2,13 +2,11 @@ import type { ThrowConstraint } from './useMatch';
2
2
  import type { Accessor } from 'solid-js';
3
3
  import type { AnyRouter, RegisteredRouter } from './router';
4
4
  import type { StrictOrFrom } from './utils';
5
- import type { AllParams, Expand, RouteById, ThrowOrOptional } from '@tanstack/router-core';
5
+ import type { ResolveUseParams, ThrowOrOptional, UseParamsResult } from '@tanstack/router-core';
6
6
  export interface UseParamsBaseOptions<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TThrow extends boolean, TSelected> {
7
- select?: (params: ResolveParams<TRouter, TFrom, TStrict>) => TSelected;
7
+ select?: (params: ResolveUseParams<TRouter, TFrom, TStrict>) => TSelected;
8
8
  shouldThrow?: TThrow;
9
9
  }
10
10
  export type UseParamsOptions<TRouter extends AnyRouter, TFrom extends string | undefined, TStrict extends boolean, TThrow extends boolean, TSelected> = StrictOrFrom<TRouter, TFrom, TStrict> & UseParamsBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>;
11
- export type ResolveParams<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? AllParams<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allParams']>;
12
- export type UseParamsResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveParams<TRouter, TFrom, TStrict> : TSelected;
13
11
  export type UseParamsRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseParamsBaseOptions<TRouter, TFrom, true, true, TSelected>) => Accessor<UseParamsResult<TRouter, TFrom, true, TSelected>>;
14
12
  export declare function useParams<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TThrow extends boolean = true, TSelected = unknown>(opts: UseParamsOptions<TRouter, TFrom, TStrict, ThrowConstraint<TStrict, TThrow>, TSelected>): Accessor<ThrowOrOptional<UseParamsResult<TRouter, TFrom, TStrict, TSelected>, TThrow>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useParams.jsx","sourceRoot":"","sources":["../../src/useParams.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA6DrC,MAAM,UAAU,SAAS,CAOvB,IAMC;IAID,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAK;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAC/D,CAAC;KACK,CAAQ,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"useParams.jsx","sourceRoot":"","sources":["../../src/useParams.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA4CrC,MAAM,UAAU,SAAS,CAOvB,IAMC;IAID,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAK;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAC/D,CAAC;KACK,CAAQ,CAAA;AAClB,CAAC"}
@@ -1,12 +1,5 @@
1
1
  import type { Accessor } from 'solid-js';
2
2
  import type { AnyRouter, RegisteredRouter } from './router';
3
- import type { StrictOrFrom } from './utils';
4
- import type { AllContext, Expand, RouteById } from '@tanstack/router-core';
5
- export interface UseRouteContextBaseOptions<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> {
6
- select?: (search: ResolveRouteContext<TRouter, TFrom, TStrict>) => TSelected;
7
- }
8
- export type UseRouteContextOptions<TRouter extends AnyRouter, TFrom extends string | undefined, TStrict extends boolean, TSelected> = StrictOrFrom<TRouter, TFrom, TStrict> & UseRouteContextBaseOptions<TRouter, TFrom, TStrict, TSelected>;
9
- export type ResolveRouteContext<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? AllContext<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>;
10
- export type UseRouteContextResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveRouteContext<TRouter, TFrom, TStrict> : TSelected;
3
+ import type { UseRouteContextBaseOptions, UseRouteContextOptions, UseRouteContextResult } from '@tanstack/router-core';
11
4
  export type UseRouteContextRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected>) => Accessor<UseRouteContextResult<TRouter, TFrom, true, TSelected>>;
12
5
  export declare function useRouteContext<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown>(opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>): Accessor<UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useRouteContext.js","sourceRoot":"","sources":["../../src/useRouteContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAgDrC,MAAM,UAAU,eAAe,CAM7B,IAAgE;IAEhE,OAAO,QAAQ,CAAC;QACd,GAAI,IAAY;QAChB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;KAC3D,CAAQ,CAAA;AACX,CAAC"}
1
+ {"version":3,"file":"useRouteContext.js","sourceRoot":"","sources":["../../src/useRouteContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAiBrC,MAAM,UAAU,eAAe,CAM7B,IAAgE;IAEhE,OAAO,QAAQ,CAAC;QACd,GAAI,IAAY;QAChB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;KAC3D,CAAQ,CAAA;AACX,CAAC"}
@@ -2,13 +2,11 @@ import type { ThrowConstraint } from './useMatch';
2
2
  import type { Accessor } from 'solid-js';
3
3
  import type { AnyRouter, RegisteredRouter } from './router';
4
4
  import type { StrictOrFrom } from './utils';
5
- import type { Expand, FullSearchSchema, RouteById, ThrowOrOptional } from '@tanstack/router-core';
5
+ import type { ResolveUseSearch, ThrowOrOptional, UseSearchResult } from '@tanstack/router-core';
6
6
  export interface UseSearchBaseOptions<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TThrow extends boolean, TSelected> {
7
- select?: (state: ResolveSearch<TRouter, TFrom, TStrict>) => TSelected;
7
+ select?: (state: ResolveUseSearch<TRouter, TFrom, TStrict>) => TSelected;
8
8
  shouldThrow?: TThrow;
9
9
  }
10
10
  export type UseSearchOptions<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TThrow extends boolean, TSelected> = StrictOrFrom<TRouter, TFrom, TStrict> & UseSearchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>;
11
- export type UseSearchResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveSearch<TRouter, TFrom, TStrict> : TSelected;
12
- export type ResolveSearch<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? FullSearchSchema<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['fullSearchSchema']>;
13
11
  export type UseSearchRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseSearchBaseOptions<TRouter, TFrom, true, true, TSelected>) => Accessor<UseSearchResult<TRouter, TFrom, true, TSelected>>;
14
12
  export declare function useSearch<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TThrow extends boolean = true, TSelected = unknown>(opts: UseSearchOptions<TRouter, TFrom, TStrict, ThrowConstraint<TStrict, TThrow>, TSelected>): Accessor<ThrowOrOptional<UseSearchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useSearch.jsx","sourceRoot":"","sources":["../../src/useSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA8DrC,MAAM,UAAU,SAAS,CAOvB,IAMC;IAID,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAK;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAC/D,CAAC;KACF,CAAQ,CAAA;AACX,CAAC"}
1
+ {"version":3,"file":"useSearch.jsx","sourceRoot":"","sources":["../../src/useSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA4CrC,MAAM,UAAU,SAAS,CAOvB,IAMC;IAID,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAK;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAC/D,CAAC;KACF,CAAQ,CAAA;AACX,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/solid-router",
3
- "version": "1.111.4",
3
+ "version": "1.111.7",
4
4
  "description": "Modern and scalable routing for Solid applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -60,7 +60,7 @@
60
60
  "tiny-invariant": "^1.3.3",
61
61
  "tiny-warning": "^1.0.3",
62
62
  "@tanstack/history": "1.99.13",
63
- "@tanstack/router-core": "1.111.3"
63
+ "@tanstack/router-core": "1.111.7"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@solidjs/testing-library": "^0.8.10",
package/src/Matches.tsx CHANGED
@@ -7,111 +7,29 @@ import { Transitioner } from './Transitioner'
7
7
  import { matchContext } from './matchContext'
8
8
  import { Match } from './Match'
9
9
  import { SafeFragment } from './SafeFragment'
10
- import type { AnyRoute } from './route'
11
10
  import type {
12
- AllContext,
13
- AllLoaderData,
14
- AllParams,
15
- ControlledPromise,
16
11
  DeepPartial,
17
- FullSearchSchema,
18
12
  MakeOptionalPathParams,
19
13
  MakeOptionalSearchParams,
14
+ MakeRouteMatchUnion,
20
15
  MaskOptions,
21
16
  NoInfer,
22
- ParseRoute,
23
17
  ResolveRelativePath,
24
18
  ResolveRoute,
25
- RouteById,
26
19
  RouteByPath,
27
- RouteIds,
28
- StaticDataRouteOption,
29
20
  ToSubOptionsProps,
30
21
  } from '@tanstack/router-core'
31
22
  import type { AnyRouter, RegisteredRouter, RouterState } from './router'
32
23
 
33
- export type MakeRouteMatchFromRoute<TRoute extends AnyRoute> = RouteMatch<
34
- TRoute['types']['id'],
35
- TRoute['types']['fullPath'],
36
- TRoute['types']['allParams'],
37
- TRoute['types']['fullSearchSchema'],
38
- TRoute['types']['loaderData'],
39
- TRoute['types']['allContext'],
40
- TRoute['types']['loaderDeps']
41
- >
42
-
43
- export interface RouteMatch<
44
- out TRouteId,
45
- out TFullPath,
46
- out TAllParams,
47
- out TFullSearchSchema,
48
- out TLoaderData,
49
- out TAllContext,
50
- out TLoaderDeps,
51
- > {
52
- id: string
53
- routeId: TRouteId
54
- fullPath: TFullPath
55
- index: number
56
- pathname: string
57
- params: TAllParams
58
- _strictParams: TAllParams
59
- status: 'pending' | 'success' | 'error' | 'redirected' | 'notFound'
60
- isFetching: false | 'beforeLoad' | 'loader'
61
- error: unknown
62
- paramsError: unknown
63
- searchError: unknown
64
- updatedAt: number
65
- loadPromise?: ControlledPromise<void>
66
- beforeLoadPromise?: ControlledPromise<void>
67
- loaderPromise?: ControlledPromise<void>
68
- loaderData?: TLoaderData
69
- __routeContext: Record<string, unknown>
70
- __beforeLoadContext: Record<string, unknown>
71
- context: TAllContext
72
- search: TFullSearchSchema
73
- _strictSearch: TFullSearchSchema
74
- fetchCount: number
75
- abortController: AbortController
76
- cause: 'preload' | 'enter' | 'stay'
77
- loaderDeps: TLoaderDeps
78
- preload: boolean
79
- invalid: boolean
80
- meta?: Array<Solid.JSX.IntrinsicElements['meta'] | undefined>
81
- links?: Array<Solid.JSX.IntrinsicElements['link'] | undefined>
82
- scripts?: Array<Solid.JSX.IntrinsicElements['script'] | undefined>
83
- headScripts?: Array<Solid.JSX.IntrinsicElements['script'] | undefined>
84
- headers?: Record<string, string>
85
- globalNotFound?: boolean
86
- staticData: StaticDataRouteOption
87
- minPendingPromise?: ControlledPromise<void>
88
- pendingTimeout?: ReturnType<typeof setTimeout>
24
+ declare module '@tanstack/router-core' {
25
+ export interface RouteMatchExtensions {
26
+ meta?: Array<Solid.JSX.IntrinsicElements['meta'] | undefined>
27
+ links?: Array<Solid.JSX.IntrinsicElements['link'] | undefined>
28
+ scripts?: Array<Solid.JSX.IntrinsicElements['script'] | undefined>
29
+ headScripts?: Array<Solid.JSX.IntrinsicElements['script'] | undefined>
30
+ }
89
31
  }
90
32
 
91
- export type MakeRouteMatch<
92
- TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],
93
- TRouteId = RouteIds<TRouteTree>,
94
- TStrict extends boolean = true,
95
- > = RouteMatch<
96
- TRouteId,
97
- RouteById<TRouteTree, TRouteId>['types']['fullPath'],
98
- TStrict extends false
99
- ? AllParams<TRouteTree>
100
- : RouteById<TRouteTree, TRouteId>['types']['allParams'],
101
- TStrict extends false
102
- ? FullSearchSchema<TRouteTree>
103
- : RouteById<TRouteTree, TRouteId>['types']['fullSearchSchema'],
104
- TStrict extends false
105
- ? AllLoaderData<TRouteTree>
106
- : RouteById<TRouteTree, TRouteId>['types']['loaderData'],
107
- TStrict extends false
108
- ? AllContext<TRouteTree>
109
- : RouteById<TRouteTree, TRouteId>['types']['allContext'],
110
- RouteById<TRouteTree, TRouteId>['types']['loaderDeps']
111
- >
112
-
113
- export type AnyRouteMatch = RouteMatch<any, any, any, any, any, any, any>
114
-
115
33
  export function Matches() {
116
34
  const router = useRouter()
117
35
 
@@ -266,21 +184,6 @@ export function MatchRoute<
266
184
  )
267
185
  }
268
186
 
269
- export type MakeRouteMatchUnion<
270
- TRouter extends AnyRouter = RegisteredRouter,
271
- TRoute extends AnyRoute = ParseRoute<TRouter['routeTree']>,
272
- > = TRoute extends any
273
- ? RouteMatch<
274
- TRoute['id'],
275
- TRoute['fullPath'],
276
- TRoute['types']['allParams'],
277
- TRoute['types']['fullSearchSchema'],
278
- TRoute['types']['loaderData'],
279
- TRoute['types']['allContext'],
280
- TRoute['types']['loaderDeps']
281
- >
282
- : never
283
-
284
187
  export interface UseMatchesBaseOptions<TRouter extends AnyRouter, TSelected> {
285
188
  select?: (matches: Array<MakeRouteMatchUnion<TRouter>>) => TSelected
286
189
  }
package/src/fileRoute.ts CHANGED
@@ -12,23 +12,22 @@ import type { UseMatchRoute } from './useMatch'
12
12
  import type { UseSearchRoute } from './useSearch'
13
13
  import type {
14
14
  AnyContext,
15
+ AnyRoute as AnyCoreRoute,
15
16
  AnyPathParams,
17
+ AnyRouter,
16
18
  AnyValidator,
17
19
  Constrain,
20
+ ConstrainLiteral,
21
+ FileBaseRouteOptions,
18
22
  FileRoutesByPath,
19
23
  ResolveParams,
20
24
  RouteById,
21
25
  RouteIds,
22
- } from '@tanstack/router-core'
23
-
24
- import type {
25
- AnyRoute,
26
- FileBaseRouteOptions,
27
- Route,
28
- RouteConstraints,
29
26
  RouteLoaderFn,
30
27
  UpdatableRouteOptions,
31
- } from './route'
28
+ } from '@tanstack/router-core'
29
+
30
+ import type { AnyRoute, Route, RouteConstraints } from './route'
32
31
  import type { RegisteredRouter } from './router'
33
32
  import type { UseLoaderDepsRoute } from './useLoaderDeps'
34
33
  import type { UseLoaderDataRoute } from './useLoaderData'
@@ -175,7 +174,7 @@ export type LazyRouteOptions = Pick<
175
174
  'component' | 'errorComponent' | 'pendingComponent' | 'notFoundComponent'
176
175
  >
177
176
 
178
- export class LazyRoute<TRoute extends AnyRoute> {
177
+ export class LazyRoute<TRoute extends AnyCoreRoute> {
179
178
  options: {
180
179
  id: string
181
180
  } & LazyRouteOptions
@@ -230,14 +229,17 @@ export class LazyRoute<TRoute extends AnyRoute> {
230
229
  }
231
230
 
232
231
  export function createLazyRoute<
233
- TId extends RouteIds<RegisteredRouter['routeTree']>,
234
- TRoute extends AnyRoute = RouteById<RegisteredRouter['routeTree'], TId>,
235
- >(id: TId) {
232
+ TRouter extends AnyRouter = RegisteredRouter,
233
+ TId extends string = string,
234
+ TRoute extends AnyCoreRoute = RouteById<TRouter['routeTree'], TId>,
235
+ >(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {
236
236
  return (opts: LazyRouteOptions) => {
237
- return new LazyRoute<TRoute>({ id: id as any, ...opts })
237
+ return new LazyRoute<TRoute>({
238
+ id: id,
239
+ ...opts,
240
+ })
238
241
  }
239
242
  }
240
-
241
243
  export function createLazyFileRoute<
242
244
  TFilePath extends keyof FileRoutesByPath,
243
245
  TRoute extends FileRoutesByPath[TFilePath]['preLoaderRoute'],
package/src/index.tsx CHANGED
@@ -165,6 +165,22 @@ export type {
165
165
  RemountDepsOptions,
166
166
  FileRouteTypes,
167
167
  FileRoutesByPath,
168
+ UseNavigateResult,
169
+ AnyRedirect,
170
+ Redirect,
171
+ ResolvedRedirect,
172
+ RouteOptions,
173
+ FileBaseRouteOptions,
174
+ BaseRouteOptions,
175
+ UpdatableRouteOptions,
176
+ RouteLoaderFn,
177
+ LoaderFnContext,
178
+ RouteContextFn,
179
+ RouteContextOptions,
180
+ BeforeLoadFn,
181
+ BeforeLoadContextOptions,
182
+ ContextOptions,
183
+ RootRouteOptions,
168
184
  } from '@tanstack/router-core'
169
185
 
170
186
  export {
@@ -221,13 +237,9 @@ export {
221
237
  } from './Matches'
222
238
 
223
239
  export type {
224
- RouteMatch,
225
- AnyRouteMatch,
226
240
  MatchRouteOptions,
227
241
  UseMatchRouteOptions,
228
242
  MakeMatchRouteOptions,
229
- MakeRouteMatch,
230
- MakeRouteMatchUnion,
231
243
  } from './Matches'
232
244
 
233
245
  export { matchContext } from './matchContext'
@@ -238,7 +250,6 @@ export { useLoaderDeps } from './useLoaderDeps'
238
250
  export { useLoaderData } from './useLoaderData'
239
251
 
240
252
  export { redirect, isRedirect } from './redirects'
241
- export type { AnyRedirect, Redirect, ResolvedRedirect } from './redirects'
242
253
 
243
254
  export {
244
255
  RouteApi,
@@ -253,12 +264,6 @@ export {
253
264
  NotFoundRoute,
254
265
  } from './route'
255
266
  export type {
256
- RouteOptions,
257
- FileBaseRouteOptions,
258
- BaseRouteOptions,
259
- UpdatableRouteOptions,
260
- RouteLoaderFn,
261
- LoaderFnContext,
262
267
  AnyRoute,
263
268
  RouteConstraints,
264
269
  AnyRootRoute,
@@ -270,13 +275,7 @@ export type {
270
275
  RouteComponent,
271
276
  ErrorRouteComponent,
272
277
  NotFoundRouteComponent,
273
- RootRouteOptions,
274
278
  AnyRouteWithContext,
275
- RouteContextFn,
276
- RouteContextOptions,
277
- BeforeLoadFn,
278
- BeforeLoadContextOptions,
279
- ContextOptions,
280
279
  } from './route'
281
280
 
282
281
  export {
@@ -318,7 +317,6 @@ export type { UseBlockerOpts, ShouldBlockFn } from './useBlocker'
318
317
  export { useBlocker, Block } from './useBlocker'
319
318
 
320
319
  export { useNavigate, Navigate } from './useNavigate'
321
- export type { UseNavigateResult } from './useNavigate'
322
320
 
323
321
  export { useParams } from './useParams'
324
322
  export { useSearch } from './useSearch'
package/src/redirects.ts CHANGED
@@ -1,42 +1,10 @@
1
- import type { AnyRouter, RegisteredRouter } from './router'
1
+ import type { RegisteredRouter } from './router'
2
2
  import type {
3
- NavigateOptions,
4
- PickAsRequired,
5
- RoutePaths,
3
+ AnyRedirect,
4
+ Redirect,
5
+ ResolvedRedirect,
6
6
  } from '@tanstack/router-core'
7
7
 
8
- export type AnyRedirect = Redirect<any, any, any, any, any>
9
-
10
- export type Redirect<
11
- TRouter extends AnyRouter = RegisteredRouter,
12
- TFrom extends RoutePaths<TRouter['routeTree']> | string = '/',
13
- TTo extends string | undefined = '.',
14
- TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
15
- TMaskTo extends string = '.',
16
- > = {
17
- href?: string
18
- /**
19
- * @deprecated Use `statusCode` instead
20
- **/
21
- code?: number
22
- statusCode?: number
23
- throw?: any
24
- headers?: HeadersInit
25
- } & NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>
26
-
27
- export type ResolvedRedirect<
28
- TRouter extends AnyRouter = RegisteredRouter,
29
- TFrom extends RoutePaths<TRouter['routeTree']> = '/',
30
- TTo extends string = '',
31
- TMaskFrom extends RoutePaths<TRouter['routeTree']> = TFrom,
32
- TMaskTo extends string = '',
33
- > = PickAsRequired<
34
- Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
35
- 'code' | 'statusCode' | 'headers'
36
- > & {
37
- href: string
38
- }
39
-
40
8
  export function redirect<
41
9
  TRouter extends RegisteredRouter,
42
10
  const TTo extends string | undefined,