@tanstack/solid-router 1.109.2 → 1.111.3

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 (90) hide show
  1. package/dist/cjs/Matches.cjs.map +1 -1
  2. package/dist/cjs/Matches.d.cts +1 -3
  3. package/dist/cjs/RouterProvider.cjs.map +1 -1
  4. package/dist/cjs/RouterProvider.d.cts +0 -25
  5. package/dist/cjs/fileRoute.cjs.map +1 -1
  6. package/dist/cjs/fileRoute.d.cts +2 -14
  7. package/dist/cjs/index.d.cts +6 -7
  8. package/dist/cjs/link.cjs.map +1 -1
  9. package/dist/cjs/link.d.cts +2 -74
  10. package/dist/cjs/not-found.cjs.map +1 -1
  11. package/dist/cjs/not-found.d.cts +1 -1
  12. package/dist/cjs/redirects.cjs.map +1 -1
  13. package/dist/cjs/redirects.d.cts +1 -3
  14. package/dist/cjs/route.cjs.map +1 -1
  15. package/dist/cjs/route.d.cts +10 -50
  16. package/dist/cjs/router.cjs.map +1 -1
  17. package/dist/cjs/router.d.cts +2 -8
  18. package/dist/cjs/typePrimitives.d.cts +20 -16
  19. package/dist/cjs/useBlocker.cjs.map +1 -1
  20. package/dist/cjs/useBlocker.d.cts +1 -1
  21. package/dist/cjs/useLoaderData.cjs.map +1 -1
  22. package/dist/cjs/useLoaderData.d.cts +1 -2
  23. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  24. package/dist/cjs/useLoaderDeps.d.cts +1 -2
  25. package/dist/cjs/useNavigate.cjs.map +1 -1
  26. package/dist/cjs/useNavigate.d.cts +1 -1
  27. package/dist/cjs/useParams.cjs.map +1 -1
  28. package/dist/cjs/useParams.d.cts +1 -2
  29. package/dist/cjs/useRouteContext.cjs.map +1 -1
  30. package/dist/cjs/useRouteContext.d.cts +1 -2
  31. package/dist/cjs/useSearch.cjs.map +1 -1
  32. package/dist/cjs/useSearch.d.cts +1 -2
  33. package/dist/cjs/utils.cjs.map +1 -1
  34. package/dist/cjs/utils.d.cts +2 -3
  35. package/dist/esm/Matches.d.ts +1 -3
  36. package/dist/esm/Matches.js.map +1 -1
  37. package/dist/esm/RouterProvider.d.ts +0 -25
  38. package/dist/esm/RouterProvider.js.map +1 -1
  39. package/dist/esm/fileRoute.d.ts +2 -14
  40. package/dist/esm/fileRoute.js.map +1 -1
  41. package/dist/esm/index.d.ts +6 -7
  42. package/dist/esm/link.d.ts +2 -74
  43. package/dist/esm/link.js.map +1 -1
  44. package/dist/esm/not-found.d.ts +1 -1
  45. package/dist/esm/not-found.js.map +1 -1
  46. package/dist/esm/redirects.d.ts +1 -3
  47. package/dist/esm/redirects.js.map +1 -1
  48. package/dist/esm/route.d.ts +10 -50
  49. package/dist/esm/route.js.map +1 -1
  50. package/dist/esm/router.d.ts +2 -8
  51. package/dist/esm/router.js.map +1 -1
  52. package/dist/esm/typePrimitives.d.ts +20 -16
  53. package/dist/esm/useBlocker.d.ts +1 -1
  54. package/dist/esm/useBlocker.js.map +1 -1
  55. package/dist/esm/useLoaderData.d.ts +1 -2
  56. package/dist/esm/useLoaderData.js.map +1 -1
  57. package/dist/esm/useLoaderDeps.d.ts +1 -2
  58. package/dist/esm/useLoaderDeps.js.map +1 -1
  59. package/dist/esm/useNavigate.d.ts +1 -1
  60. package/dist/esm/useNavigate.js.map +1 -1
  61. package/dist/esm/useParams.d.ts +1 -2
  62. package/dist/esm/useParams.js.map +1 -1
  63. package/dist/esm/useRouteContext.d.ts +1 -2
  64. package/dist/esm/useRouteContext.js.map +1 -1
  65. package/dist/esm/useSearch.d.ts +1 -2
  66. package/dist/esm/useSearch.js.map +1 -1
  67. package/dist/esm/utils.d.ts +2 -3
  68. package/dist/esm/utils.js.map +1 -1
  69. package/package.json +2 -2
  70. package/src/Matches.tsx +11 -15
  71. package/src/RouterProvider.tsx +0 -48
  72. package/src/fileRoute.ts +3 -31
  73. package/src/index.tsx +47 -54
  74. package/src/link.tsx +5 -429
  75. package/src/not-found.tsx +1 -1
  76. package/src/redirects.ts +5 -3
  77. package/src/route.ts +101 -154
  78. package/src/router.ts +11 -25
  79. package/src/typePrimitives.ts +73 -27
  80. package/src/useBlocker.tsx +1 -1
  81. package/src/useLoaderData.tsx +1 -2
  82. package/src/useLoaderDeps.tsx +1 -2
  83. package/src/useNavigate.tsx +1 -1
  84. package/src/useParams.tsx +6 -2
  85. package/src/useRouteContext.ts +2 -2
  86. package/src/useSearch.tsx +6 -2
  87. package/src/utils.ts +1 -2
  88. package/dist/cjs/routeInfo.d.cts +0 -53
  89. package/dist/esm/routeInfo.d.ts +0 -53
  90. package/src/routeInfo.ts +0 -239
