@tanstack/router-core 1.111.3 → 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.
Files changed (46) hide show
  1. package/dist/cjs/Matches.cjs.map +1 -1
  2. package/dist/cjs/Matches.d.cts +51 -1
  3. package/dist/cjs/index.d.cts +11 -4
  4. package/dist/cjs/path.cjs +1 -1
  5. package/dist/cjs/path.cjs.map +1 -1
  6. package/dist/cjs/redirect.d.cts +18 -0
  7. package/dist/cjs/route.d.cts +117 -4
  8. package/dist/cjs/typePrimitives.d.cts +0 -0
  9. package/dist/cjs/useLoaderData.d.cts +5 -0
  10. package/dist/cjs/useLoaderDeps.d.cts +5 -0
  11. package/dist/cjs/useNavigate.d.cts +3 -0
  12. package/dist/cjs/useParams.d.cts +5 -0
  13. package/dist/cjs/useRouteContext.d.cts +9 -0
  14. package/dist/cjs/useSearch.d.cts +5 -0
  15. package/dist/cjs/utils.cjs.map +1 -1
  16. package/dist/cjs/utils.d.cts +9 -0
  17. package/dist/esm/Matches.d.ts +51 -1
  18. package/dist/esm/Matches.js.map +1 -1
  19. package/dist/esm/index.d.ts +11 -4
  20. package/dist/esm/path.js +1 -1
  21. package/dist/esm/path.js.map +1 -1
  22. package/dist/esm/redirect.d.ts +18 -0
  23. package/dist/esm/route.d.ts +117 -4
  24. package/dist/esm/typePrimitives.d.ts +0 -0
  25. package/dist/esm/useLoaderData.d.ts +5 -0
  26. package/dist/esm/useLoaderDeps.d.ts +5 -0
  27. package/dist/esm/useNavigate.d.ts +3 -0
  28. package/dist/esm/useParams.d.ts +5 -0
  29. package/dist/esm/useRouteContext.d.ts +9 -0
  30. package/dist/esm/useSearch.d.ts +5 -0
  31. package/dist/esm/utils.d.ts +9 -0
  32. package/dist/esm/utils.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/Matches.ts +114 -1
  35. package/src/index.ts +39 -0
  36. package/src/path.ts +6 -1
  37. package/src/redirect.ts +36 -0
  38. package/src/route.ts +530 -3
  39. package/src/typePrimitives.ts +0 -0
  40. package/src/useLoaderData.ts +20 -0
  41. package/src/useLoaderDeps.ts +13 -0
  42. package/src/useNavigate.ts +13 -0
  43. package/src/useParams.ts +20 -0
  44. package/src/useRouteContext.ts +39 -0
  45. package/src/useSearch.ts +20 -0
  46. package/src/utils.ts +17 -0
