@tanstack/react-router 1.92.9 → 1.92.13
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 +15 -15
- package/dist/cjs/routeInfo.d.cts +1 -0
- package/dist/cjs/router.cjs +1 -2
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/esm/link.d.ts +15 -15
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/routeInfo.d.ts +1 -0
- package/dist/esm/router.js +1 -2
- package/dist/esm/router.js.map +1 -1
- package/package.json +2 -8
- package/src/link.tsx +64 -49
- package/src/routeInfo.ts +6 -0
- package/src/router.ts +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-router",
|
|
3
|
-
"version": "1.92.
|
|
3
|
+
"version": "1.92.13",
|
|
4
4
|
"description": "Modern and scalable routing for React applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -67,13 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
69
|
"react": ">=18",
|
|
70
|
-
"react-dom": ">=18"
|
|
71
|
-
"@tanstack/router-generator": "^1.87.7"
|
|
72
|
-
},
|
|
73
|
-
"peerDependenciesMeta": {
|
|
74
|
-
"@tanstack/router-generator": {
|
|
75
|
-
"optional": true
|
|
76
|
-
}
|
|
70
|
+
"react-dom": ">=18"
|
|
77
71
|
},
|
|
78
72
|
"scripts": {}
|
|
79
73
|
}
|
package/src/link.tsx
CHANGED
|
@@ -26,6 +26,7 @@ import type {
|
|
|
26
26
|
RouteByToPath,
|
|
27
27
|
RoutePaths,
|
|
28
28
|
RouteToPath,
|
|
29
|
+
ToPath,
|
|
29
30
|
TrailingSlashOptionByRouter,
|
|
30
31
|
} from './routeInfo'
|
|
31
32
|
import type {
|
|
@@ -59,63 +60,70 @@ export type ParsePathParams<T extends string, TAcc = never> = T &
|
|
|
59
60
|
: never
|
|
60
61
|
: TAcc
|
|
61
62
|
|
|
62
|
-
export type AddTrailingSlash<T> = T
|
|
63
|
-
? `${T & string}/`
|
|
64
|
-
: T
|
|
63
|
+
export type AddTrailingSlash<T> = T extends `${string}/` ? T : `${T & string}/`
|
|
65
64
|
|
|
66
|
-
export type RemoveTrailingSlashes<T> = T
|
|
67
|
-
? T
|
|
68
|
-
: T extends `${infer R}/`
|
|
65
|
+
export type RemoveTrailingSlashes<T> = T extends `${string}/`
|
|
66
|
+
? T extends `${infer R}/`
|
|
69
67
|
? R
|
|
70
68
|
: T
|
|
71
|
-
|
|
72
|
-
export type AddLeadingSlash<T> = T & `/${string}` extends never
|
|
73
|
-
? `/${T & string}`
|
|
74
69
|
: T
|
|
75
70
|
|
|
76
|
-
export type
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
export type AddLeadingSlash<T> = T extends `/${string}` ? T : `/${T & string}`
|
|
72
|
+
|
|
73
|
+
export type RemoveLeadingSlashes<T> = T extends `/${string}`
|
|
74
|
+
? T extends `/${infer R}`
|
|
79
75
|
? R
|
|
80
76
|
: T
|
|
77
|
+
: T
|
|
81
78
|
|
|
82
79
|
export type FindDescendantPaths<
|
|
83
80
|
TRouter extends AnyRouter,
|
|
84
81
|
TPrefix extends string,
|
|
85
|
-
> = `${TPrefix}
|
|
82
|
+
> = `${TPrefix}/${string}` & RouteToPath<TRouter>
|
|
86
83
|
|
|
87
84
|
export type SearchPaths<
|
|
88
85
|
TRouter extends AnyRouter,
|
|
89
86
|
TPrefix extends string,
|
|
90
87
|
TPaths = FindDescendantPaths<TRouter, TPrefix>,
|
|
91
|
-
> = TPaths extends `${TPrefix}
|
|
88
|
+
> = TPaths extends `${TPrefix}/`
|
|
89
|
+
? never
|
|
90
|
+
: TPaths extends `${TPrefix}/${infer TRest}`
|
|
91
|
+
? TRest
|
|
92
|
+
: never
|
|
92
93
|
|
|
93
94
|
export type SearchRelativePathAutoComplete<
|
|
94
95
|
TRouter extends AnyRouter,
|
|
95
96
|
TTo extends string,
|
|
96
97
|
TSearchPath extends string,
|
|
97
|
-
> =
|
|
98
|
+
> =
|
|
99
|
+
| (TSearchPath & RouteToPath<TRouter> extends never
|
|
100
|
+
? never
|
|
101
|
+
: ToPath<TrailingSlashOptionByRouter<TRouter>, TTo>)
|
|
102
|
+
| `${TTo}/${SearchPaths<TRouter, RemoveTrailingSlashes<TSearchPath>>}`
|
|
98
103
|
|
|
99
104
|
export type RelativeToParentPathAutoComplete<
|
|
100
105
|
TRouter extends AnyRouter,
|
|
101
106
|
TFrom extends string,
|
|
102
107
|
TTo extends string,
|
|
103
|
-
TResolvedPath extends string =
|
|
104
|
-
ResolveRelativePath<TFrom, TTo>
|
|
105
|
-
>,
|
|
108
|
+
TResolvedPath extends string = ResolveRelativePath<TFrom, TTo>,
|
|
106
109
|
> =
|
|
107
110
|
| SearchRelativePathAutoComplete<TRouter, TTo, TResolvedPath>
|
|
108
|
-
| (
|
|
109
|
-
?
|
|
110
|
-
|
|
111
|
+
| (TTo extends `${string}..` | `${string}../`
|
|
112
|
+
? TResolvedPath extends '/' | ''
|
|
113
|
+
? never
|
|
114
|
+
: FindDescendantPaths<
|
|
115
|
+
TRouter,
|
|
116
|
+
RemoveTrailingSlashes<TResolvedPath>
|
|
117
|
+
> extends never
|
|
118
|
+
? never
|
|
119
|
+
: `${TTo}/${ParentPath<TrailingSlashOptionByRouter<TRouter>>}`
|
|
120
|
+
: never)
|
|
111
121
|
|
|
112
122
|
export type RelativeToCurrentPathAutoComplete<
|
|
113
123
|
TRouter extends AnyRouter,
|
|
114
124
|
TFrom extends string,
|
|
115
125
|
TTo extends string,
|
|
116
|
-
TResolvedPath extends string =
|
|
117
|
-
ResolveRelativePath<TFrom, TTo>
|
|
118
|
-
>,
|
|
126
|
+
TResolvedPath extends string = ResolveRelativePath<TFrom, TTo>,
|
|
119
127
|
> =
|
|
120
128
|
| SearchRelativePathAutoComplete<TRouter, TTo, TResolvedPath>
|
|
121
129
|
| CurrentPath<TrailingSlashOptionByRouter<TRouter>>
|
|
@@ -128,9 +136,7 @@ export type AbsolutePathAutoComplete<
|
|
|
128
136
|
? CurrentPath<TrailingSlashOptionByRouter<TRouter>>
|
|
129
137
|
: TFrom extends `/`
|
|
130
138
|
? never
|
|
131
|
-
:
|
|
132
|
-
? never
|
|
133
|
-
: CurrentPath<TrailingSlashOptionByRouter<TRouter>>)
|
|
139
|
+
: CurrentPath<TrailingSlashOptionByRouter<TRouter>>)
|
|
134
140
|
| (string extends TFrom
|
|
135
141
|
? ParentPath<TrailingSlashOptionByRouter<TRouter>>
|
|
136
142
|
: TFrom extends `/`
|
|
@@ -141,7 +147,7 @@ export type AbsolutePathAutoComplete<
|
|
|
141
147
|
? never
|
|
142
148
|
: string extends TFrom
|
|
143
149
|
? never
|
|
144
|
-
:
|
|
150
|
+
: SearchPaths<TRouter, RemoveTrailingSlashes<TFrom>>)
|
|
145
151
|
|
|
146
152
|
export type RelativeToPathAutoComplete<
|
|
147
153
|
TRouter extends AnyRouter,
|
|
@@ -485,30 +491,39 @@ type RemoveLastSegment<
|
|
|
485
491
|
TAcc extends string = '',
|
|
486
492
|
> = T extends `${infer TSegment}/${infer TRest}`
|
|
487
493
|
? TRest & `${string}/${string}` extends never
|
|
488
|
-
?
|
|
494
|
+
? TRest extends ''
|
|
495
|
+
? TAcc
|
|
496
|
+
: `${TAcc}${TSegment}`
|
|
489
497
|
: RemoveLastSegment<TRest, `${TAcc}${TSegment}/`>
|
|
490
498
|
: TAcc
|
|
491
499
|
|
|
492
|
-
export type ResolveCurrentPath<
|
|
500
|
+
export type ResolveCurrentPath<
|
|
501
|
+
TFrom extends string,
|
|
502
|
+
TTo extends string,
|
|
503
|
+
> = TTo extends '.'
|
|
493
504
|
? TFrom
|
|
494
505
|
: TTo extends './'
|
|
495
506
|
? AddTrailingSlash<TFrom>
|
|
496
507
|
: TTo & `./${string}` extends never
|
|
497
508
|
? never
|
|
498
509
|
: TTo extends `./${infer TRest}`
|
|
499
|
-
?
|
|
510
|
+
? AddLeadingSlash<JoinPath<TFrom, TRest>>
|
|
500
511
|
: never
|
|
501
512
|
|
|
502
|
-
export type ResolveParentPath<
|
|
503
|
-
|
|
504
|
-
|
|
513
|
+
export type ResolveParentPath<
|
|
514
|
+
TFrom extends string,
|
|
515
|
+
TTo extends string,
|
|
516
|
+
> = TTo extends '../' | '..'
|
|
517
|
+
? TFrom extends '' | '/'
|
|
505
518
|
? never
|
|
506
|
-
:
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
:
|
|
519
|
+
: AddLeadingSlash<RemoveLastSegment<TFrom>>
|
|
520
|
+
: TTo & `../${string}` extends never
|
|
521
|
+
? AddLeadingSlash<JoinPath<TFrom, TTo>>
|
|
522
|
+
: TFrom extends '' | '/'
|
|
523
|
+
? never
|
|
524
|
+
: TTo extends `../${infer ToRest}`
|
|
525
|
+
? ResolveParentPath<RemoveLastSegment<TFrom>, ToRest>
|
|
526
|
+
: AddLeadingSlash<JoinPath<TFrom, TTo>>
|
|
512
527
|
|
|
513
528
|
export type ResolveRelativePath<TFrom, TTo = '.'> = string extends TFrom
|
|
514
529
|
? TTo
|
|
@@ -516,15 +531,15 @@ export type ResolveRelativePath<TFrom, TTo = '.'> = string extends TFrom
|
|
|
516
531
|
? TFrom
|
|
517
532
|
: undefined extends TTo
|
|
518
533
|
? TFrom
|
|
519
|
-
:
|
|
520
|
-
?
|
|
521
|
-
? TTo
|
|
522
|
-
? TTo
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
534
|
+
: TTo extends string
|
|
535
|
+
? TFrom extends string
|
|
536
|
+
? TTo extends `/${string}`
|
|
537
|
+
? TTo
|
|
538
|
+
: TTo extends `..${string}`
|
|
539
|
+
? ResolveParentPath<TFrom, TTo>
|
|
540
|
+
: TTo extends `.${string}`
|
|
541
|
+
? ResolveCurrentPath<TFrom, TTo>
|
|
542
|
+
: AddLeadingSlash<JoinPath<TFrom, TTo>>
|
|
528
543
|
: never
|
|
529
544
|
: never
|
|
530
545
|
|
package/src/routeInfo.ts
CHANGED
|
@@ -71,6 +71,12 @@ export type CurrentPath<TOption> = 'always' extends TOption
|
|
|
71
71
|
? '.'
|
|
72
72
|
: './' | '.'
|
|
73
73
|
|
|
74
|
+
export type ToPath<TOption, TTo extends string> = 'always' extends TOption
|
|
75
|
+
? `${TTo}/`
|
|
76
|
+
: 'never' extends TOption
|
|
77
|
+
? TTo
|
|
78
|
+
: TTo | `${TTo}/`
|
|
79
|
+
|
|
74
80
|
export type CatchAllPaths<TOption> = CurrentPath<TOption> | ParentPath<TOption>
|
|
75
81
|
|
|
76
82
|
export type CodeRoutesByPath<TRouteTree extends AnyRoute> =
|