@@ -1,9 +1,9 @@
1
1
  import { useMatch } from './useMatch'
2
2
  import type { Accessor } from 'solid-js'
3
- import type { AllContext, RouteById } from './routeInfo'
3
+
4
4
  import type { AnyRouter, RegisteredRouter } from './router'
5
5
  import type { StrictOrFrom } from './utils'
6
- import type { Expand } from '@tanstack/router-core'
6
+ import type { AllContext, Expand, RouteById } from '@tanstack/router-core'
7
7
 
8
8
  export interface UseRouteContextBaseOptions<
9
9
  TRouter extends AnyRouter,
package/src/useSearch.tsx CHANGED
@@ -1,10 +1,14 @@
1
1
  import { useMatch } from './useMatch'
2
2
  import type { ThrowConstraint } from './useMatch'
3
3
  import type { Accessor } from 'solid-js'
4
- import type { FullSearchSchema, RouteById } from './routeInfo'
5
4
  import type { AnyRouter, RegisteredRouter } from './router'
6
5
  import type { StrictOrFrom } from './utils'
7
- import type { Expand, ThrowOrOptional } from '@tanstack/router-core'
6
+ import type {
7
+ Expand,
8
+ FullSearchSchema,
9
+ RouteById,
10
+ ThrowOrOptional,
11
+ } from '@tanstack/router-core'
8
12
 
9
13
  export interface UseSearchBaseOptions<
10
14
  TRouter extends AnyRouter,
package/src/utils.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import * as Solid from 'solid-js'
2
- import type { RouteIds } from './routeInfo'
3
2
  import type { AnyRouter } from './router'
4
- import type { ConstrainLiteral } from '@tanstack/router-core'
3
+ import type { ConstrainLiteral, RouteIds } from '@tanstack/router-core'
5
4
 
6
5
  export type StrictOrFrom<
7
6
  TRouter extends AnyRouter,
