@@ -60,6 +60,8 @@ type DeepPartial<T> = T extends object
6060 }
6161 : T
6262
63+ type DefaultTo < T , D > = unknown extends T ? D : T
64+
6365export type CompatibleError = CompatibleWithV4 < DefaultError , Error >
6466
6567export type Fetcher < TFnData , TVariables = void , TPageParam = never > = (
@@ -596,92 +598,122 @@ export type inferCreateOptions<T> = T extends QueryHook<
596598
597599// router
598600
601+ export type RouterQueryOptions <
602+ TFnData ,
603+ TVariables = void ,
604+ TError = CompatibleError
605+ > = Omit < CreateQueryOptions < TFnData , TVariables , TError > , 'queryKey' >
606+
599607export type RouterQuery <
600608 TFnData ,
601609 TVariables = void ,
602610 TError = CompatibleError
603- > = Omit < CreateQueryOptions < TFnData , TVariables , TError > , 'queryKey' > & {
611+ > = RouterQueryOptions < TFnData , TVariables , TError > & {
604612 _type : `q`
605613}
606614
607- export type RouterInfiniteQuery <
615+ export type ResolvedRouterQuery <
616+ TFnData ,
617+ TVariables = void ,
618+ TError = CompatibleError
619+ > = {
620+ useQuery : QueryHook < TFnData , TVariables , TError >
621+ useSuspenseQuery : SuspenseQueryHook < TFnData , TVariables , TError >
622+ } & ExposeMethods < TFnData , TVariables , TError >
623+
624+ export type RouterInfiniteQueryOptions <
608625 TFnData ,
609626 TVariables = void ,
610627 TError = CompatibleError ,
611628 TPageParam = number
612629> = Omit <
613630 CreateInfiniteQueryOptions < TFnData , TVariables , TError , TPageParam > ,
614631 'queryKey'
632+ >
633+
634+ export type RouterInfiniteQuery <
635+ TFnData ,
636+ TVariables = void ,
637+ TError = CompatibleError ,
638+ TPageParam = number
639+ > = RouterInfiniteQueryOptions <
640+ TFnData ,
641+ TVariables ,
642+ TError ,
643+ Clone < TPageParam >
615644> & {
616645 _type : `inf`
617646}
618647
619- export type RouterMutation <
648+ export type ResolvedRouterInfiniteQuery <
649+ TFnData ,
650+ TVariables = void ,
651+ TError = CompatibleError ,
652+ TPageParam = number
653+ > = {
654+ useInfiniteQuery : InfiniteQueryHook < TFnData , TVariables , TError , TPageParam >
655+ useSuspenseInfiniteQuery : SuspenseInfiniteQueryHook <
656+ TFnData ,
657+ TVariables ,
658+ TError ,
659+ TPageParam
660+ >
661+ } & ExposeMethods < TFnData , TVariables , TError , TPageParam >
662+
663+ export type RouterMutationOptions <
620664 TData = unknown ,
621665 TVariables = void ,
622666 TError = CompatibleError ,
623667 TContext = unknown
624668> = Omit <
625669 CreateMutationOptions < TData , TVariables , TError , TContext > ,
626670 'mutationKey'
627- > & {
671+ >
672+
673+ export type RouterMutation <
674+ TData = unknown ,
675+ TVariables = void ,
676+ TError = CompatibleError ,
677+ TContext = unknown
678+ > = RouterMutationOptions < TData , TVariables , TError , TContext > & {
628679 _type : `m`
629680}
630681
631- type DefaultTo < T , D > = unknown extends T ? D : T
632-
633- export type RouterConfig = Record <
634- string ,
635- | RouterQuery < any , any , any >
636- | RouterInfiniteQuery < any , any , any , any >
637- | RouterMutation < any , any , any , any >
638- | Record <
639- string ,
640- | RouterQuery < any , any , any >
641- | RouterInfiniteQuery < any , any , any , any >
642- | RouterMutation < any , any , any , any >
643- | Record <
644- string ,
645- | RouterQuery < any , any , any >
646- | RouterInfiniteQuery < any , any , any , any >
647- | RouterMutation < any , any , any , any >
648- | Record <
649- string ,
650- | RouterQuery < any , any , any >
651- | RouterInfiniteQuery < any , any , any , any >
652- | RouterMutation < any , any , any , any >
653- | Record <
654- string ,
655- | RouterQuery < any , any , any >
656- | RouterInfiniteQuery < any , any , any , any >
657- | RouterMutation < any , any , any , any >
658- | Record <
659- string ,
660- | RouterQuery < any , any , any >
661- | RouterInfiniteQuery < any , any , any , any >
662- | RouterMutation < any , any , any , any >
663- >
664- >
665- >
666- >
667- >
682+ export type ResolvedRouterMutation <
683+ TData = unknown ,
684+ TVariables = void ,
685+ TError = CompatibleError ,
686+ TContext = unknown
687+ > = {
688+ useMutation : MutationHook <
689+ TData ,
690+ DefaultTo < TVariables , void > ,
691+ DefaultTo < TError , CompatibleError > ,
692+ TContext
693+ >
694+ } & ExposeMutationMethods <
695+ TData ,
696+ DefaultTo < TVariables , void > ,
697+ DefaultTo < TError , CompatibleError > ,
698+ TContext
668699>
669700
701+ export interface RouterConfig {
702+ [ k : string ] :
703+ | RouterQuery < any , any , any >
704+ | RouterInfiniteQuery < any , any , any , any >
705+ | RouterMutation < any , any , any , any >
706+ | RouterConfig
707+ }
708+
670709export type CreateRouter < TConfig extends RouterConfig > = {
671710 [ K in keyof TConfig ] : TConfig [ K ] extends RouterMutation <
672711 infer TFnData ,
673712 infer TVariables ,
674713 infer TError ,
675714 infer TContext
676715 >
677- ? {
678- useMutation : MutationHook <
679- TFnData ,
680- DefaultTo < TVariables , void > ,
681- DefaultTo < TError , CompatibleError > ,
682- TContext
683- >
684- } & ExposeMutationMethods <
716+ ? ResolvedRouterMutation <
685717 TFnData ,
686718 DefaultTo < TVariables , void > ,
687719 DefaultTo < TError , CompatibleError > ,
@@ -693,20 +725,7 @@ export type CreateRouter<TConfig extends RouterConfig> = {
693725 infer TError ,
694726 infer TPageParam
695727 >
696- ? {
697- useInfiniteQuery : InfiniteQueryHook <
698- TFnData ,
699- DefaultTo < TVariables , void > ,
700- DefaultTo < TError , CompatibleError > ,
701- DefaultTo < TPageParam , number >
702- >
703- useSuspenseInfiniteQuery : SuspenseInfiniteQueryHook <
704- TFnData ,
705- DefaultTo < TVariables , void > ,
706- DefaultTo < TError , CompatibleError > ,
707- DefaultTo < TPageParam , number >
708- >
709- } & ExposeMethods <
728+ ? ResolvedRouterInfiniteQuery <
710729 TFnData ,
711730 DefaultTo < TVariables , void > ,
712731 DefaultTo < TError , CompatibleError > ,
@@ -716,23 +735,12 @@ export type CreateRouter<TConfig extends RouterConfig> = {
716735 RouterQuery < infer TFnData , infer TVariables , infer TError > ,
717736 'queryKey'
718737 >
719- ? {
720- useQuery : QueryHook <
721- TFnData ,
722- DefaultTo < TVariables , void > ,
723- DefaultTo < TError , CompatibleError >
724- >
725- useSuspenseQuery : SuspenseQueryHook <
726- TFnData ,
727- DefaultTo < TVariables , void > ,
728- DefaultTo < TError , CompatibleError >
729- >
730- } & ExposeMethods <
738+ ? ResolvedRouterQuery <
731739 TFnData ,
732740 DefaultTo < TVariables , void > ,
733741 DefaultTo < TError , CompatibleError >
734742 >
735743 : TConfig [ K ] extends RouterConfig
736744 ? CreateRouter < TConfig [ K ] >
737745 : never
738- } & { getKey : ( ) => [ string ] }
746+ } & { getKey : ( ) => string [ ] }
0 commit comments