Skip to content

Commit b9dc923

Browse files
EskiMojo14markerikson
authored andcommitted
persist raw result type after building
1 parent f0f8637 commit b9dc923

File tree

1 file changed

+70
-24
lines changed

1 file changed

+70
-24
lines changed

packages/toolkit/src/query/endpointDefinitions.ts

+70-24
Original file line numberDiff line numberDiff line change
@@ -913,38 +913,54 @@ export type EndpointDefinition<
913913
ResultType,
914914
ReducerPath extends string = string,
915915
PageParam = any,
916+
RawResultType extends BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
916917
> =
917-
| QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>
918-
| MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>
918+
| QueryDefinition<
919+
QueryArg,
920+
BaseQuery,
921+
TagTypes,
922+
ResultType,
923+
ReducerPath,
924+
RawResultType
925+
>
926+
| MutationDefinition<
927+
QueryArg,
928+
BaseQuery,
929+
TagTypes,
930+
ResultType,
931+
ReducerPath,
932+
RawResultType
933+
>
919934
| InfiniteQueryDefinition<
920935
QueryArg,
921936
PageParam,
922937
BaseQuery,
923938
TagTypes,
924939
ResultType,
925-
ReducerPath
940+
ReducerPath,
941+
RawResultType
926942
>
927943

928944
export type EndpointDefinitions = Record<
929945
string,
930-
EndpointDefinition<any, any, any, any>
946+
EndpointDefinition<any, any, any, any, any, any, any>
931947
>
932948

933949
export function isQueryDefinition(
934-
e: EndpointDefinition<any, any, any, any>,
935-
): e is QueryDefinition<any, any, any, any> {
950+
e: EndpointDefinition<any, any, any, any, any, any, any>,
951+
): e is QueryDefinition<any, any, any, any, any, any> {
936952
return e.type === DefinitionType.query
937953
}
938954

939955
export function isMutationDefinition(
940-
e: EndpointDefinition<any, any, any, any>,
941-
): e is MutationDefinition<any, any, any, any> {
956+
e: EndpointDefinition<any, any, any, any, any, any, any>,
957+
): e is MutationDefinition<any, any, any, any, any, any> {
942958
return e.type === DefinitionType.mutation
943959
}
944960

945961
export function isInfiniteQueryDefinition(
946-
e: EndpointDefinition<any, any, any, any>,
947-
): e is InfiniteQueryDefinition<any, any, any, any, any> {
962+
e: EndpointDefinition<any, any, any, any, any, any, any>,
963+
): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {
948964
return e.type === DefinitionType.infinitequery
949965
}
950966

@@ -1004,7 +1020,15 @@ export type EndpointBuilder<
10041020
>,
10051021
'type'
10061022
>,
1007-
): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>
1023+
): QueryDefinition<
1024+
QueryArg,
1025+
BaseQuery,
1026+
TagTypes,
1027+
ResultType,
1028+
ReducerPath,
1029+
RawResultType
1030+
>
1031+
10081032
/**
10091033
* An endpoint definition that alters data on the server or will possibly invalidate the cache.
10101034
*
@@ -1048,17 +1072,31 @@ export type EndpointBuilder<
10481072
>,
10491073
'type'
10501074
>,
1051-
): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>
1075+
): MutationDefinition<
1076+
QueryArg,
1077+
BaseQuery,
1078+
TagTypes,
1079+
ResultType,
1080+
ReducerPath,
1081+
RawResultType
1082+
>
10521083

1053-
infiniteQuery<ResultType, QueryArg, PageParam>(
1084+
infiniteQuery<
1085+
ResultType,
1086+
QueryArg,
1087+
PageParam,
1088+
RawResultType extends
1089+
BaseQueryResult<BaseQuery> = BaseQueryResult<BaseQuery>,
1090+
>(
10541091
definition: OmitFromUnion<
10551092
InfiniteQueryDefinition<
10561093
QueryArg,
10571094
PageParam,
10581095
BaseQuery,
10591096
TagTypes,
10601097
ResultType,
1061-
ReducerPath
1098+
ReducerPath,
1099+
RawResultType
10621100
>,
10631101
'type'
10641102
>,
@@ -1068,7 +1106,8 @@ export type EndpointBuilder<
10681106
BaseQuery,
10691107
TagTypes,
10701108
ResultType,
1071-
ReducerPath
1109+
ReducerPath,
1110+
RawResultType
10721111
>
10731112
}
10741113

@@ -1120,16 +1159,16 @@ export type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any, any>> =
11201159
export type InfiniteQueryArgFrom<
11211160
D extends BaseEndpointDefinition<any, any, any, any>,
11221161
> =
1123-
D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any>
1162+
D extends InfiniteQueryDefinition<infer QA, any, any, any, any, any, any>
11241163
? QA
11251164
: never
11261165

11271166
export type QueryArgFromAnyQuery<
11281167
D extends BaseEndpointDefinition<any, any, any, any>,
11291168
> =
1130-
D extends InfiniteQueryDefinition<any, any, any, any, any, any>
1169+
D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>
11311170
? InfiniteQueryArgFrom<D>
1132-
: D extends QueryDefinition<any, any, any, any>
1171+
: D extends QueryDefinition<any, any, any, any, any, any>
11331172
? QueryArgFrom<D>
11341173
: never
11351174

@@ -1138,16 +1177,23 @@ export type ResultTypeFrom<
11381177
> = D extends BaseEndpointDefinition<any, any, infer RT, any> ? RT : unknown
11391178

11401179
export type ReducerPathFrom<
1141-
D extends EndpointDefinition<any, any, any, any, any>,
1142-
> = D extends EndpointDefinition<any, any, any, any, infer RP> ? RP : unknown
1180+
D extends EndpointDefinition<any, any, any, any, any, any, any>,
1181+
> =
1182+
D extends EndpointDefinition<any, any, any, any, infer RP, any, any>
1183+
? RP
1184+
: unknown
11431185

1144-
export type TagTypesFrom<D extends EndpointDefinition<any, any, any, any>> =
1145-
D extends EndpointDefinition<any, any, infer RP, any> ? RP : unknown
1186+
export type TagTypesFrom<
1187+
D extends EndpointDefinition<any, any, any, any, any, any, any>,
1188+
> =
1189+
D extends EndpointDefinition<any, any, infer TT, any, any, any, any>
1190+
? TT
1191+
: unknown
11461192

11471193
export type PageParamFrom<
1148-
D extends InfiniteQueryDefinition<any, any, any, any, any, any>,
1194+
D extends InfiniteQueryDefinition<any, any, any, any, any, any, any>,
11491195
> =
1150-
D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any>
1196+
D extends InfiniteQueryDefinition<any, infer PP, any, any, any, any, any>
11511197
? PP
11521198
: unknown
11531199

0 commit comments

Comments
 (0)