@tanstack/react-router 1.53.1 → 1.56.1
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/Matches.cjs.map +1 -1
- package/dist/cjs/Matches.d.cts +2 -2
- package/dist/cjs/RouterProvider.cjs.map +1 -1
- package/dist/cjs/RouterProvider.d.cts +2 -2
- package/dist/cjs/fileRoute.cjs.map +1 -1
- package/dist/cjs/fileRoute.d.cts +10 -1
- package/dist/cjs/index.d.cts +3 -3
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/link.d.cts +22 -21
- package/dist/cjs/redirects.cjs.map +1 -1
- package/dist/cjs/redirects.d.cts +2 -2
- package/dist/cjs/route.cjs +18 -2
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/route.d.cts +8 -5
- package/dist/cjs/routeInfo.d.cts +32 -21
- package/dist/cjs/router.cjs +4 -1
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/router.d.cts +2 -2
- package/dist/cjs/useLoaderData.cjs.map +1 -1
- package/dist/cjs/useLoaderData.d.cts +3 -3
- package/dist/cjs/useLoaderDeps.cjs.map +1 -1
- package/dist/cjs/useLoaderDeps.d.cts +2 -2
- package/dist/cjs/useMatch.cjs.map +1 -1
- package/dist/cjs/useMatch.d.cts +2 -2
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useNavigate.d.cts +2 -2
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useParams.d.cts +2 -2
- package/dist/cjs/useRouteContext.cjs.map +1 -1
- package/dist/cjs/useRouteContext.d.cts +2 -2
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/useSearch.d.cts +2 -2
- package/dist/esm/Matches.d.ts +2 -2
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/RouterProvider.d.ts +2 -2
- package/dist/esm/RouterProvider.js.map +1 -1
- package/dist/esm/fileRoute.d.ts +10 -1
- package/dist/esm/fileRoute.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/link.d.ts +22 -21
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/redirects.d.ts +2 -2
- package/dist/esm/redirects.js.map +1 -1
- package/dist/esm/route.d.ts +8 -5
- package/dist/esm/route.js +18 -2
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/routeInfo.d.ts +32 -21
- package/dist/esm/router.d.ts +2 -2
- package/dist/esm/router.js +4 -1
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/useLoaderData.d.ts +3 -3
- package/dist/esm/useLoaderData.js.map +1 -1
- package/dist/esm/useLoaderDeps.d.ts +2 -2
- package/dist/esm/useLoaderDeps.js.map +1 -1
- package/dist/esm/useMatch.d.ts +2 -2
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useNavigate.d.ts +2 -2
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useParams.d.ts +2 -2
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouteContext.d.ts +2 -2
- package/dist/esm/useRouteContext.js.map +1 -1
- package/dist/esm/useSearch.d.ts +2 -2
- package/dist/esm/useSearch.js.map +1 -1
- package/package.json +1 -1
- package/src/Matches.tsx +15 -22
- package/src/RouterProvider.tsx +4 -4
- package/src/fileRoute.ts +25 -1
- package/src/index.tsx +10 -1
- package/src/link.tsx +81 -76
- package/src/redirects.ts +8 -8
- package/src/route.ts +98 -9
- package/src/routeInfo.ts +116 -38
- package/src/router.ts +9 -5
- package/src/useLoaderData.tsx +3 -3
- package/src/useLoaderDeps.tsx +3 -3
- package/src/useMatch.tsx +9 -3
- package/src/useNavigate.tsx +5 -5
- package/src/useParams.tsx +10 -3
- package/src/useRouteContext.ts +8 -3
- package/src/useSearch.tsx +11 -4
|
@@ -2,8 +2,8 @@ import { RegisteredRouter } from './router.js';
|
|
|
2
2
|
import { AnyRoute } from './route.js';
|
|
3
3
|
import { MakeRouteMatch } from './Matches.js';
|
|
4
4
|
import { RouteIds } from './routeInfo.js';
|
|
5
|
-
import { StrictOrFrom } from './utils.js';
|
|
6
|
-
export type UseLoaderDataOptions<TRouteTree extends AnyRoute, TFrom, TStrict extends boolean, TRouteMatch extends MakeRouteMatch<TRouteTree, TFrom, TStrict>, TSelected> = StrictOrFrom<TFrom, TStrict> & {
|
|
5
|
+
import { Constrain, StrictOrFrom } from './utils.js';
|
|
6
|
+
export type UseLoaderDataOptions<TRouteTree extends AnyRoute, TFrom, TStrict extends boolean, TRouteMatch extends MakeRouteMatch<TRouteTree, TFrom, TStrict>, TSelected> = StrictOrFrom<Constrain<TFrom, RouteIds<TRouteTree>>, TStrict> & {
|
|
7
7
|
select?: (match: Required<TRouteMatch>['loaderData']) => TSelected;
|
|
8
8
|
};
|
|
9
|
-
export declare function useLoaderData<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends
|
|
9
|
+
export declare function useLoaderData<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends string | undefined = undefined, TStrict extends boolean = true, TRouteMatch extends MakeRouteMatch<TRouteTree, TFrom, TStrict> = MakeRouteMatch<TRouteTree, TFrom, TStrict>, TSelected = Required<TRouteMatch>['loaderData']>(opts: UseLoaderDataOptions<TRouteTree, TFrom, TStrict, TRouteMatch, TSelected>): TSelected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLoaderData.js","sources":["../../src/useLoaderData.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { RegisteredRouter } from './router'\nimport type { AnyRoute } from './route'\nimport type { MakeRouteMatch } from './Matches'\nimport type { RouteIds } from './routeInfo'\nimport type { StrictOrFrom } from './utils'\n\nexport type UseLoaderDataOptions<\n TRouteTree extends AnyRoute,\n TFrom,\n TStrict extends boolean,\n TRouteMatch extends MakeRouteMatch<TRouteTree, TFrom, TStrict>,\n TSelected,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (match: Required<TRouteMatch>['loaderData']) => TSelected\n}\n\nexport function useLoaderData<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends
|
|
1
|
+
{"version":3,"file":"useLoaderData.js","sources":["../../src/useLoaderData.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { RegisteredRouter } from './router'\nimport type { AnyRoute } from './route'\nimport type { MakeRouteMatch } from './Matches'\nimport type { RouteIds } from './routeInfo'\nimport type { Constrain, StrictOrFrom } from './utils'\n\nexport type UseLoaderDataOptions<\n TRouteTree extends AnyRoute,\n TFrom,\n TStrict extends boolean,\n TRouteMatch extends MakeRouteMatch<TRouteTree, TFrom, TStrict>,\n TSelected,\n> = StrictOrFrom<Constrain<TFrom, RouteIds<TRouteTree>>, TStrict> & {\n select?: (match: Required<TRouteMatch>['loaderData']) => TSelected\n}\n\nexport function useLoaderData<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TRouteMatch extends MakeRouteMatch<\n TRouteTree,\n TFrom,\n TStrict\n > = MakeRouteMatch<TRouteTree, TFrom, TStrict>,\n TSelected = Required<TRouteMatch>['loaderData'],\n>(\n opts: UseLoaderDataOptions<\n TRouteTree,\n TFrom,\n TStrict,\n TRouteMatch,\n TSelected\n >,\n): TSelected {\n return useMatch<TRouteTree, TFrom, TStrict, TRouteMatch, TSelected>({\n ...opts,\n select: (s) => {\n return typeof opts.select === 'function'\n ? opts.select(s.loaderData)\n : (s.loaderData as TSelected)\n },\n })\n}\n"],"names":[],"mappings":";AAiBO,SAAS,cAWd,MAOW;AACX,SAAO,SAA6D;AAAA,IAClE,GAAG;AAAA,IACH,QAAQ,CAAC,MAAM;AACN,aAAA,OAAO,KAAK,WAAW,aAC1B,KAAK,OAAO,EAAE,UAAU,IACvB,EAAE;AAAA,IACT;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -2,7 +2,7 @@ import { RegisteredRouter } from './router.js';
|
|
|
2
2
|
import { AnyRoute } from './route.js';
|
|
3
3
|
import { MakeRouteMatch } from './Matches.js';
|
|
4
4
|
import { RouteIds } from './routeInfo.js';
|
|
5
|
-
import { StrictOrFrom } from './utils.js';
|
|
6
|
-
export declare function useLoaderDeps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends
|
|
5
|
+
import { Constrain, StrictOrFrom } from './utils.js';
|
|
6
|
+
export declare function useLoaderDeps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends string | undefined = undefined, TRouteMatch extends MakeRouteMatch<TRouteTree, TFrom> = MakeRouteMatch<TRouteTree, TFrom>, TSelected = Required<TRouteMatch>['loaderDeps']>(opts: StrictOrFrom<Constrain<TFrom, RouteIds<TRouteTree>>> & {
|
|
7
7
|
select?: (match: TRouteMatch) => TSelected;
|
|
8
8
|
}): TSelected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLoaderDeps.js","sources":["../../src/useLoaderDeps.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { RegisteredRouter } from './router'\nimport type { AnyRoute } from './route'\nimport type { MakeRouteMatch } from './Matches'\nimport type { RouteIds } from './routeInfo'\nimport type { StrictOrFrom } from './utils'\n\nexport function useLoaderDeps<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends
|
|
1
|
+
{"version":3,"file":"useLoaderDeps.js","sources":["../../src/useLoaderDeps.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { RegisteredRouter } from './router'\nimport type { AnyRoute } from './route'\nimport type { MakeRouteMatch } from './Matches'\nimport type { RouteIds } from './routeInfo'\nimport type { Constrain, StrictOrFrom } from './utils'\n\nexport function useLoaderDeps<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends string | undefined = undefined,\n TRouteMatch extends MakeRouteMatch<TRouteTree, TFrom> = MakeRouteMatch<\n TRouteTree,\n TFrom\n >,\n TSelected = Required<TRouteMatch>['loaderDeps'],\n>(\n opts: StrictOrFrom<Constrain<TFrom, RouteIds<TRouteTree>>> & {\n select?: (match: TRouteMatch) => TSelected\n },\n): TSelected {\n return useMatch({\n ...opts,\n select: (s) => {\n return typeof opts.select === 'function'\n ? opts.select(s.loaderDeps)\n : s.loaderDeps\n },\n })\n}\n"],"names":[],"mappings":";AAOO,SAAS,cASd,MAGW;AACX,SAAO,SAAS;AAAA,IACd,GAAG;AAAA,IACH,QAAQ,CAAC,MAAM;AACN,aAAA,OAAO,KAAK,WAAW,aAC1B,KAAK,OAAO,EAAE,UAAU,IACxB,EAAE;AAAA,IACR;AAAA,EAAA,CACD;AACH;"}
|
package/dist/esm/useMatch.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import { RegisteredRouter } from './router.js';
|
|
|
2
2
|
import { AnyRoute } from './route.js';
|
|
3
3
|
import { MakeRouteMatch } from './Matches.js';
|
|
4
4
|
import { RouteIds } from './routeInfo.js';
|
|
5
|
-
import { StrictOrFrom } from './utils.js';
|
|
5
|
+
import { Constrain, StrictOrFrom } from './utils.js';
|
|
6
6
|
export type UseMatchOptions<TFrom, TStrict extends boolean, TRouteMatch, TSelected, TThrow extends boolean> = StrictOrFrom<TFrom, TStrict> & {
|
|
7
7
|
select?: (match: TRouteMatch) => TSelected;
|
|
8
8
|
shouldThrow?: TThrow;
|
|
9
9
|
};
|
|
10
|
-
export declare function useMatch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends
|
|
10
|
+
export declare function useMatch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends string | undefined = undefined, TStrict extends boolean = true, TRouteMatch = MakeRouteMatch<TRouteTree, TFrom, TStrict>, TSelected = TRouteMatch, TThrow extends boolean = true>(opts: UseMatchOptions<Constrain<TFrom, RouteIds<TRouteTree>>, TStrict, TRouteMatch, TSelected, TThrow>): TThrow extends true ? TSelected : TSelected | undefined;
|
package/dist/esm/useMatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMatch.js","sources":["../../src/useMatch.tsx"],"sourcesContent":["import * as React from 'react'\nimport invariant from 'tiny-invariant'\nimport { useRouterState } from './useRouterState'\nimport { matchContext } from './matchContext'\nimport type { RegisteredRouter } from './router'\nimport type { AnyRoute } from './route'\nimport type { MakeRouteMatch } from './Matches'\nimport type { RouteIds } from './routeInfo'\nimport type { StrictOrFrom } from './utils'\n\nexport type UseMatchOptions<\n TFrom,\n TStrict extends boolean,\n TRouteMatch,\n TSelected,\n TThrow extends boolean,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (match: TRouteMatch) => TSelected\n shouldThrow?: TThrow\n}\n\nexport function useMatch<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends
|
|
1
|
+
{"version":3,"file":"useMatch.js","sources":["../../src/useMatch.tsx"],"sourcesContent":["import * as React from 'react'\nimport invariant from 'tiny-invariant'\nimport { useRouterState } from './useRouterState'\nimport { matchContext } from './matchContext'\nimport type { RegisteredRouter } from './router'\nimport type { AnyRoute } from './route'\nimport type { MakeRouteMatch } from './Matches'\nimport type { RouteIds } from './routeInfo'\nimport type { Constrain, StrictOrFrom } from './utils'\n\nexport type UseMatchOptions<\n TFrom,\n TStrict extends boolean,\n TRouteMatch,\n TSelected,\n TThrow extends boolean,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (match: TRouteMatch) => TSelected\n shouldThrow?: TThrow\n}\n\nexport function useMatch<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TRouteMatch = MakeRouteMatch<TRouteTree, TFrom, TStrict>,\n TSelected = TRouteMatch,\n TThrow extends boolean = true,\n>(\n opts: UseMatchOptions<\n Constrain<TFrom, RouteIds<TRouteTree>>,\n TStrict,\n TRouteMatch,\n TSelected,\n TThrow\n >,\n): TThrow extends true ? TSelected : TSelected | undefined {\n const nearestMatchId = React.useContext(matchContext)\n\n const matchSelection = useRouterState({\n select: (state) => {\n const match = state.matches.find((d) =>\n opts.from ? opts.from === d.routeId : d.id === nearestMatchId,\n )\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`,\n )\n\n if (match === undefined) {\n return undefined\n }\n\n return opts.select ? opts.select(match as any) : match\n },\n })\n\n return matchSelection as TSelected\n}\n"],"names":[],"mappings":";;;;AAqBO,SAAS,SAQd,MAOyD;AACnD,QAAA,iBAAiB,MAAM,WAAW,YAAY;AAEpD,QAAM,iBAAiB,eAAe;AAAA,IACpC,QAAQ,CAAC,UAAU;AACX,YAAA,QAAQ,MAAM,QAAQ;AAAA,QAAK,CAAC,MAChC,KAAK,OAAO,KAAK,SAAS,EAAE,UAAU,EAAE,OAAO;AAAA,MAAA;AAEjD;AAAA,QACE,GAAG,KAAK,eAAe,SAAS,CAAC;AAAA,QACjC,kBAAkB,KAAK,OAAO,yBAAyB,KAAK,IAAI,MAAM,kBAAkB;AAAA,MAAA;AAG1F,UAAI,UAAU,QAAW;AAChB,eAAA;AAAA,MACT;AAEA,aAAO,KAAK,SAAS,KAAK,OAAO,KAAY,IAAI;AAAA,IACnD;AAAA,EAAA,CACD;AAEM,SAAA;AACT;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FromPathOption, NavigateOptions } from './link.js';
|
|
2
2
|
import { RoutePaths } from './routeInfo.js';
|
|
3
3
|
import { AnyRouter, RegisteredRouter } from './router.js';
|
|
4
|
-
export type UseNavigateResult<TDefaultFrom extends string> = <
|
|
4
|
+
export type UseNavigateResult<TDefaultFrom extends string> = <TRouter extends RegisteredRouter, TTo extends string | undefined, TFrom extends string = TDefaultFrom, TMaskFrom extends string = TFrom, TMaskTo extends string = ''>({ from, ...rest }: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>;
|
|
5
5
|
export declare function useNavigate<TRouter extends AnyRouter = RegisteredRouter, TDefaultFrom extends string = string>(_defaultOpts?: {
|
|
6
6
|
from?: FromPathOption<TRouter, TDefaultFrom>;
|
|
7
7
|
}): UseNavigateResult<TDefaultFrom>;
|
|
8
|
-
export declare function Navigate<TRouter extends AnyRouter = RegisteredRouter, TFrom extends RoutePaths<TRouter['routeTree']> | string = string, TTo extends string =
|
|
8
|
+
export declare function Navigate<TRouter extends AnyRouter = RegisteredRouter, TFrom extends RoutePaths<TRouter['routeTree']> | string = string, TTo extends string | undefined = undefined, TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom, TMaskTo extends string = ''>(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigate.js","sources":["../../src/useNavigate.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useRouter } from './useRouter'\nimport type { FromPathOption, NavigateOptions } from './link'\nimport type { RoutePaths } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\n\nexport type UseNavigateResult<TDefaultFrom extends string> = <\n
|
|
1
|
+
{"version":3,"file":"useNavigate.js","sources":["../../src/useNavigate.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useRouter } from './useRouter'\nimport type { FromPathOption, NavigateOptions } from './link'\nimport type { RoutePaths } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\n\nexport type UseNavigateResult<TDefaultFrom extends string> = <\n TRouter extends RegisteredRouter,\n TTo extends string | undefined,\n TFrom extends string = TDefaultFrom,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n>({\n from,\n ...rest\n}: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>\n\nexport function useNavigate<\n TRouter extends AnyRouter = RegisteredRouter,\n TDefaultFrom extends string = string,\n>(_defaultOpts?: {\n from?: FromPathOption<TRouter, TDefaultFrom>\n}): UseNavigateResult<TDefaultFrom> {\n const { navigate } = useRouter()\n\n return React.useCallback(\n (options: NavigateOptions) => {\n return navigate({\n ...options,\n })\n },\n [navigate],\n ) as UseNavigateResult<TDefaultFrom>\n}\n\n// NOTE: I don't know of anyone using this. It's undocumented, so let's wait until someone needs it\n// export function typedNavigate<\n// TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n// TDefaultFrom extends RoutePaths<TRouteTree> = '/',\n// >(navigate: (opts: NavigateOptions<any>) => Promise<void>) {\n// return navigate as <\n// TFrom extends RoutePaths<TRouteTree> = TDefaultFrom,\n// TTo extends string = '',\n// TMaskFrom extends RoutePaths<TRouteTree> = '/',\n// TMaskTo extends string = '',\n// >(\n// opts?: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n// ) => Promise<void>\n// } //\n\nexport function Navigate<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends RoutePaths<TRouter['routeTree']> | string = string,\n TTo extends string | undefined = undefined,\n TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,\n TMaskTo extends string = '',\n>(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null {\n const { navigate } = useRouter()\n\n React.useEffect(() => {\n navigate({\n ...props,\n } as any)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return null\n}\n"],"names":[],"mappings":";;AAiBO,SAAS,YAGd,cAEkC;AAC5B,QAAA,EAAE,aAAa;AAErB,SAAO,MAAM;AAAA,IACX,CAAC,YAA6B;AAC5B,aAAO,SAAS;AAAA,QACd,GAAG;AAAA,MAAA,CACJ;AAAA,IACH;AAAA,IACA,CAAC,QAAQ;AAAA,EAAA;AAEb;AAiBO,SAAS,SAMd,OAAuE;AACjE,QAAA,EAAE,aAAa;AAErB,QAAM,UAAU,MAAM;AACX,aAAA;AAAA,MACP,GAAG;AAAA,IAAA,CACG;AAAA,EAEV,GAAG,CAAE,CAAA;AAEE,SAAA;AACT;"}
|
package/dist/esm/useParams.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AnyRoute } from './route.js';
|
|
2
2
|
import { AllParams, RouteById, RouteIds } from './routeInfo.js';
|
|
3
3
|
import { RegisteredRouter } from './router.js';
|
|
4
|
-
import { StrictOrFrom } from './utils.js';
|
|
4
|
+
import { Constrain, StrictOrFrom } from './utils.js';
|
|
5
5
|
export type UseParamsOptions<TFrom, TStrict extends boolean, TParams, TSelected> = StrictOrFrom<TFrom, TStrict> & {
|
|
6
6
|
select?: (params: TParams) => TSelected;
|
|
7
7
|
};
|
|
8
|
-
export declare function useParams<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends
|
|
8
|
+
export declare function useParams<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends string | undefined = undefined, TStrict extends boolean = true, TParams = TStrict extends false ? AllParams<TRouteTree> : RouteById<TRouteTree, TFrom>['types']['allParams'], TSelected = TParams>(opts: UseParamsOptions<Constrain<TFrom, RouteIds<TRouteTree>>, TStrict, TParams, TSelected>): TSelected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useParams.js","sources":["../../src/useParams.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { AnyRoute } from './route'\nimport type { AllParams, RouteById, RouteIds } from './routeInfo'\nimport type { RegisteredRouter } from './router'\nimport type { StrictOrFrom } from './utils'\n\nexport type UseParamsOptions<\n TFrom,\n TStrict extends boolean,\n TParams,\n TSelected,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (params: TParams) => TSelected\n}\n\nexport function useParams<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends
|
|
1
|
+
{"version":3,"file":"useParams.js","sources":["../../src/useParams.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { AnyRoute } from './route'\nimport type { AllParams, RouteById, RouteIds } from './routeInfo'\nimport type { RegisteredRouter } from './router'\nimport type { Constrain, StrictOrFrom } from './utils'\n\nexport type UseParamsOptions<\n TFrom,\n TStrict extends boolean,\n TParams,\n TSelected,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (params: TParams) => TSelected\n}\n\nexport function useParams<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TParams = TStrict extends false\n ? AllParams<TRouteTree>\n : RouteById<TRouteTree, TFrom>['types']['allParams'],\n TSelected = TParams,\n>(\n opts: UseParamsOptions<\n Constrain<TFrom, RouteIds<TRouteTree>>,\n TStrict,\n TParams,\n TSelected\n >,\n): TSelected {\n return useMatch({\n ...opts,\n select: (match) => {\n return opts.select ? opts.select(match.params as TParams) : match.params\n },\n }) as TSelected\n}\n"],"names":[],"mappings":";AAeO,SAAS,UASd,MAMW;AACX,SAAO,SAAS;AAAA,IACd,GAAG;AAAA,IACH,QAAQ,CAAC,UAAU;AACjB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAiB,IAAI,MAAM;AAAA,IACpE;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AnyRoute } from './route.js';
|
|
2
2
|
import { AllContext, RouteById, RouteIds } from './routeInfo.js';
|
|
3
3
|
import { RegisteredRouter } from './router.js';
|
|
4
|
-
import { Expand, StrictOrFrom } from './utils.js';
|
|
4
|
+
import { Constrain, Expand, StrictOrFrom } from './utils.js';
|
|
5
5
|
export type UseRouteContextOptions<TFrom, TStrict extends boolean, TRouteContext, TSelected> = StrictOrFrom<TFrom, TStrict> & {
|
|
6
6
|
select?: (search: TRouteContext) => TSelected;
|
|
7
7
|
};
|
|
8
|
-
export declare function useRouteContext<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends
|
|
8
|
+
export declare function useRouteContext<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends string | undefined = undefined, TStrict extends boolean = true, TRouteContext = TStrict extends false ? AllContext<TRouteTree> : Expand<RouteById<TRouteTree, TFrom>['types']['allContext']>, TSelected = TRouteContext>(opts: UseRouteContextOptions<Constrain<TFrom, RouteIds<TRouteTree>>, TStrict, TRouteContext, TSelected>): TSelected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouteContext.js","sources":["../../src/useRouteContext.ts"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { MakeRouteMatch } from './Matches'\nimport type { AnyRoute } from './route'\nimport type { AllContext, RouteById, RouteIds } from './routeInfo'\nimport type { RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport type UseRouteContextOptions<\n TFrom,\n TStrict extends boolean,\n TRouteContext,\n TSelected,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (search: TRouteContext) => TSelected\n}\n\nexport function useRouteContext<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends
|
|
1
|
+
{"version":3,"file":"useRouteContext.js","sources":["../../src/useRouteContext.ts"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { MakeRouteMatch } from './Matches'\nimport type { AnyRoute } from './route'\nimport type { AllContext, RouteById, RouteIds } from './routeInfo'\nimport type { RegisteredRouter } from './router'\nimport type { Constrain, Expand, StrictOrFrom } from './utils'\n\nexport type UseRouteContextOptions<\n TFrom,\n TStrict extends boolean,\n TRouteContext,\n TSelected,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (search: TRouteContext) => TSelected\n}\n\nexport function useRouteContext<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TRouteContext = TStrict extends false\n ? AllContext<TRouteTree>\n : Expand<RouteById<TRouteTree, TFrom>['types']['allContext']>,\n TSelected = TRouteContext,\n>(\n opts: UseRouteContextOptions<\n Constrain<TFrom, RouteIds<TRouteTree>>,\n TStrict,\n TRouteContext,\n TSelected\n >,\n): TSelected {\n return useMatch({\n ...(opts as any),\n select: (match: MakeRouteMatch<TRouteTree, TFrom>) =>\n opts.select ? opts.select(match.context) : match.context,\n })\n}\n"],"names":[],"mappings":";AAgBO,SAAS,gBASd,MAMW;AACX,SAAO,SAAS;AAAA,IACd,GAAI;AAAA,IACJ,QAAQ,CAAC,UACP,KAAK,SAAS,KAAK,OAAO,MAAM,OAAO,IAAI,MAAM;AAAA,EAAA,CACpD;AACH;"}
|
package/dist/esm/useSearch.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AnyRoute } from './route.js';
|
|
2
2
|
import { FullSearchSchema, RouteById, RouteIds } from './routeInfo.js';
|
|
3
3
|
import { RegisteredRouter } from './router.js';
|
|
4
|
-
import { Expand, StrictOrFrom } from './utils.js';
|
|
4
|
+
import { Constrain, Expand, StrictOrFrom } from './utils.js';
|
|
5
5
|
export type UseSearchOptions<TFrom, TStrict extends boolean, TSearch, TSelected> = StrictOrFrom<TFrom, TStrict> & {
|
|
6
6
|
select?: (search: TSearch) => TSelected;
|
|
7
7
|
};
|
|
8
|
-
export declare function useSearch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends
|
|
8
|
+
export declare function useSearch<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSearch = TStrict extends false ? FullSearchSchema<TRouteTree> : Expand<RouteById<TRouteTree, TFrom>['types']['fullSearchSchema']>, TSelected = TSearch>(opts: UseSearchOptions<Constrain<TFrom, RouteIds<TRouteTree>>, TStrict, TSearch, TSelected>): TSelected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearch.js","sources":["../../src/useSearch.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { AnyRoute } from './route'\nimport type { FullSearchSchema, RouteById, RouteIds } from './routeInfo'\nimport type { RegisteredRouter } from './router'\nimport type { MakeRouteMatch } from './Matches'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport type UseSearchOptions<\n TFrom,\n TStrict extends boolean,\n TSearch,\n TSelected,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (search: TSearch) => TSelected\n}\n\nexport function useSearch<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends
|
|
1
|
+
{"version":3,"file":"useSearch.js","sources":["../../src/useSearch.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { AnyRoute } from './route'\nimport type { FullSearchSchema, RouteById, RouteIds } from './routeInfo'\nimport type { RegisteredRouter } from './router'\nimport type { MakeRouteMatch } from './Matches'\nimport type { Constrain, Expand, StrictOrFrom } from './utils'\n\nexport type UseSearchOptions<\n TFrom,\n TStrict extends boolean,\n TSearch,\n TSelected,\n> = StrictOrFrom<TFrom, TStrict> & {\n select?: (search: TSearch) => TSelected\n}\n\nexport function useSearch<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSearch = TStrict extends false\n ? FullSearchSchema<TRouteTree>\n : Expand<RouteById<TRouteTree, TFrom>['types']['fullSearchSchema']>,\n TSelected = TSearch,\n>(\n opts: UseSearchOptions<\n Constrain<TFrom, RouteIds<TRouteTree>>,\n TStrict,\n TSearch,\n TSelected\n >,\n): TSelected {\n return useMatch({\n ...opts,\n select: (match) => {\n return opts.select ? opts.select(match.search) : match.search\n },\n })\n}\n"],"names":[],"mappings":";AAgBO,SAAS,UASd,MAMW;AACX,SAAO,SAAS;AAAA,IACd,GAAG;AAAA,IACH,QAAQ,CAAC,UAAU;AACjB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IACzD;AAAA,EAAA,CACD;AACH;"}
|
package/package.json
CHANGED
package/src/Matches.tsx
CHANGED
|
@@ -169,31 +169,24 @@ export interface RouteMatch<
|
|
|
169
169
|
|
|
170
170
|
export type MakeRouteMatch<
|
|
171
171
|
TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],
|
|
172
|
-
TRouteId =
|
|
172
|
+
TRouteId = RouteIds<TRouteTree>,
|
|
173
173
|
TStrict extends boolean = true,
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
174
|
+
> = RouteMatch<
|
|
175
|
+
TRouteId,
|
|
176
|
+
RouteById<TRouteTree, TRouteId>['types']['fullPath'],
|
|
177
|
+
TStrict extends false
|
|
177
178
|
? AllParams<TRouteTree>
|
|
178
|
-
:
|
|
179
|
-
|
|
179
|
+
: RouteById<TRouteTree, TRouteId>['types']['allParams'],
|
|
180
|
+
TStrict extends false
|
|
180
181
|
? FullSearchSchema<TRouteTree>
|
|
181
|
-
:
|
|
182
|
-
|
|
182
|
+
: RouteById<TRouteTree, TRouteId>['types']['fullSearchSchema'],
|
|
183
|
+
TStrict extends false
|
|
183
184
|
? AllLoaderData<TRouteTree>
|
|
184
|
-
:
|
|
185
|
-
|
|
185
|
+
: RouteById<TRouteTree, TRouteId>['types']['loaderData'],
|
|
186
|
+
TStrict extends false
|
|
186
187
|
? AllContext<TRouteTree>
|
|
187
|
-
:
|
|
188
|
-
|
|
189
|
-
> = RouteMatch<
|
|
190
|
-
TRouteId,
|
|
191
|
-
TFullPath,
|
|
192
|
-
TAllParams,
|
|
193
|
-
TFullSearchSchema,
|
|
194
|
-
TLoaderData,
|
|
195
|
-
TAllContext,
|
|
196
|
-
TLoaderDeps
|
|
188
|
+
: RouteById<TRouteTree, TRouteId>['types']['allContext'],
|
|
189
|
+
RouteById<TRouteTree, TRouteId>['types']['loaderDeps']
|
|
197
190
|
>
|
|
198
191
|
|
|
199
192
|
export type AnyRouteMatch = RouteMatch<any, any, any, any, any, any, any>
|
|
@@ -264,11 +257,11 @@ export interface MatchRouteOptions {
|
|
|
264
257
|
|
|
265
258
|
export type UseMatchRouteOptions<
|
|
266
259
|
TRouter extends AnyRouter = RegisteredRouter,
|
|
267
|
-
TFrom extends RoutePaths<TRouter['routeTree']> = RoutePaths<
|
|
260
|
+
TFrom extends RoutePaths<TRouter['routeTree']> | string = RoutePaths<
|
|
268
261
|
TRouter['routeTree']
|
|
269
262
|
>,
|
|
270
263
|
TTo extends string = '',
|
|
271
|
-
TMaskFrom extends RoutePaths<TRouter['routeTree']> = TFrom,
|
|
264
|
+
TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
|
|
272
265
|
TMaskTo extends string = '',
|
|
273
266
|
TOptions extends ToOptions<
|
|
274
267
|
TRouter,
|
package/src/RouterProvider.tsx
CHANGED
|
@@ -30,8 +30,8 @@ export interface MatchLocation {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export type NavigateFn = <
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
TRouter extends RegisteredRouter,
|
|
34
|
+
TTo extends string | undefined,
|
|
35
35
|
TFrom extends RoutePaths<TRouter['routeTree']> | string = string,
|
|
36
36
|
TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
|
|
37
37
|
TMaskTo extends string = '',
|
|
@@ -42,8 +42,8 @@ export type NavigateFn = <
|
|
|
42
42
|
) => Promise<void>
|
|
43
43
|
|
|
44
44
|
export type BuildLocationFn = <
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
TRouter extends RegisteredRouter,
|
|
46
|
+
TTo extends string | undefined,
|
|
47
47
|
TFrom extends RoutePaths<TRouter['routeTree']> | string = string,
|
|
48
48
|
TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
|
|
49
49
|
TMaskTo extends string = '',
|
package/src/fileRoute.ts
CHANGED
|
@@ -14,13 +14,14 @@ import type {
|
|
|
14
14
|
AnySearchValidator,
|
|
15
15
|
FileBaseRouteOptions,
|
|
16
16
|
ResolveParams,
|
|
17
|
+
RootRoute,
|
|
17
18
|
Route,
|
|
18
19
|
RouteConstraints,
|
|
19
20
|
RouteLoaderFn,
|
|
20
21
|
UpdatableRouteOptions,
|
|
21
22
|
} from './route'
|
|
22
23
|
import type { MakeRouteMatch } from './Matches'
|
|
23
|
-
import type { RegisteredRouter } from './router'
|
|
24
|
+
import type { AnyRouter, RegisteredRouter } from './router'
|
|
24
25
|
import type { RouteById, RouteIds } from './routeInfo'
|
|
25
26
|
|
|
26
27
|
export interface FileRoutesByPath {
|
|
@@ -29,6 +30,29 @@ export interface FileRoutesByPath {
|
|
|
29
30
|
// }
|
|
30
31
|
}
|
|
31
32
|
|
|
33
|
+
export interface FileRouteTypes {
|
|
34
|
+
fileRoutesByFullPath: any
|
|
35
|
+
fullPaths: any
|
|
36
|
+
to: any
|
|
37
|
+
fileRoutesByTo: any
|
|
38
|
+
id: any
|
|
39
|
+
fileRoutesById: any
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type InferFileRouteTypes<TRouteTree extends AnyRoute> =
|
|
43
|
+
TRouteTree extends RootRoute<
|
|
44
|
+
any,
|
|
45
|
+
any,
|
|
46
|
+
any,
|
|
47
|
+
any,
|
|
48
|
+
any,
|
|
49
|
+
any,
|
|
50
|
+
any,
|
|
51
|
+
infer TFileRouteTypes extends FileRouteTypes
|
|
52
|
+
>
|
|
53
|
+
? TFileRouteTypes
|
|
54
|
+
: never
|
|
55
|
+
|
|
32
56
|
export function createFileRoute<
|
|
33
57
|
TFilePath extends keyof FileRoutesByPath,
|
|
34
58
|
TParentRoute extends AnyRoute = FileRoutesByPath[TFilePath]['parentRoute'],
|
package/src/index.tsx
CHANGED
|
@@ -32,7 +32,11 @@ export {
|
|
|
32
32
|
createLazyRoute,
|
|
33
33
|
createLazyFileRoute,
|
|
34
34
|
} from './fileRoute'
|
|
35
|
-
export type {
|
|
35
|
+
export type {
|
|
36
|
+
FileRoutesByPath,
|
|
37
|
+
FileRouteTypes,
|
|
38
|
+
LazyRouteOptions,
|
|
39
|
+
} from './fileRoute'
|
|
36
40
|
|
|
37
41
|
export * from './history'
|
|
38
42
|
|
|
@@ -88,6 +92,8 @@ export type {
|
|
|
88
92
|
MatchRouteOptions,
|
|
89
93
|
UseMatchRouteOptions,
|
|
90
94
|
MakeMatchRouteOptions,
|
|
95
|
+
MakeRouteMatch,
|
|
96
|
+
MakeRouteMatchUnion,
|
|
91
97
|
} from './Matches'
|
|
92
98
|
|
|
93
99
|
export { matchContext } from './matchContext'
|
|
@@ -230,6 +236,9 @@ export type {
|
|
|
230
236
|
RoutePaths,
|
|
231
237
|
FullSearchSchema,
|
|
232
238
|
AllParams,
|
|
239
|
+
AllLoaderData,
|
|
240
|
+
FullSearchSchemaInput,
|
|
241
|
+
AllContext,
|
|
233
242
|
} from './routeInfo'
|
|
234
243
|
|
|
235
244
|
export {
|