Files
SnowLuma/.pnpm-store/v11/files/a7/a7c185d715826f6c9242932a81dda9c74ae91bdc74c5a7d5e319fd08b17b7c60063175784830d525397e2bbb05896cf48c2a7c3bd392c47607f44df5432650
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

182 lines
4.0 KiB
Plaintext

import type {
FromPathOption,
NavigateOptions,
PathParamOptions,
SearchParamOptions,
ToPathOption,
} from './link'
import type { RedirectOptions } from './redirect'
import type { RouteIds } from './routeInfo'
import type { AnyRouter, RegisteredRouter } from './router'
import type { UseParamsResult } from './useParams'
import type { UseSearchResult } from './useSearch'
import type { Constrain, ConstrainLiteral } from './utils'
export type ValidateFromPath<
TRouter extends AnyRouter = RegisteredRouter,
TFrom = string,
> = FromPathOption<TRouter, TFrom>
export type ValidateToPath<
TRouter extends AnyRouter = RegisteredRouter,
TTo extends string | undefined = undefined,
TFrom extends string = string,
> = ToPathOption<TRouter, TFrom, TTo>
export type ValidateSearch<
TRouter extends AnyRouter = RegisteredRouter,
TTo extends string | undefined = undefined,
TFrom extends string = string,
> = SearchParamOptions<TRouter, TFrom, TTo>
export type ValidateParams<
TRouter extends AnyRouter = RegisteredRouter,
TTo extends string | undefined = undefined,
TFrom extends string = string,
> = PathParamOptions<TRouter, TFrom, TTo>
/**
* @private
*/
export type InferFrom<
TOptions,
TDefaultFrom extends string = string,
> = TOptions extends {
from: infer TFrom extends string
}
? TFrom
: TDefaultFrom
/**
* @private
*/
export type InferTo<TOptions> = TOptions extends {
to: infer TTo extends string
}
? TTo
: undefined
/**
* @private
*/
export type InferMaskTo<TOptions> = TOptions extends {
mask: { to: infer TTo extends string }
}
? TTo
: ''
export type InferMaskFrom<TOptions> = TOptions extends {
mask: { from: infer TFrom extends string }
}
? TFrom
: string
export type ValidateNavigateOptions<
TRouter extends AnyRouter = RegisteredRouter,
TOptions = unknown,
TDefaultFrom extends string = string,
> = Constrain<
TOptions,
NavigateOptions<
TRouter,
InferFrom<TOptions, TDefaultFrom>,
InferTo<TOptions>,
InferMaskFrom<TOptions>,
InferMaskTo<TOptions>
>
>
export type ValidateNavigateOptionsArray<
TRouter extends AnyRouter = RegisteredRouter,
TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,
TDefaultFrom extends string = string,
> = {
[K in keyof TOptions]: ValidateNavigateOptions<
TRouter,
TOptions[K],
TDefaultFrom
>
}
export type ValidateRedirectOptions<
TRouter extends AnyRouter = RegisteredRouter,
TOptions = unknown,
TDefaultFrom extends string = string,
> = Constrain<
TOptions,
RedirectOptions<
TRouter,
InferFrom<TOptions, TDefaultFrom>,
InferTo<TOptions>,
InferMaskFrom<TOptions>,
InferMaskTo<TOptions>
>
>
export type ValidateRedirectOptionsArray<
TRouter extends AnyRouter = RegisteredRouter,
TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,
TDefaultFrom extends string = string,
> = {
[K in keyof TOptions]: ValidateRedirectOptions<
TRouter,
TOptions[K],
TDefaultFrom
>
}
export type ValidateId<
TRouter extends AnyRouter = RegisteredRouter,
TId extends string = string,
> = ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>
/**
* @private
*/
export type InferStrict<TOptions> = TOptions extends {
strict: infer TStrict extends boolean
}
? TStrict
: true
/**
* @private
*/
export type InferShouldThrow<TOptions> = TOptions extends {
shouldThrow: infer TShouldThrow extends boolean
}
? TShouldThrow
: true
/**
* @private
*/
export type InferSelected<TOptions> = TOptions extends {
select: (...args: Array<any>) => infer TSelected
}
? TSelected
: unknown
export type ValidateUseSearchResult<
TOptions,
TRouter extends AnyRouter = RegisteredRouter,
> = UseSearchResult<
TRouter,
InferFrom<TOptions>,
InferStrict<TOptions>,
InferSelected<TOptions>
>
export type ValidateUseParamsResult<
TOptions,
TRouter extends AnyRouter = RegisteredRouter,
> = Constrain<
TOptions,
UseParamsResult<
TRouter,
InferFrom<TOptions>,
InferStrict<TOptions>,
InferSelected<TOptions>
>
>