@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.
- package/dist/cjs/Matches.cjs.map +1 -1
- package/dist/cjs/Matches.d.cts +8 -44
- package/dist/cjs/fileRoute.cjs +4 -1
- package/dist/cjs/fileRoute.cjs.map +1 -1
- package/dist/cjs/fileRoute.d.cts +5 -5
- package/dist/cjs/index.d.cts +3 -5
- package/dist/cjs/redirects.cjs.map +1 -1
- package/dist/cjs/redirects.d.cts +2 -16
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/route.d.cts +8 -109
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/router.d.cts +4 -5
- package/dist/cjs/typePrimitives.d.cts +3 -4
- package/dist/cjs/useLoaderData.cjs.map +1 -1
- package/dist/cjs/useLoaderData.d.cts +2 -4
- package/dist/cjs/useLoaderDeps.cjs.map +1 -1
- package/dist/cjs/useLoaderDeps.d.cts +2 -4
- package/dist/cjs/useMatch.cjs.map +1 -1
- package/dist/cjs/useMatch.d.cts +1 -2
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useNavigate.d.cts +1 -2
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useParams.d.cts +2 -4
- package/dist/cjs/useRouteContext.cjs.map +1 -1
- package/dist/cjs/useRouteContext.d.cts +1 -8
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/useSearch.d.cts +2 -4
- package/dist/esm/Matches.d.ts +8 -44
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/fileRoute.d.ts +5 -5
- package/dist/esm/fileRoute.js +4 -1
- package/dist/esm/fileRoute.js.map +1 -1
- package/dist/esm/index.d.ts +3 -5
- package/dist/esm/redirects.d.ts +2 -16
- package/dist/esm/redirects.js.map +1 -1
- package/dist/esm/route.d.ts +8 -109
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/router.d.ts +4 -5
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/typePrimitives.d.ts +3 -4
- package/dist/esm/useLoaderData.d.ts +2 -4
- package/dist/esm/useLoaderData.js.map +1 -1
- package/dist/esm/useLoaderDeps.d.ts +2 -4
- package/dist/esm/useLoaderDeps.js.map +1 -1
- package/dist/esm/useMatch.d.ts +1 -2
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useNavigate.d.ts +1 -2
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useParams.d.ts +2 -4
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouteContext.d.ts +1 -8
- package/dist/esm/useRouteContext.js.map +1 -1
- package/dist/esm/useSearch.d.ts +2 -4
- package/dist/esm/useSearch.js.map +1 -1
- package/dist/source/Matches.d.ts +8 -44
- package/dist/source/Matches.jsx.map +1 -1
- package/dist/source/fileRoute.d.ts +5 -5
- package/dist/source/fileRoute.js +4 -1
- package/dist/source/fileRoute.js.map +1 -1
- package/dist/source/index.d.ts +3 -5
- package/dist/source/index.jsx.map +1 -1
- package/dist/source/redirects.d.ts +2 -16
- package/dist/source/redirects.js.map +1 -1
- package/dist/source/route.d.ts +8 -109
- package/dist/source/route.js.map +1 -1
- package/dist/source/router.d.ts +4 -5
- package/dist/source/router.js.map +1 -1
- package/dist/source/typePrimitives.d.ts +3 -4
- package/dist/source/useLoaderData.d.ts +2 -4
- package/dist/source/useLoaderData.jsx.map +1 -1
- package/dist/source/useLoaderDeps.d.ts +2 -4
- package/dist/source/useLoaderDeps.jsx.map +1 -1
- package/dist/source/useMatch.d.ts +1 -2
- package/dist/source/useMatch.jsx.map +1 -1
- package/dist/source/useNavigate.d.ts +1 -2
- package/dist/source/useNavigate.jsx.map +1 -1
- package/dist/source/useParams.d.ts +2 -4
- package/dist/source/useParams.jsx.map +1 -1
- package/dist/source/useRouteContext.d.ts +1 -8
- package/dist/source/useRouteContext.js.map +1 -1
- package/dist/source/useSearch.d.ts +2 -4
- package/dist/source/useSearch.jsx.map +1 -1
- package/package.json +2 -2
- package/src/Matches.tsx +8 -105
- package/src/fileRoute.ts +16 -14
- package/src/index.tsx +16 -18
- package/src/redirects.ts +4 -36
- package/src/route.ts +11 -532
- package/src/router.ts +9 -10
- package/src/typePrimitives.ts +5 -3
- package/src/useLoaderData.tsx +5 -19
- package/src/useLoaderDeps.tsx +5 -11
- package/src/useMatch.tsx +5 -2
- package/src/useNavigate.tsx +5 -12
- package/src/useParams.tsx +3 -20
- package/src/useRouteContext.ts +5 -36
- 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 {
|
|
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:
|
|
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;
|
|
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 {
|
|
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;
|
|
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 {
|
|
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:
|
|
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;
|
|
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.
|
|
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.
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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 '
|
|
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
|
|
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
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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>({
|
|
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 {
|
|
1
|
+
import type { RegisteredRouter } from './router'
|
|
2
2
|
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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,
|