@tanstack/react-router
Advanced tools
Comparing version 1.49.0 to 1.49.1
import { NoInfer } from '@tanstack/react-store'; | ||
import { ParsePathParams } from './link.js'; | ||
import { AnyContext, AnyPathParams, AnyRoute, AnySearchValidator, DefaultSearchValidator, FileBaseRouteOptions, ResolveAllParamsFromParent, ResolveLoaderData, Route, RouteConstraints, RouteLoaderFn, UpdatableRouteOptions } from './route.js'; | ||
import { AnyContext, AnyPathParams, AnyRoute, AnySearchValidator, DefaultSearchValidator, FileBaseRouteOptions, ResolveAllParamsFromParent, ResolveLoaderData, ResolveParams, Route, RouteConstraints, RouteLoaderFn, UpdatableRouteOptions } from './route.js'; | ||
import { MakeRouteMatch } from './Matches.js'; | ||
@@ -21,3 +20,3 @@ import { RegisteredRouter } from './router.js'; | ||
}); | ||
createRoute: <TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TParams = Record<ParsePathParams<TPath>, string>, TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown>(options?: FileBaseRouteOptions<TParentRoute, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderDataReturn, AnyContext, TRouteContextFn, TBeforeLoadFn> & UpdatableRouteOptions<TParentRoute, TId, TAllParams, TSearchValidator, TLoaderData, TLoaderDeps, AnyContext, TRouteContextFn, TBeforeLoadFn>) => Route<TParentRoute, TPath, TFullPath, TFilePath, TId, TSearchValidator, TParams, TAllParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren>; | ||
createRoute: <TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TParams = ResolveParams<TPath>, TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown>(options?: FileBaseRouteOptions<TParentRoute, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderDataReturn, AnyContext, TRouteContextFn, TBeforeLoadFn> & UpdatableRouteOptions<TParentRoute, TId, TAllParams, TSearchValidator, TLoaderData, TLoaderDeps, AnyContext, TRouteContextFn, TBeforeLoadFn>) => Route<TParentRoute, TPath, TFullPath, TFilePath, TId, TSearchValidator, TParams, TAllParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren>; | ||
} | ||
@@ -24,0 +23,0 @@ /** |
@@ -9,3 +9,3 @@ import { AnyRouter, ParsedLocation } from '.'; | ||
export type Split<TValue, TIncludeTrailingSlash = true> = TValue extends unknown ? string extends TValue ? Array<string> : TValue extends string ? CleanPath<TValue> extends '' ? [] : TIncludeTrailingSlash extends true ? CleanPath<TValue> extends `${infer T}/` ? [...Split<T>, '/'] : CleanPath<TValue> extends `/${infer U}` ? Split<U> : CleanPath<TValue> extends `${infer T}/${infer U}` ? [...Split<T>, ...Split<U>] : [TValue] : CleanPath<TValue> extends `${infer T}/${infer U}` ? [...Split<T>, ...Split<U>] : TValue extends string ? [TValue] : never : never : never; | ||
export type ParsePathParams<T extends string, TAcc = never> = T extends `${string}$${infer TPossiblyParam}` ? TPossiblyParam extends `${infer TParam}/${infer TRest}` ? ParsePathParams<TRest, TParam extends '' ? '_splat' : TParam | TAcc> : TPossiblyParam extends '' ? '_splat' : TPossiblyParam | TAcc : TAcc; | ||
export type ParsePathParams<T extends string, TAcc = never> = T extends `${string}$${string}` ? T extends `${string}$${infer TPossiblyParam}` ? TPossiblyParam extends `${string}/${string}` ? TPossiblyParam extends `${infer TParam}/${infer TRest}` ? ParsePathParams<TRest, TParam extends '' ? TAcc : TParam | TAcc> : never : TPossiblyParam extends '' ? TAcc : TPossiblyParam | TAcc : TAcc : TAcc; | ||
export type Join<T, TDelimiter extends string = '/'> = T extends [] ? '' : T extends [infer L extends string] ? L : T extends [ | ||
@@ -12,0 +12,0 @@ infer L extends string, |
@@ -199,11 +199,8 @@ import { last } from "./utils.js"; | ||
if (routeSegment.type === "wildcard") { | ||
if (baseSegment == null ? void 0 : baseSegment.value) { | ||
const _splat = decodeURI( | ||
joinPaths(baseSegments.slice(i).map((d) => d.value)) | ||
); | ||
params["*"] = _splat; | ||
params["_splat"] = _splat; | ||
return true; | ||
} | ||
return false; | ||
const _splat = decodeURI( | ||
joinPaths(baseSegments.slice(i).map((d) => d.value)) | ||
); | ||
params["*"] = _splat; | ||
params["_splat"] = _splat; | ||
return true; | ||
} | ||
@@ -210,0 +207,0 @@ if (routeSegment.type === "pathname") { |
@@ -36,4 +36,9 @@ import { RootRouteId } from './root.js'; | ||
export type RouteOptions<TParentRoute extends AnyRoute = AnyRoute, TCustomId extends string = string, TPath extends string = string, TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TParams = AnyPathParams, TAllParams = TParams, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TRouterContext = {}, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext> = BaseRouteOptions<TParentRoute, TCustomId, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderDataReturn, TRouterContext, TRouteContextFn, TBeforeLoadFn> & UpdatableRouteOptions<NoInfer<TParentRoute>, NoInfer<TCustomId>, NoInfer<TAllParams>, NoInfer<TSearchValidator>, NoInfer<TLoaderData>, NoInfer<TLoaderDeps>, NoInfer<TRouterContext>, NoInfer<TRouteContextFn>, NoInfer<TBeforeLoadFn>>; | ||
export type ParseParamsFn<TPath extends string, TParams> = (rawParams: Record<ParsePathParams<TPath>, string>) => TParams extends Record<ParsePathParams<TPath>, any> ? TParams : Record<ParsePathParams<TPath>, any>; | ||
export type StringifyParamsFn<TPath extends string, TParams> = (params: TParams) => Record<ParsePathParams<TPath>, string>; | ||
export type ParseSplatParams<TPath extends string> = TPath extends `${string}$` ? '_splat' : TPath extends `${string}$/${string}` ? '_splat' : never; | ||
export interface SplatParams { | ||
_splat?: string; | ||
} | ||
export type ResolveParams<TPath extends string> = ParseSplatParams<TPath> extends never ? Record<ParsePathParams<TPath>, string> : Record<ParsePathParams<TPath>, string> & SplatParams; | ||
export type ParseParamsFn<TPath extends string, TParams> = (rawParams: ResolveParams<TPath>) => TParams extends Record<ParsePathParams<TPath>, any> ? TParams : Record<ParsePathParams<TPath>, any>; | ||
export type StringifyParamsFn<TPath extends string, TParams> = (params: TParams) => ResolveParams<TPath>; | ||
export type ParamsOptions<TPath extends string, TParams> = { | ||
@@ -282,3 +287,3 @@ params?: { | ||
} | ||
export declare class Route<in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, in out TPath extends RouteConstraints['TPath'] = '/', in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, in out TCustomId extends RouteConstraints['TCustomId'] = string, in out TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, in out TSearchValidator extends AnySearchValidator = DefaultSearchValidator, in out TParams = Record<ParsePathParams<TPath>, string>, in out TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, in out TRouterContext = AnyContext, in out TRouteContextFn = AnyContext, in out TBeforeLoadFn = AnyContext, in out TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, in out TLoaderData = ResolveLoaderData<TLoaderDataReturn>, in out TChildren = unknown> { | ||
export declare class Route<in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, in out TPath extends RouteConstraints['TPath'] = '/', in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, in out TCustomId extends RouteConstraints['TCustomId'] = string, in out TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, in out TSearchValidator extends AnySearchValidator = DefaultSearchValidator, in out TParams = ResolveParams<TPath>, in out TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, in out TRouterContext = AnyContext, in out TRouteContextFn = AnyContext, in out TBeforeLoadFn = AnyContext, in out TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, in out TLoaderData = ResolveLoaderData<TLoaderDataReturn>, in out TChildren = unknown> { | ||
isRoot: TParentRoute extends Route<any> ? true : false; | ||
@@ -353,3 +358,3 @@ options: RouteOptions<TParentRoute, TCustomId, TPath, TSearchValidator, TParams, TAllParams, TLoaderDeps, TLoaderDataReturn, TLoaderData, TRouterContext, TRouteContextFn, TBeforeLoadFn>; | ||
} | ||
export declare function createRoute<TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, TPath extends RouteConstraints['TPath'] = '/', TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, TCustomId extends RouteConstraints['TCustomId'] = string, TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TParams = Record<ParsePathParams<TPath>, string>, TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown>(options: RouteOptions<TParentRoute, TCustomId, TPath, TSearchValidator, TParams, TAllParams, TLoaderDeps, TLoaderDataReturn, TLoaderData, AnyContext, TRouteContextFn, TBeforeLoadFn>): Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TAllParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren>; | ||
export declare function createRoute<TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, TPath extends RouteConstraints['TPath'] = '/', TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, TCustomId extends RouteConstraints['TCustomId'] = string, TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TParams = ResolveParams<TPath>, TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown>(options: RouteOptions<TParentRoute, TCustomId, TPath, TSearchValidator, TParams, TAllParams, TLoaderDeps, TLoaderDataReturn, TLoaderData, AnyContext, TRouteContextFn, TBeforeLoadFn>): Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TAllParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren>; | ||
export type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>; | ||
@@ -356,0 +361,0 @@ export type RootRouteOptions<TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TRouterContext = {}, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>> = Omit<RouteOptions<any, // TParentRoute |
{ | ||
"name": "@tanstack/react-router", | ||
"version": "1.49.0", | ||
"version": "1.49.1", | ||
"description": "Modern and scalable routing for React applications", | ||
@@ -5,0 +5,0 @@ "author": "Tanner Linsley", |
@@ -20,2 +20,3 @@ import warning from 'tiny-warning' | ||
ResolveLoaderData, | ||
ResolveParams, | ||
ResolveRouteContext, | ||
@@ -77,3 +78,3 @@ Route, | ||
TSearchValidator extends AnySearchValidator = DefaultSearchValidator, | ||
TParams = Record<ParsePathParams<TPath>, string>, | ||
TParams = ResolveParams<TPath>, | ||
TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, | ||
@@ -80,0 +81,0 @@ TRouteContextFn = AnyContext, |
@@ -340,12 +340,9 @@ import { last } from './utils' | ||
if (routeSegment.type === 'wildcard') { | ||
if (baseSegment?.value) { | ||
const _splat = decodeURI( | ||
joinPaths(baseSegments.slice(i).map((d) => d.value)), | ||
) | ||
// TODO: Deprecate * | ||
params['*'] = _splat | ||
params['_splat'] = _splat | ||
return true | ||
} | ||
return false | ||
const _splat = decodeURI( | ||
joinPaths(baseSegments.slice(i).map((d) => d.value)), | ||
) | ||
// TODO: Deprecate * | ||
params['*'] = _splat | ||
params['_splat'] = _splat | ||
return true | ||
} | ||
@@ -352,0 +349,0 @@ |
@@ -90,4 +90,19 @@ import invariant from 'tiny-invariant' | ||
export type ParseSplatParams<TPath extends string> = TPath extends `${string}$` | ||
? '_splat' | ||
: TPath extends `${string}$/${string}` | ||
? '_splat' | ||
: never | ||
export interface SplatParams { | ||
_splat?: string | ||
} | ||
export type ResolveParams<TPath extends string> = | ||
ParseSplatParams<TPath> extends never | ||
? Record<ParsePathParams<TPath>, string> | ||
: Record<ParsePathParams<TPath>, string> & SplatParams | ||
export type ParseParamsFn<TPath extends string, TParams> = ( | ||
rawParams: Record<ParsePathParams<TPath>, string>, | ||
rawParams: ResolveParams<TPath>, | ||
) => TParams extends Record<ParsePathParams<TPath>, any> | ||
@@ -99,3 +114,3 @@ ? TParams | ||
params: TParams, | ||
) => Record<ParsePathParams<TPath>, string> | ||
) => ResolveParams<TPath> | ||
@@ -822,3 +837,3 @@ export type ParamsOptions<TPath extends string, TParams> = { | ||
in out TSearchValidator extends AnySearchValidator = DefaultSearchValidator, | ||
in out TParams = Record<ParsePathParams<TPath>, string>, | ||
in out TParams = ResolveParams<TPath>, | ||
in out TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, | ||
@@ -1163,3 +1178,3 @@ in out TRouterContext = AnyContext, | ||
TSearchValidator extends AnySearchValidator = DefaultSearchValidator, | ||
TParams = Record<ParsePathParams<TPath>, string>, | ||
TParams = ResolveParams<TPath>, | ||
TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, | ||
@@ -1166,0 +1181,0 @@ TRouteContextFn = AnyContext, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1463723
18212