@@ -0,0 +1,13 @@
1
+ import type { NavigateOptions } from './link'
2
+ import type { RegisteredRouter } from './router'
3
+
4
+ export type UseNavigateResult<TDefaultFrom extends string> = <
5
+ TRouter extends RegisteredRouter,
6
+ TTo extends string | undefined,
7
+ TFrom extends string = TDefaultFrom,
8
+ TMaskFrom extends string = TFrom,
9
+ TMaskTo extends string = '',
10
+ >({
11
+ from,
12
+ ...rest
13
+ }: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>
@@ -0,0 +1,20 @@
1
+ import type { AllParams, RouteById } from './routeInfo'
2
+ import type { AnyRouter } from './router'
3
+ import type { Expand } from './utils'
4
+
5
+ export type ResolveUseParams<
6
+ TRouter extends AnyRouter,
7
+ TFrom,
8
+ TStrict extends boolean,
9
+ > = TStrict extends false
10
+ ? AllParams<TRouter['routeTree']>
11
+ : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allParams']>
12
+
13
+ export type UseParamsResult<
14
+ TRouter extends AnyRouter,
15
+ TFrom,
16
+ TStrict extends boolean,
17
+ TSelected,
18
+ > = unknown extends TSelected
19
+ ? ResolveUseParams<TRouter, TFrom, TStrict>
20
+ : TSelected
@@ -0,0 +1,39 @@
1
+ import type { AllContext, RouteById } from './routeInfo'
2
+ import type { AnyRouter } from './router'
3
+ import type { Expand, StrictOrFrom } from './utils'
4
+
5
+ export interface UseRouteContextBaseOptions<
6
+ TRouter extends AnyRouter,
7
+ TFrom,
8
+ TStrict extends boolean,
9
+ TSelected,
10
+ > {
11
+ select?: (
12
+ search: ResolveUseRouteContext<TRouter, TFrom, TStrict>,
13
+ ) => TSelected
14
+ }
15
+
16
+ export type UseRouteContextOptions<
17
+ TRouter extends AnyRouter,
18
+ TFrom extends string | undefined,
19
+ TStrict extends boolean,
20
+ TSelected,
21
+ > = StrictOrFrom<TRouter, TFrom, TStrict> &
22
+ UseRouteContextBaseOptions<TRouter, TFrom, TStrict, TSelected>
23
+
24
+ export type ResolveUseRouteContext<
25
+ TRouter extends AnyRouter,
26
+ TFrom,
27
+ TStrict extends boolean,
28
+ > = TStrict extends false
29
+ ? AllContext<TRouter['routeTree']>
30
+ : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>
31
+
32
+ export type UseRouteContextResult<
33
+ TRouter extends AnyRouter,
34
+ TFrom,
35
+ TStrict extends boolean,
36
+ TSelected,
37
+ > = unknown extends TSelected
38
+ ? ResolveUseRouteContext<TRouter, TFrom, TStrict>
39
+ : TSelected
@@ -0,0 +1,20 @@
1
+ import type { FullSearchSchema, RouteById } from './routeInfo'
2
+ import type { AnyRouter } from './router'
3
+ import type { Expand } from './utils'
4
+
5
+ export type UseSearchResult<
6
+ TRouter extends AnyRouter,
7
+ TFrom,
8
+ TStrict extends boolean,
9
+ TSelected,
10
+ > = unknown extends TSelected
11
+ ? ResolveUseSearch<TRouter, TFrom, TStrict>
12
+ : TSelected
13
+
14
+ export type ResolveUseSearch<
15
+ TRouter extends AnyRouter,
16
+ TFrom,
17
+ TStrict extends boolean,
18
+ > = TStrict extends false
19
+ ? FullSearchSchema<TRouter['routeTree']>
20
+ : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['fullSearchSchema']>
package/src/utils.ts CHANGED
@@ -1,3 +1,6 @@
1
+ import type { RouteIds } from './routeInfo'
2
+ import type { AnyRouter } from './router'
3
+
1
4
  export type NoInfer<T> = [T][T extends any ? 0 : never]
2
5
  export type IsAny<TValue, TYesResult, TNoResult = TValue> = 1 extends 0 & TValue
3
6
  ? TYesResult
@@ -330,6 +333,20 @@ export type ThrowOrOptional<T, TThrow extends boolean> = TThrow extends true
330
333
  ? T
331
334
  : T | undefined
332
335
 
336
+ export type StrictOrFrom<
337
+ TRouter extends AnyRouter,
338
+ TFrom,
339
+ TStrict extends boolean = true,
340
+ > = TStrict extends false
341
+ ? {
342
+ from?: never
343
+ strict: TStrict
344
+ }
345
+ : {
346
+ from: ConstrainLiteral<TFrom, RouteIds<TRouter['routeTree']>>
347
+ strict?: TStrict
348
+ }
349
+
333
350
  export type ControlledPromise<T> = Promise<T> & {
334
351
  resolve: (value: T) => void
335
352
  reject: (value: any) => void