@tanstack/react-router 0.0.1-beta.284 → 0.0.1-beta.285
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/build/cjs/link.js.map +1 -1
- package/build/cjs/utils.js +2 -0
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2 -0
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +351 -351
- package/build/types/link.d.ts +1 -1
- package/build/types/routeInfo.d.ts +11 -2
- package/build/types/utils.d.ts +3 -0
- package/build/umd/index.development.js +2 -0
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/link.tsx +0 -2
- package/src/routeInfo.ts +16 -2
- package/src/utils.ts +10 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-router",
|
|
3
3
|
"author": "Tanner Linsley",
|
|
4
|
-
"version": "0.0.1-beta.
|
|
4
|
+
"version": "0.0.1-beta.285",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "tanstack/router",
|
|
7
7
|
"homepage": "https://tanstack.com/router",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@tanstack/store": "^0.1.3",
|
|
45
45
|
"tiny-invariant": "^1.3.1",
|
|
46
46
|
"tiny-warning": "^1.0.3",
|
|
47
|
-
"@tanstack/history": "0.0.1-beta.
|
|
47
|
+
"@tanstack/history": "0.0.1-beta.285"
|
|
48
48
|
},
|
|
49
49
|
"scripts": {
|
|
50
50
|
"build": "rollup --config rollup.config.js"
|
package/src/link.tsx
CHANGED
|
@@ -172,11 +172,9 @@ export type SearchParamOptions<
|
|
|
172
172
|
TFromSearchEnsured = '/' extends TFrom
|
|
173
173
|
? FullSearchSchema<TRouteTree>
|
|
174
174
|
: Expand<
|
|
175
|
-
UnionToIntersection<
|
|
176
175
|
PickRequired<
|
|
177
176
|
RouteByPath<TRouteTree, TFrom>['types']['fullSearchSchema']
|
|
178
177
|
>
|
|
179
|
-
>
|
|
180
178
|
>,
|
|
181
179
|
TFromSearchOptional = Omit<
|
|
182
180
|
FullSearchSchema<TRouteTree>,
|
package/src/routeInfo.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnyRoute, Route } from './route'
|
|
2
|
-
import { Expand, UnionToIntersection } from './utils'
|
|
2
|
+
import { Expand, UnionToIntersection, UnionToTuple } from './utils'
|
|
3
3
|
|
|
4
4
|
export type ParseRoute<TRouteTree extends AnyRoute> =
|
|
5
5
|
| TRouteTree
|
|
@@ -59,9 +59,23 @@ export type RoutePaths<TRouteTree extends AnyRoute> =
|
|
|
59
59
|
| ParseRoute<TRouteTree>['fullPath']
|
|
60
60
|
| '/'
|
|
61
61
|
|
|
62
|
+
type UnionizeCollisions<T, U> = {
|
|
63
|
+
[P in keyof T & keyof U]: T[P] extends U[P] ? T[P] : T[P] | U[P]
|
|
64
|
+
}
|
|
65
|
+
type Reducer<T, U, C = UnionizeCollisions<T, U>> = C &
|
|
66
|
+
Omit<T, keyof C> &
|
|
67
|
+
Omit<U, keyof C>
|
|
68
|
+
|
|
69
|
+
type Reduce<T extends any[], Result = unknown> = T extends [
|
|
70
|
+
infer First,
|
|
71
|
+
...infer Rest,
|
|
72
|
+
]
|
|
73
|
+
? Reduce<Rest, Reducer<Result, First>>
|
|
74
|
+
: Result
|
|
75
|
+
|
|
62
76
|
export type FullSearchSchema<TRouteTree extends AnyRoute> = Partial<
|
|
63
77
|
Expand<
|
|
64
|
-
|
|
78
|
+
Reduce<UnionToTuple<ParseRoute<TRouteTree>['types']['fullSearchSchema']>>
|
|
65
79
|
>
|
|
66
80
|
>
|
|
67
81
|
|
package/src/utils.ts
CHANGED
|
@@ -133,6 +133,16 @@ export type PickExclude<T, U> = {
|
|
|
133
133
|
[K in keyof T as T[K] extends U ? never : K]: T[K]
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
+
// from https://github.com/type-challenges/type-challenges/issues/737
|
|
137
|
+
type LastInUnion<U> = UnionToIntersection<
|
|
138
|
+
U extends unknown ? (x: U) => 0 : never
|
|
139
|
+
> extends (x: infer L) => 0
|
|
140
|
+
? L
|
|
141
|
+
: never
|
|
142
|
+
export type UnionToTuple<U, Last = LastInUnion<U>> = [U] extends [never]
|
|
143
|
+
? []
|
|
144
|
+
: [...UnionToTuple<Exclude<U, Last>>, Last]
|
|
145
|
+
|
|
136
146
|
//
|
|
137
147
|
|
|
138
148
|
export const isServer = typeof document === 'undefined'
|