@tanstack/solid-router 1.108.0 → 1.110.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.
- 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 +65 -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
|
@@ -987,8 +987,8 @@ export type LinkOptionsFnOptions<
|
|
|
987
987
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
988
988
|
> =
|
|
989
989
|
TOptions extends ReadonlyArray<any>
|
|
990
|
-
? ValidateLinkOptionsArray<TOptions,
|
|
991
|
-
: ValidateLinkOptions<TOptions,
|
|
990
|
+
? ValidateLinkOptionsArray<TRouter, TOptions, string, TComp>
|
|
991
|
+
: ValidateLinkOptions<TRouter, TOptions, string, TComp>
|
|
992
992
|
|
|
993
993
|
export type LinkOptionsFn<TComp> = <
|
|
994
994
|
const TOptions,
|
package/src/router.ts
CHANGED
|
@@ -1586,8 +1586,8 @@ export class Router<
|
|
|
1586
1586
|
}
|
|
1587
1587
|
if (opts._includeValidateSearch && route.options.validateSearch) {
|
|
1588
1588
|
const validate: SearchMiddleware<any> = ({ search, next }) => {
|
|
1589
|
+
const result = next(search)
|
|
1589
1590
|
try {
|
|
1590
|
-
const result = next(search)
|
|
1591
1591
|
const validatedSearch = {
|
|
1592
1592
|
...result,
|
|
1593
1593
|
...(validateSearch(
|
|
@@ -1598,6 +1598,7 @@ export class Router<
|
|
|
1598
1598
|
return validatedSearch
|
|
1599
1599
|
} catch {
|
|
1600
1600
|
// ignore errors here because they are already handled in matchRoutes
|
|
1601
|
+
return result
|
|
1601
1602
|
}
|
|
1602
1603
|
}
|
|
1603
1604
|
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,54 @@ 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
|
+
}
|
|
101
|
+
export type ValidateRedirectOptions<
|
|
102
|
+
TRouter extends AnyRouter = RegisteredRouter,
|
|
103
|
+
TOptions = unknown,
|
|
104
|
+
TDefaultFrom extends string = string,
|
|
105
|
+
> = Constrain<
|
|
106
|
+
TOptions,
|
|
107
|
+
Redirect<
|
|
108
|
+
TRouter,
|
|
109
|
+
InferFrom<TOptions, TDefaultFrom>,
|
|
110
|
+
InferTo<TOptions>,
|
|
111
|
+
InferMaskFrom<TOptions>,
|
|
112
|
+
InferMaskTo<TOptions>
|
|
113
|
+
>
|
|
114
|
+
>
|
|
115
|
+
|
|
116
|
+
export type ValidateRedirectOptionsArray<
|
|
117
|
+
TRouter extends AnyRouter = RegisteredRouter,
|
|
118
|
+
TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,
|
|
119
|
+
TDefaultFrom extends string = string,
|
|
120
|
+
> = {
|
|
121
|
+
[K in keyof TOptions]: ValidateRedirectOptions<
|
|
122
|
+
TRouter,
|
|
123
|
+
TOptions[K],
|
|
124
|
+
TDefaultFrom
|
|
125
|
+
>
|
|
126
|
+
}
|
|
89
127
|
|
|
90
128
|
export type ValidateLinkOptions<
|
|
91
|
-
TOptions,
|
|
92
|
-
TComp = 'a',
|
|
93
129
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
130
|
+
TOptions = unknown,
|
|
131
|
+
TDefaultFrom extends string = string,
|
|
132
|
+
TComp = 'a',
|
|
94
133
|
> = Constrain<
|
|
95
134
|
TOptions,
|
|
96
135
|
LinkComponentProps<
|
|
97
136
|
TComp,
|
|
98
137
|
TRouter,
|
|
99
|
-
InferFrom<TOptions>,
|
|
138
|
+
InferFrom<TOptions, TDefaultFrom>,
|
|
100
139
|
InferTo<TOptions>,
|
|
101
140
|
InferMaskFrom<TOptions>,
|
|
102
141
|
InferMaskTo<TOptions>
|
|
@@ -104,16 +143,22 @@ export type ValidateLinkOptions<
|
|
|
104
143
|
>
|
|
105
144
|
|
|
106
145
|
export type ValidateLinkOptionsArray<
|
|
107
|
-
TOptions extends ReadonlyArray<any>,
|
|
108
|
-
TComp = 'a',
|
|
109
146
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
147
|
+
TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,
|
|
148
|
+
TDefaultFrom extends string = string,
|
|
149
|
+
TComp = 'a',
|
|
110
150
|
> = {
|
|
111
|
-
[K in keyof TOptions]: ValidateLinkOptions<
|
|
151
|
+
[K in keyof TOptions]: ValidateLinkOptions<
|
|
152
|
+
TRouter,
|
|
153
|
+
TOptions[K],
|
|
154
|
+
TDefaultFrom,
|
|
155
|
+
TComp
|
|
156
|
+
>
|
|
112
157
|
}
|
|
113
158
|
|
|
114
159
|
export type ValidateId<
|
|
115
|
-
TId extends string,
|
|
116
160
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
161
|
+
TId extends string = string,
|
|
117
162
|
> = ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>
|
|
118
163
|
|
|
119
164
|
/**
|