@tanstack/react-router 1.108.0 → 1.109.2
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/link.cjs.map +1 -1
- package/dist/cjs/link.d.cts +1 -1
- package/dist/cjs/router.cjs +2 -1
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/typePrimitives.d.cts +18 -13
- package/dist/esm/link.d.ts +1 -1
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/router.js +2 -1
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/typePrimitives.d.ts +18 -13
- package/package.json +1 -1
- package/src/link.tsx +2 -2
- package/src/router.ts +2 -1
- package/src/typePrimitives.ts +66 -20
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { FromPathOption, LinkComponentProps, NavigateOptions, PathParamOptions, SearchParamOptions, ToPathOption } from './link.js';
|
|
2
|
+
import { Redirect } from './redirects.js';
|
|
2
3
|
import { RouteIds } from './routeInfo.js';
|
|
3
4
|
import { AnyRouter, RegisteredRouter } from './router.js';
|
|
4
5
|
import { UseParamsOptions, UseParamsResult } from './useParams.js';
|
|
5
6
|
import { UseSearchOptions, UseSearchResult } from './useSearch.js';
|
|
6
7
|
import { Constrain, ConstrainLiteral } from '@tanstack/router-core';
|
|
7
|
-
export type ValidateFromPath<
|
|
8
|
-
export type ValidateToPath<
|
|
9
|
-
export type ValidateSearch<
|
|
10
|
-
export type ValidateParams<
|
|
8
|
+
export type ValidateFromPath<TRouter extends AnyRouter = RegisteredRouter, TFrom = string> = FromPathOption<TRouter, TFrom>;
|
|
9
|
+
export type ValidateToPath<TRouter extends AnyRouter = RegisteredRouter, TTo extends string | undefined = undefined, TFrom extends string = string> = ToPathOption<TRouter, TFrom, TTo>;
|
|
10
|
+
export type ValidateSearch<TRouter extends AnyRouter = RegisteredRouter, TTo extends string | undefined = undefined, TFrom extends string = string> = SearchParamOptions<TRouter, TFrom, TTo>;
|
|
11
|
+
export type ValidateParams<TRouter extends AnyRouter = RegisteredRouter, TTo extends string | undefined = undefined, TFrom extends string = string> = PathParamOptions<TRouter, TFrom, TTo>;
|
|
11
12
|
/**
|
|
12
13
|
* @internal
|
|
13
14
|
*/
|
|
14
|
-
export type InferFrom<TOptions> = TOptions extends {
|
|
15
|
+
export type InferFrom<TOptions, TDefaultFrom extends string = string> = TOptions extends {
|
|
15
16
|
from: infer TFrom extends string;
|
|
16
|
-
} ? TFrom :
|
|
17
|
+
} ? TFrom : TDefaultFrom;
|
|
17
18
|
/**
|
|
18
19
|
* @internal
|
|
19
20
|
*/
|
|
@@ -33,15 +34,19 @@ export type InferMaskFrom<TOptions> = TOptions extends {
|
|
|
33
34
|
from: infer TFrom extends string;
|
|
34
35
|
};
|
|
35
36
|
} ? TFrom : string;
|
|
36
|
-
export type ValidateNavigateOptions<TOptions,
|
|
37
|
-
export type ValidateNavigateOptionsArray<TOptions extends ReadonlyArray<any>,
|
|
38
|
-
[K in keyof TOptions]: ValidateNavigateOptions<TOptions[K],
|
|
37
|
+
export type ValidateNavigateOptions<TRouter extends AnyRouter = RegisteredRouter, TOptions = unknown, TDefaultFrom extends string = string> = Constrain<TOptions, NavigateOptions<TRouter, InferFrom<TOptions, TDefaultFrom>, InferTo<TOptions>, InferMaskFrom<TOptions>, InferMaskTo<TOptions>>>;
|
|
38
|
+
export type ValidateNavigateOptionsArray<TRouter extends AnyRouter = RegisteredRouter, TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>, TDefaultFrom extends string = string> = {
|
|
39
|
+
[K in keyof TOptions]: ValidateNavigateOptions<TRouter, TOptions[K], TDefaultFrom>;
|
|
40
|
+
};
|
|
41
|
+
export type ValidateRedirectOptions<TRouter extends AnyRouter = RegisteredRouter, TOptions = unknown, TDefaultFrom extends string = string> = Constrain<TOptions, Redirect<TRouter, InferFrom<TOptions, TDefaultFrom>, InferTo<TOptions>, InferMaskFrom<TOptions>, InferMaskTo<TOptions>>>;
|
|
42
|
+
export type ValidateRedirectOptionsArray<TRouter extends AnyRouter = RegisteredRouter, TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>, TDefaultFrom extends string = string> = {
|
|
43
|
+
[K in keyof TOptions]: ValidateRedirectOptions<TRouter, TOptions[K], TDefaultFrom>;
|
|
39
44
|
};
|
|
40
|
-
export type ValidateLinkOptions<
|
|
41
|
-
export type ValidateLinkOptionsArray<TOptions extends ReadonlyArray<any
|
|
42
|
-
[K in keyof TOptions]: ValidateLinkOptions<TOptions[K],
|
|
45
|
+
export type ValidateLinkOptions<TRouter extends AnyRouter = RegisteredRouter, TOptions = unknown, TDefaultFrom extends string = string, TComp = 'a'> = Constrain<TOptions, LinkComponentProps<TComp, TRouter, InferFrom<TOptions, TDefaultFrom>, InferTo<TOptions>, InferMaskFrom<TOptions>, InferMaskTo<TOptions>>>;
|
|
46
|
+
export type ValidateLinkOptionsArray<TRouter extends AnyRouter = RegisteredRouter, TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>, TDefaultFrom extends string = string, TComp = 'a'> = {
|
|
47
|
+
[K in keyof TOptions]: ValidateLinkOptions<TRouter, TOptions[K], TDefaultFrom, TComp>;
|
|
43
48
|
};
|
|
44
|
-
export type ValidateId<
|
|
49
|
+
export type ValidateId<TRouter extends AnyRouter = RegisteredRouter, TId extends string = string> = ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>;
|
|
45
50
|
/**
|
|
46
51
|
* @internal
|
|
47
52
|
*/
|
package/package.json
CHANGED
package/src/link.tsx
CHANGED
|
@@ -937,8 +937,8 @@ export type LinkOptionsFnOptions<
|
|
|
937
937
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
938
938
|
> =
|
|
939
939
|
TOptions extends ReadonlyArray<any>
|
|
940
|
-
? ValidateLinkOptionsArray<TOptions,
|
|
941
|
-
: ValidateLinkOptions<TOptions,
|
|
940
|
+
? ValidateLinkOptionsArray<TRouter, TOptions, string, TComp>
|
|
941
|
+
: ValidateLinkOptions<TRouter, TOptions, string, TComp>
|
|
942
942
|
|
|
943
943
|
export type LinkOptionsFn<TComp> = <
|
|
944
944
|
const TOptions,
|
package/src/router.ts
CHANGED
|
@@ -1611,8 +1611,8 @@ export class Router<
|
|
|
1611
1611
|
}
|
|
1612
1612
|
if (opts._includeValidateSearch && route.options.validateSearch) {
|
|
1613
1613
|
const validate: SearchMiddleware<any> = ({ search, next }) => {
|
|
1614
|
+
const result = next(search)
|
|
1614
1615
|
try {
|
|
1615
|
-
const result = next(search)
|
|
1616
1616
|
const validatedSearch = {
|
|
1617
1617
|
...result,
|
|
1618
1618
|
...(validateSearch(
|
|
@@ -1623,6 +1623,7 @@ export class Router<
|
|
|
1623
1623
|
return validatedSearch
|
|
1624
1624
|
} catch {
|
|
1625
1625
|
// ignore errors here because they are already handled in matchRoutes
|
|
1626
|
+
return result
|
|
1626
1627
|
}
|
|
1627
1628
|
}
|
|
1628
1629
|
middlewares.push(validate)
|
package/src/typePrimitives.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
SearchParamOptions,
|
|
7
7
|
ToPathOption,
|
|
8
8
|
} from './link'
|
|
9
|
+
import type { Redirect } from './redirects'
|
|
9
10
|
import type { RouteIds } from './routeInfo'
|
|
10
11
|
import type { AnyRouter, RegisteredRouter } from './router'
|
|
11
12
|
import type { UseParamsOptions, UseParamsResult } from './useParams'
|
|
@@ -13,36 +14,39 @@ import type { UseSearchOptions, UseSearchResult } from './useSearch'
|
|
|
13
14
|
import type { Constrain, ConstrainLiteral } from '@tanstack/router-core'
|
|
14
15
|
|
|
15
16
|
export type ValidateFromPath<
|
|
16
|
-
TFrom,
|
|
17
17
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
18
|
+
TFrom = string,
|
|
18
19
|
> = FromPathOption<TRouter, TFrom>
|
|
19
20
|
|
|
20
21
|
export type ValidateToPath<
|
|
21
|
-
TTo extends string | undefined,
|
|
22
|
-
TFrom extends string = string,
|
|
23
22
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
23
|
+
TTo extends string | undefined = undefined,
|
|
24
|
+
TFrom extends string = string,
|
|
24
25
|
> = ToPathOption<TRouter, TFrom, TTo>
|
|
25
26
|
|
|
26
27
|
export type ValidateSearch<
|
|
27
|
-
TTo extends string | undefined,
|
|
28
|
-
TFrom extends string = string,
|
|
29
28
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
29
|
+
TTo extends string | undefined = undefined,
|
|
30
|
+
TFrom extends string = string,
|
|
30
31
|
> = SearchParamOptions<TRouter, TFrom, TTo>
|
|
31
32
|
|
|
32
33
|
export type ValidateParams<
|
|
33
|
-
TTo extends string | undefined,
|
|
34
|
-
TFrom extends string = string,
|
|
35
34
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
35
|
+
TTo extends string | undefined = undefined,
|
|
36
|
+
TFrom extends string = string,
|
|
36
37
|
> = PathParamOptions<TRouter, TFrom, TTo>
|
|
37
38
|
|
|
38
39
|
/**
|
|
39
40
|
* @internal
|
|
40
41
|
*/
|
|
41
|
-
export type InferFrom<
|
|
42
|
+
export type InferFrom<
|
|
43
|
+
TOptions,
|
|
44
|
+
TDefaultFrom extends string = string,
|
|
45
|
+
> = TOptions extends {
|
|
42
46
|
from: infer TFrom extends string
|
|
43
47
|
}
|
|
44
48
|
? TFrom
|
|
45
|
-
:
|
|
49
|
+
: TDefaultFrom
|
|
46
50
|
|
|
47
51
|
/**
|
|
48
52
|
* @internal
|
|
@@ -69,13 +73,14 @@ export type InferMaskFrom<TOptions> = TOptions extends {
|
|
|
69
73
|
: string
|
|
70
74
|
|
|
71
75
|
export type ValidateNavigateOptions<
|
|
72
|
-
TOptions,
|
|
73
76
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
77
|
+
TOptions = unknown,
|
|
78
|
+
TDefaultFrom extends string = string,
|
|
74
79
|
> = Constrain<
|
|
75
80
|
TOptions,
|
|
76
81
|
NavigateOptions<
|
|
77
82
|
TRouter,
|
|
78
|
-
InferFrom<TOptions>,
|
|
83
|
+
InferFrom<TOptions, TDefaultFrom>,
|
|
79
84
|
InferTo<TOptions>,
|
|
80
85
|
InferMaskFrom<TOptions>,
|
|
81
86
|
InferMaskTo<TOptions>
|
|
@@ -83,20 +88,55 @@ export type ValidateNavigateOptions<
|
|
|
83
88
|
>
|
|
84
89
|
|
|
85
90
|
export type ValidateNavigateOptionsArray<
|
|
86
|
-
TOptions extends ReadonlyArray<any>,
|
|
87
91
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
88
|
-
> =
|
|
92
|
+
TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,
|
|
93
|
+
TDefaultFrom extends string = string,
|
|
94
|
+
> = {
|
|
95
|
+
[K in keyof TOptions]: ValidateNavigateOptions<
|
|
96
|
+
TRouter,
|
|
97
|
+
TOptions[K],
|
|
98
|
+
TDefaultFrom
|
|
99
|
+
>
|
|
100
|
+
}
|
|
89
101
|
|
|
90
|
-
export type
|
|
102
|
+
export type ValidateRedirectOptions<
|
|
103
|
+
TRouter extends AnyRouter = RegisteredRouter,
|
|
104
|
+
TOptions = unknown,
|
|
105
|
+
TDefaultFrom extends string = string,
|
|
106
|
+
> = Constrain<
|
|
91
107
|
TOptions,
|
|
92
|
-
|
|
108
|
+
Redirect<
|
|
109
|
+
TRouter,
|
|
110
|
+
InferFrom<TOptions, TDefaultFrom>,
|
|
111
|
+
InferTo<TOptions>,
|
|
112
|
+
InferMaskFrom<TOptions>,
|
|
113
|
+
InferMaskTo<TOptions>
|
|
114
|
+
>
|
|
115
|
+
>
|
|
116
|
+
|
|
117
|
+
export type ValidateRedirectOptionsArray<
|
|
93
118
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
119
|
+
TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,
|
|
120
|
+
TDefaultFrom extends string = string,
|
|
121
|
+
> = {
|
|
122
|
+
[K in keyof TOptions]: ValidateRedirectOptions<
|
|
123
|
+
TRouter,
|
|
124
|
+
TOptions[K],
|
|
125
|
+
TDefaultFrom
|
|
126
|
+
>
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export type ValidateLinkOptions<
|
|
130
|
+
TRouter extends AnyRouter = RegisteredRouter,
|
|
131
|
+
TOptions = unknown,
|
|
132
|
+
TDefaultFrom extends string = string,
|
|
133
|
+
TComp = 'a',
|
|
94
134
|
> = Constrain<
|
|
95
135
|
TOptions,
|
|
96
136
|
LinkComponentProps<
|
|
97
137
|
TComp,
|
|
98
138
|
TRouter,
|
|
99
|
-
InferFrom<TOptions>,
|
|
139
|
+
InferFrom<TOptions, TDefaultFrom>,
|
|
100
140
|
InferTo<TOptions>,
|
|
101
141
|
InferMaskFrom<TOptions>,
|
|
102
142
|
InferMaskTo<TOptions>
|
|
@@ -104,16 +144,22 @@ export type ValidateLinkOptions<
|
|
|
104
144
|
>
|
|
105
145
|
|
|
106
146
|
export type ValidateLinkOptionsArray<
|
|
107
|
-
TOptions extends ReadonlyArray<any>,
|
|
108
|
-
TComp = 'a',
|
|
109
147
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
148
|
+
TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,
|
|
149
|
+
TDefaultFrom extends string = string,
|
|
150
|
+
TComp = 'a',
|
|
110
151
|
> = {
|
|
111
|
-
[K in keyof TOptions]: ValidateLinkOptions<
|
|
152
|
+
[K in keyof TOptions]: ValidateLinkOptions<
|
|
153
|
+
TRouter,
|
|
154
|
+
TOptions[K],
|
|
155
|
+
TDefaultFrom,
|
|
156
|
+
TComp
|
|
157
|
+
>
|
|
112
158
|
}
|
|
113
159
|
|
|
114
160
|
export type ValidateId<
|
|
115
|
-
TId extends string,
|
|
116
161
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
162
|
+
TId extends string = string,
|
|
117
163
|
> = ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>
|
|
118
164
|
|
|
119
165
|
/**
|