Files
SnowLuma/.pnpm-store/v11/files/1d/0b0bce811948d4ea8db90af455cc9a7c2978d38acbc7116a356ce4794d53c88f7941536660a6d7a877577eb31ba1a36594efacfb68392e01cf76f5d014eaf7
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

85 lines
1.8 KiB
Plaintext

import type {
AnyRouter,
Constrain,
InferFrom,
InferMaskFrom,
InferMaskTo,
InferSelected,
InferShouldThrow,
InferStrict,
InferTo,
RegisteredRouter,
} from '@tanstack/router-core'
import type { LinkComponentProps } from './link'
import type { UseParamsOptions } from './useParams'
import type { UseSearchOptions } from './useSearch'
export type ValidateLinkOptions<
TRouter extends AnyRouter = RegisteredRouter,
TOptions = unknown,
TDefaultFrom extends string = string,
TComp = 'a',
> = Constrain<
TOptions,
LinkComponentProps<
TComp,
TRouter,
InferFrom<TOptions, TDefaultFrom>,
InferTo<TOptions>,
InferMaskFrom<TOptions>,
InferMaskTo<TOptions>
>
>
/**
* @private
*/
export type InferStructuralSharing<TOptions> = TOptions extends {
structuralSharing: infer TStructuralSharing
}
? TStructuralSharing
: unknown
export type ValidateUseSearchOptions<
TOptions,
TRouter extends AnyRouter = RegisteredRouter,
> = Constrain<
TOptions,
UseSearchOptions<
TRouter,
InferFrom<TOptions>,
InferStrict<TOptions>,
InferShouldThrow<TOptions>,
InferSelected<TOptions>,
InferStructuralSharing<TOptions>
>
>
export type ValidateUseParamsOptions<
TOptions,
TRouter extends AnyRouter = RegisteredRouter,
> = Constrain<
TOptions,
UseParamsOptions<
TRouter,
InferFrom<TOptions>,
InferStrict<TOptions>,
InferShouldThrow<TOptions>,
InferSelected<TOptions>,
InferSelected<TOptions>
>
>
export type ValidateLinkOptionsArray<
TRouter extends AnyRouter = RegisteredRouter,
TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,
TDefaultFrom extends string = string,
TComp = 'a',
> = {
[K in keyof TOptions]: ValidateLinkOptions<
TRouter,
TOptions[K],
TDefaultFrom,
TComp
>
}