@@ -1,53 +0,0 @@
1
- import { InferFileRouteTypes } from './fileRoute.cjs';
2
- import { AddTrailingSlash, PartialMergeAll, RemoveTrailingSlashes, TrailingSlashOption } from '@tanstack/router-core';
3
- import { AnyRoute } from './route.cjs';
4
- import { AnyRouter } from './router.cjs';
5
- export type ParseRoute<TRouteTree, TAcc = TRouteTree> = TRouteTree extends {
6
- types: {
7
- children: infer TChildren;
8
- };
9
- } ? unknown extends TChildren ? TAcc : TChildren extends ReadonlyArray<any> ? ParseRoute<TChildren[number], TAcc | TChildren[number]> : ParseRoute<TChildren[keyof TChildren], TAcc | TChildren[keyof TChildren]> : TAcc;
10
- export type ParseRouteWithoutBranches<TRouteTree> = ParseRoute<TRouteTree> extends infer TRoute extends AnyRoute ? TRoute extends any ? unknown extends TRoute['types']['children'] ? TRoute : TRoute['types']['children'] extends ReadonlyArray<any> ? '/' extends TRoute['types']['children'][number]['path'] ? never : TRoute : '/' extends TRoute['types']['children'][keyof TRoute['types']['children']]['path'] ? never : TRoute : never : never;
11
- export type CodeRoutesById<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? {
12
- [K in TRoutes as K['id']]: K;
13
- } : never;
14
- export type RoutesById<TRouteTree extends AnyRoute> = InferFileRouteTypes<TRouteTree> extends never ? CodeRoutesById<TRouteTree> : InferFileRouteTypes<TRouteTree>['fileRoutesById'];
15
- export type RouteById<TRouteTree extends AnyRoute, TId> = Extract<RoutesById<TRouteTree>[TId & keyof RoutesById<TRouteTree>], AnyRoute>;
16
- export type CodeRouteIds<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? TRoutes['id'] : never;
17
- export type RouteIds<TRouteTree extends AnyRoute> = InferFileRouteTypes<TRouteTree> extends never ? CodeRouteIds<TRouteTree> : InferFileRouteTypes<TRouteTree>['id'];
18
- export type ParentPath<TRouter extends AnyRouter> = TrailingSlashOptionByRouter<TRouter> extends 'always' ? '../' : TrailingSlashOptionByRouter<TRouter> extends 'never' ? '..' : '../' | '..';
19
- export type CurrentPath<TRouter extends AnyRouter> = TrailingSlashOptionByRouter<TRouter> extends 'always' ? './' : TrailingSlashOptionByRouter<TRouter> extends 'never' ? '.' : './' | '.';
20
- export type ToPath<TRouter extends AnyRouter, TTo extends string> = TrailingSlashOptionByRouter<TRouter> extends 'always' ? AddTrailingSlash<TTo> : TrailingSlashOptionByRouter<TRouter> extends 'never' ? RemoveTrailingSlashes<TTo> : AddTrailingSlash<TTo> | RemoveTrailingSlashes<TTo>;
21
- export type CatchAllPaths<TRouter extends AnyRouter> = CurrentPath<TRouter> | ParentPath<TRouter>;
22
- export type CodeRoutesByPath<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? {
23
- [K in TRoutes as K['fullPath']]: K;
24
- } : never;
25
- export type RoutesByPath<TRouteTree extends AnyRoute> = InferFileRouteTypes<TRouteTree> extends never ? CodeRoutesByPath<TRouteTree> : InferFileRouteTypes<TRouteTree>['fileRoutesByFullPath'];
26
- export type RouteByPath<TRouteTree extends AnyRoute, TPath> = Extract<RoutesByPath<TRouteTree>[TPath & keyof RoutesByPath<TRouteTree>], AnyRoute>;
27
- export type CodeRoutePaths<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? TRoutes['fullPath'] : never;
28
- export type RoutePaths<TRouteTree extends AnyRoute> = unknown extends TRouteTree ? string : (InferFileRouteTypes<TRouteTree> extends never ? CodeRoutePaths<TRouteTree> : InferFileRouteTypes<TRouteTree>['fullPaths']) | '/';
29
- export type RouteToPathAlwaysTrailingSlash<TRoute extends AnyRoute> = TRoute['path'] extends '/' ? TRoute['fullPath'] : TRoute['fullPath'] extends '/' ? TRoute['fullPath'] : `${TRoute['fullPath']}/`;
30
- export type RouteToPathNeverTrailingSlash<TRoute extends AnyRoute> = TRoute['path'] extends '/' ? TRoute['fullPath'] extends '/' ? TRoute['fullPath'] : RemoveTrailingSlashes<TRoute['fullPath']> : TRoute['fullPath'];
31
- export type RouteToPathPreserveTrailingSlash<TRoute extends AnyRoute> = RouteToPathNeverTrailingSlash<TRoute> | RouteToPathAlwaysTrailingSlash<TRoute>;
32
- export type RouteToPathByTrailingSlashOption<TRoute extends AnyRoute> = {
33
- always: RouteToPathAlwaysTrailingSlash<TRoute>;
34
- preserve: RouteToPathPreserveTrailingSlash<TRoute>;
35
- never: RouteToPathNeverTrailingSlash<TRoute>;
36
- };
37
- export type TrailingSlashOptionByRouter<TRouter extends AnyRouter> = TrailingSlashOption extends TRouter['options']['trailingSlash'] ? 'never' : NonNullable<TRouter['options']['trailingSlash']>;
38
- export type RouteToByRouter<TRouter extends AnyRouter, TRoute extends AnyRoute> = RouteToPathByTrailingSlashOption<TRoute>[TrailingSlashOptionByRouter<TRouter>];
39
- export type CodeRouteToPath<TRouter extends AnyRouter> = ParseRouteWithoutBranches<TRouter['routeTree']> extends infer TRoute extends AnyRoute ? TRoute extends any ? RouteToByRouter<TRouter, TRoute> : never : never;
40
- export type FileRouteToPath<TRouter extends AnyRouter, TTo = InferFileRouteTypes<TRouter['routeTree']>['to'], TTrailingSlashOption = TrailingSlashOptionByRouter<TRouter>> = 'never' extends TTrailingSlashOption ? TTo : 'always' extends TTrailingSlashOption ? AddTrailingSlash<TTo> : TTo | AddTrailingSlash<TTo>;
41
- export type RouteToPath<TRouter extends AnyRouter> = unknown extends TRouter ? string : InferFileRouteTypes<TRouter['routeTree']> extends never ? CodeRouteToPath<TRouter> : FileRouteToPath<TRouter>;
42
- export type CodeRoutesByToPath<TRouter extends AnyRouter> = ParseRouteWithoutBranches<TRouter['routeTree']> extends infer TRoutes extends AnyRoute ? {
43
- [TRoute in TRoutes as RouteToByRouter<TRouter, TRoute>]: TRoute;
44
- } : never;
45
- export type RoutesByToPath<TRouter extends AnyRouter> = InferFileRouteTypes<TRouter['routeTree']> extends never ? CodeRoutesByToPath<TRouter> : InferFileRouteTypes<TRouter['routeTree']>['fileRoutesByTo'];
46
- export type CodeRouteByToPath<TRouter extends AnyRouter, TTo> = Extract<RoutesByToPath<TRouter>[TTo & keyof RoutesByToPath<TRouter>], AnyRoute>;
47
- export type FileRouteByToPath<TRouter extends AnyRouter, TTo> = 'never' extends TrailingSlashOptionByRouter<TRouter> ? CodeRouteByToPath<TRouter, TTo> : 'always' extends TrailingSlashOptionByRouter<TRouter> ? TTo extends '/' ? CodeRouteByToPath<TRouter, TTo> : TTo extends `${infer TPath}/` ? CodeRouteByToPath<TRouter, TPath> : never : CodeRouteByToPath<TRouter, TTo extends '/' ? TTo : RemoveTrailingSlashes<TTo>>;
48
- export type RouteByToPath<TRouter extends AnyRouter, TTo> = InferFileRouteTypes<TRouter['routeTree']> extends never ? CodeRouteByToPath<TRouter, TTo> : FileRouteByToPath<TRouter, TTo>;
49
- export type FullSearchSchema<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['fullSearchSchema']> : never;
50
- export type FullSearchSchemaInput<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['fullSearchSchemaInput']> : never;
51
- export type AllParams<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['allParams']> : never;
52
- export type AllContext<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['allContext']> : never;
53
- export type AllLoaderData<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['loaderData']> : never;
@@ -1,53 +0,0 @@
1
- import { InferFileRouteTypes } from './fileRoute.js';
2
- import { AddTrailingSlash, PartialMergeAll, RemoveTrailingSlashes, TrailingSlashOption } from '@tanstack/router-core';
3
- import { AnyRoute } from './route.js';
4
- import { AnyRouter } from './router.js';
5
- export type ParseRoute<TRouteTree, TAcc = TRouteTree> = TRouteTree extends {
6
- types: {
7
- children: infer TChildren;
8
- };
9
- } ? unknown extends TChildren ? TAcc : TChildren extends ReadonlyArray<any> ? ParseRoute<TChildren[number], TAcc | TChildren[number]> : ParseRoute<TChildren[keyof TChildren], TAcc | TChildren[keyof TChildren]> : TAcc;
10
- export type ParseRouteWithoutBranches<TRouteTree> = ParseRoute<TRouteTree> extends infer TRoute extends AnyRoute ? TRoute extends any ? unknown extends TRoute['types']['children'] ? TRoute : TRoute['types']['children'] extends ReadonlyArray<any> ? '/' extends TRoute['types']['children'][number]['path'] ? never : TRoute : '/' extends TRoute['types']['children'][keyof TRoute['types']['children']]['path'] ? never : TRoute : never : never;
11
- export type CodeRoutesById<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? {
12
- [K in TRoutes as K['id']]: K;
13
- } : never;
14
- export type RoutesById<TRouteTree extends AnyRoute> = InferFileRouteTypes<TRouteTree> extends never ? CodeRoutesById<TRouteTree> : InferFileRouteTypes<TRouteTree>['fileRoutesById'];
15
- export type RouteById<TRouteTree extends AnyRoute, TId> = Extract<RoutesById<TRouteTree>[TId & keyof RoutesById<TRouteTree>], AnyRoute>;
16
- export type CodeRouteIds<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? TRoutes['id'] : never;
17
- export type RouteIds<TRouteTree extends AnyRoute> = InferFileRouteTypes<TRouteTree> extends never ? CodeRouteIds<TRouteTree> : InferFileRouteTypes<TRouteTree>['id'];
18
- export type ParentPath<TRouter extends AnyRouter> = TrailingSlashOptionByRouter<TRouter> extends 'always' ? '../' : TrailingSlashOptionByRouter<TRouter> extends 'never' ? '..' : '../' | '..';
19
- export type CurrentPath<TRouter extends AnyRouter> = TrailingSlashOptionByRouter<TRouter> extends 'always' ? './' : TrailingSlashOptionByRouter<TRouter> extends 'never' ? '.' : './' | '.';
20
- export type ToPath<TRouter extends AnyRouter, TTo extends string> = TrailingSlashOptionByRouter<TRouter> extends 'always' ? AddTrailingSlash<TTo> : TrailingSlashOptionByRouter<TRouter> extends 'never' ? RemoveTrailingSlashes<TTo> : AddTrailingSlash<TTo> | RemoveTrailingSlashes<TTo>;
21
- export type CatchAllPaths<TRouter extends AnyRouter> = CurrentPath<TRouter> | ParentPath<TRouter>;
22
- export type CodeRoutesByPath<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? {
23
- [K in TRoutes as K['fullPath']]: K;
24
- } : never;
25
- export type RoutesByPath<TRouteTree extends AnyRoute> = InferFileRouteTypes<TRouteTree> extends never ? CodeRoutesByPath<TRouteTree> : InferFileRouteTypes<TRouteTree>['fileRoutesByFullPath'];
26
- export type RouteByPath<TRouteTree extends AnyRoute, TPath> = Extract<RoutesByPath<TRouteTree>[TPath & keyof RoutesByPath<TRouteTree>], AnyRoute>;
27
- export type CodeRoutePaths<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? TRoutes['fullPath'] : never;
28
- export type RoutePaths<TRouteTree extends AnyRoute> = unknown extends TRouteTree ? string : (InferFileRouteTypes<TRouteTree> extends never ? CodeRoutePaths<TRouteTree> : InferFileRouteTypes<TRouteTree>['fullPaths']) | '/';
29
- export type RouteToPathAlwaysTrailingSlash<TRoute extends AnyRoute> = TRoute['path'] extends '/' ? TRoute['fullPath'] : TRoute['fullPath'] extends '/' ? TRoute['fullPath'] : `${TRoute['fullPath']}/`;
30
- export type RouteToPathNeverTrailingSlash<TRoute extends AnyRoute> = TRoute['path'] extends '/' ? TRoute['fullPath'] extends '/' ? TRoute['fullPath'] : RemoveTrailingSlashes<TRoute['fullPath']> : TRoute['fullPath'];
31
- export type RouteToPathPreserveTrailingSlash<TRoute extends AnyRoute> = RouteToPathNeverTrailingSlash<TRoute> | RouteToPathAlwaysTrailingSlash<TRoute>;
32
- export type RouteToPathByTrailingSlashOption<TRoute extends AnyRoute> = {
33
- always: RouteToPathAlwaysTrailingSlash<TRoute>;
34
- preserve: RouteToPathPreserveTrailingSlash<TRoute>;
35
- never: RouteToPathNeverTrailingSlash<TRoute>;
36
- };
37
- export type TrailingSlashOptionByRouter<TRouter extends AnyRouter> = TrailingSlashOption extends TRouter['options']['trailingSlash'] ? 'never' : NonNullable<TRouter['options']['trailingSlash']>;
38
- export type RouteToByRouter<TRouter extends AnyRouter, TRoute extends AnyRoute> = RouteToPathByTrailingSlashOption<TRoute>[TrailingSlashOptionByRouter<TRouter>];
39
- export type CodeRouteToPath<TRouter extends AnyRouter> = ParseRouteWithoutBranches<TRouter['routeTree']> extends infer TRoute extends AnyRoute ? TRoute extends any ? RouteToByRouter<TRouter, TRoute> : never : never;
40
- export type FileRouteToPath<TRouter extends AnyRouter, TTo = InferFileRouteTypes<TRouter['routeTree']>['to'], TTrailingSlashOption = TrailingSlashOptionByRouter<TRouter>> = 'never' extends TTrailingSlashOption ? TTo : 'always' extends TTrailingSlashOption ? AddTrailingSlash<TTo> : TTo | AddTrailingSlash<TTo>;
41
- export type RouteToPath<TRouter extends AnyRouter> = unknown extends TRouter ? string : InferFileRouteTypes<TRouter['routeTree']> extends never ? CodeRouteToPath<TRouter> : FileRouteToPath<TRouter>;
42
- export type CodeRoutesByToPath<TRouter extends AnyRouter> = ParseRouteWithoutBranches<TRouter['routeTree']> extends infer TRoutes extends AnyRoute ? {
43
- [TRoute in TRoutes as RouteToByRouter<TRouter, TRoute>]: TRoute;
44
- } : never;
45
- export type RoutesByToPath<TRouter extends AnyRouter> = InferFileRouteTypes<TRouter['routeTree']> extends never ? CodeRoutesByToPath<TRouter> : InferFileRouteTypes<TRouter['routeTree']>['fileRoutesByTo'];
46
- export type CodeRouteByToPath<TRouter extends AnyRouter, TTo> = Extract<RoutesByToPath<TRouter>[TTo & keyof RoutesByToPath<TRouter>], AnyRoute>;
47
- export type FileRouteByToPath<TRouter extends AnyRouter, TTo> = 'never' extends TrailingSlashOptionByRouter<TRouter> ? CodeRouteByToPath<TRouter, TTo> : 'always' extends TrailingSlashOptionByRouter<TRouter> ? TTo extends '/' ? CodeRouteByToPath<TRouter, TTo> : TTo extends `${infer TPath}/` ? CodeRouteByToPath<TRouter, TPath> : never : CodeRouteByToPath<TRouter, TTo extends '/' ? TTo : RemoveTrailingSlashes<TTo>>;
48
- export type RouteByToPath<TRouter extends AnyRouter, TTo> = InferFileRouteTypes<TRouter['routeTree']> extends never ? CodeRouteByToPath<TRouter, TTo> : FileRouteByToPath<TRouter, TTo>;
49
- export type FullSearchSchema<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['fullSearchSchema']> : never;
50
- export type FullSearchSchemaInput<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['fullSearchSchemaInput']> : never;
51
- export type AllParams<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['allParams']> : never;
52
- export type AllContext<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['allContext']> : never;
53
- export type AllLoaderData<TRouteTree extends AnyRoute> = ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute ? PartialMergeAll<TRoutes['types']['loaderData']> : never;
package/src/routeInfo.ts DELETED
@@ -1,239 +0,0 @@
1
- import type { InferFileRouteTypes } from './fileRoute'
2
- import type {
3
- AddTrailingSlash,
4
- PartialMergeAll,
5
- RemoveTrailingSlashes,
6
- TrailingSlashOption,
7
- } from '@tanstack/router-core'
8
- import type { AnyRoute } from './route'
9
- import type { AnyRouter } from './router'
10
-
11
- export type ParseRoute<TRouteTree, TAcc = TRouteTree> = TRouteTree extends {
12
- types: { children: infer TChildren }
13
- }
14
- ? unknown extends TChildren
15
- ? TAcc
16
- : TChildren extends ReadonlyArray<any>
17
- ? ParseRoute<TChildren[number], TAcc | TChildren[number]>
18
- : ParseRoute<
19
- TChildren[keyof TChildren],
20
- TAcc | TChildren[keyof TChildren]
21
- >
22
- : TAcc
23
-
24
- export type ParseRouteWithoutBranches<TRouteTree> =
25
- ParseRoute<TRouteTree> extends infer TRoute extends AnyRoute
26
- ? TRoute extends any
27
- ? unknown extends TRoute['types']['children']
28
- ? TRoute
29
- : TRoute['types']['children'] extends ReadonlyArray<any>
30
- ? '/' extends TRoute['types']['children'][number]['path']
31
- ? never
32
- : TRoute
33
- : '/' extends TRoute['types']['children'][keyof TRoute['types']['children']]['path']
34
- ? never
35
- : TRoute
36
- : never
37
- : never
38
-
39
- export type CodeRoutesById<TRouteTree extends AnyRoute> =
40
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
41
- ? {
42
- [K in TRoutes as K['id']]: K
43
- }
44
- : never
45
-
46
- export type RoutesById<TRouteTree extends AnyRoute> =
47
- InferFileRouteTypes<TRouteTree> extends never
48
- ? CodeRoutesById<TRouteTree>
49
- : InferFileRouteTypes<TRouteTree>['fileRoutesById']
50
-
51
- export type RouteById<TRouteTree extends AnyRoute, TId> = Extract<
52
- RoutesById<TRouteTree>[TId & keyof RoutesById<TRouteTree>],
53
- AnyRoute
54
- >
55
-
56
- export type CodeRouteIds<TRouteTree extends AnyRoute> =
57
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
58
- ? TRoutes['id']
59
- : never
60
-
61
- export type RouteIds<TRouteTree extends AnyRoute> =
62
- InferFileRouteTypes<TRouteTree> extends never
63
- ? CodeRouteIds<TRouteTree>
64
- : InferFileRouteTypes<TRouteTree>['id']
65
-
66
- export type ParentPath<TRouter extends AnyRouter> =
67
- TrailingSlashOptionByRouter<TRouter> extends 'always'
68
- ? '../'
69
- : TrailingSlashOptionByRouter<TRouter> extends 'never'
70
- ? '..'
71
- : '../' | '..'
72
-
73
- export type CurrentPath<TRouter extends AnyRouter> =
74
- TrailingSlashOptionByRouter<TRouter> extends 'always'
75
- ? './'
76
- : TrailingSlashOptionByRouter<TRouter> extends 'never'
77
- ? '.'
78
- : './' | '.'
79
-
80
- export type ToPath<TRouter extends AnyRouter, TTo extends string> =
81
- TrailingSlashOptionByRouter<TRouter> extends 'always'
82
- ? AddTrailingSlash<TTo>
83
- : TrailingSlashOptionByRouter<TRouter> extends 'never'
84
- ? RemoveTrailingSlashes<TTo>
85
- : AddTrailingSlash<TTo> | RemoveTrailingSlashes<TTo>
86
-
87
- export type CatchAllPaths<TRouter extends AnyRouter> =
88
- | CurrentPath<TRouter>
89
- | ParentPath<TRouter>
90
-
91
- export type CodeRoutesByPath<TRouteTree extends AnyRoute> =
92
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
93
- ? {
94
- [K in TRoutes as K['fullPath']]: K
95
- }
96
- : never
97
-
98
- export type RoutesByPath<TRouteTree extends AnyRoute> =
99
- InferFileRouteTypes<TRouteTree> extends never
100
- ? CodeRoutesByPath<TRouteTree>
101
- : InferFileRouteTypes<TRouteTree>['fileRoutesByFullPath']
102
-
103
- export type RouteByPath<TRouteTree extends AnyRoute, TPath> = Extract<
104
- RoutesByPath<TRouteTree>[TPath & keyof RoutesByPath<TRouteTree>],
105
- AnyRoute
106
- >
107
-
108
- export type CodeRoutePaths<TRouteTree extends AnyRoute> =
109
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
110
- ? TRoutes['fullPath']
111
- : never
112
-
113
- export type RoutePaths<TRouteTree extends AnyRoute> = unknown extends TRouteTree
114
- ? string
115
- :
116
- | (InferFileRouteTypes<TRouteTree> extends never
117
- ? CodeRoutePaths<TRouteTree>
118
- : InferFileRouteTypes<TRouteTree>['fullPaths'])
119
- | '/'
120
-
121
- export type RouteToPathAlwaysTrailingSlash<TRoute extends AnyRoute> =
122
- TRoute['path'] extends '/'
123
- ? TRoute['fullPath']
124
- : TRoute['fullPath'] extends '/'
125
- ? TRoute['fullPath']
126
- : `${TRoute['fullPath']}/`
127
-
128
- export type RouteToPathNeverTrailingSlash<TRoute extends AnyRoute> =
129
- TRoute['path'] extends '/'
130
- ? TRoute['fullPath'] extends '/'
131
- ? TRoute['fullPath']
132
- : RemoveTrailingSlashes<TRoute['fullPath']>
133
- : TRoute['fullPath']
134
-
135
- export type RouteToPathPreserveTrailingSlash<TRoute extends AnyRoute> =
136
- | RouteToPathNeverTrailingSlash<TRoute>
137
- | RouteToPathAlwaysTrailingSlash<TRoute>
138
-
139
- export type RouteToPathByTrailingSlashOption<TRoute extends AnyRoute> = {
140
- always: RouteToPathAlwaysTrailingSlash<TRoute>
141
- preserve: RouteToPathPreserveTrailingSlash<TRoute>
142
- never: RouteToPathNeverTrailingSlash<TRoute>
143
- }
144
-
145
- export type TrailingSlashOptionByRouter<TRouter extends AnyRouter> =
146
- TrailingSlashOption extends TRouter['options']['trailingSlash']
147
- ? 'never'
148
- : NonNullable<TRouter['options']['trailingSlash']>
149
-
150
- export type RouteToByRouter<
151
- TRouter extends AnyRouter,
152
- TRoute extends AnyRoute,
153
- > = RouteToPathByTrailingSlashOption<TRoute>[TrailingSlashOptionByRouter<TRouter>]
154
-
155
- export type CodeRouteToPath<TRouter extends AnyRouter> =
156
- ParseRouteWithoutBranches<TRouter['routeTree']> extends infer TRoute extends
157
- AnyRoute
158
- ? TRoute extends any
159
- ? RouteToByRouter<TRouter, TRoute>
160
- : never
161
- : never
162
-
163
- export type FileRouteToPath<
164
- TRouter extends AnyRouter,
165
- TTo = InferFileRouteTypes<TRouter['routeTree']>['to'],
166
- TTrailingSlashOption = TrailingSlashOptionByRouter<TRouter>,
167
- > = 'never' extends TTrailingSlashOption
168
- ? TTo
169
- : 'always' extends TTrailingSlashOption
170
- ? AddTrailingSlash<TTo>
171
- : TTo | AddTrailingSlash<TTo>
172
-
173
- export type RouteToPath<TRouter extends AnyRouter> = unknown extends TRouter
174
- ? string
175
- : InferFileRouteTypes<TRouter['routeTree']> extends never
176
- ? CodeRouteToPath<TRouter>
177
- : FileRouteToPath<TRouter>
178
-
179
- export type CodeRoutesByToPath<TRouter extends AnyRouter> =
180
- ParseRouteWithoutBranches<TRouter['routeTree']> extends infer TRoutes extends
181
- AnyRoute
182
- ? {
183
- [TRoute in TRoutes as RouteToByRouter<TRouter, TRoute>]: TRoute
184
- }
185
- : never
186
-
187
- export type RoutesByToPath<TRouter extends AnyRouter> =
188
- InferFileRouteTypes<TRouter['routeTree']> extends never
189
- ? CodeRoutesByToPath<TRouter>
190
- : InferFileRouteTypes<TRouter['routeTree']>['fileRoutesByTo']
191
-
192
- export type CodeRouteByToPath<TRouter extends AnyRouter, TTo> = Extract<
193
- RoutesByToPath<TRouter>[TTo & keyof RoutesByToPath<TRouter>],
194
- AnyRoute
195
- >
196
-
197
- export type FileRouteByToPath<TRouter extends AnyRouter, TTo> =
198
- 'never' extends TrailingSlashOptionByRouter<TRouter>
199
- ? CodeRouteByToPath<TRouter, TTo>
200
- : 'always' extends TrailingSlashOptionByRouter<TRouter>
201
- ? TTo extends '/'
202
- ? CodeRouteByToPath<TRouter, TTo>
203
- : TTo extends `${infer TPath}/`
204
- ? CodeRouteByToPath<TRouter, TPath>
205
- : never
206
- : CodeRouteByToPath<
207
- TRouter,
208
- TTo extends '/' ? TTo : RemoveTrailingSlashes<TTo>
209
- >
210
-
211
- export type RouteByToPath<TRouter extends AnyRouter, TTo> =
212
- InferFileRouteTypes<TRouter['routeTree']> extends never
213
- ? CodeRouteByToPath<TRouter, TTo>
214
- : FileRouteByToPath<TRouter, TTo>
215
-
216
- export type FullSearchSchema<TRouteTree extends AnyRoute> =
217
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
218
- ? PartialMergeAll<TRoutes['types']['fullSearchSchema']>
219
- : never
220
-
221
- export type FullSearchSchemaInput<TRouteTree extends AnyRoute> =
222
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
223
- ? PartialMergeAll<TRoutes['types']['fullSearchSchemaInput']>
224
- : never
225
-
226
- export type AllParams<TRouteTree extends AnyRoute> =
227
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
228
- ? PartialMergeAll<TRoutes['types']['allParams']>
229
- : never
230
-
231
- export type AllContext<TRouteTree extends AnyRoute> =
232
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
233
- ? PartialMergeAll<TRoutes['types']['allContext']>
234
- : never
235
-
236
- export type AllLoaderData<TRouteTree extends AnyRoute> =
237
- ParseRoute<TRouteTree> extends infer TRoutes extends AnyRoute
238
- ? PartialMergeAll<TRoutes['types']['loaderData']>
239
- : never