Skip to content

Commit 2b80d8b

Browse files
authored
Respect BaseQuery meta types when enhancing (#2225)
* Respect BaseQuery meta types when enhancing * Revert Meta default type * Exclude undefined * Silence UnknownInCatch error * Add type test for meta * Run prettier * Improve comments * Improve comments
1 parent 35853a6 commit 2b80d8b

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

packages/toolkit/src/query/baseQueryTypes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ export type BaseQueryEnhancer<
5454
BaseQueryArg<BaseQuery> & AdditionalArgs,
5555
BaseQueryResult<BaseQuery>,
5656
BaseQueryError<BaseQuery>,
57-
BaseQueryExtraOptions<BaseQuery> & AdditionalDefinitionExtraOptions
57+
BaseQueryExtraOptions<BaseQuery> & AdditionalDefinitionExtraOptions,
58+
NonNullable<BaseQueryMeta<BaseQuery>>
5859
>
5960

6061
export type BaseQueryResult<BaseQuery extends BaseQueryFn> = UnwrapPromise<
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query'
2+
3+
/**
4+
* Test: BaseQuery meta types propagate to endpoint callbacks
5+
*/
6+
{
7+
createApi({
8+
baseQuery: fetchBaseQuery(),
9+
endpoints: (build) => ({
10+
getDummy: build.query<null, undefined>({
11+
query: () => 'dummy',
12+
onCacheEntryAdded: async (arg, { cacheDataLoaded }) => {
13+
const { meta } = await cacheDataLoaded
14+
const { request, response } = meta! // Expect request and response to be there
15+
},
16+
}),
17+
}),
18+
})
19+
20+
const baseQuery = retry(fetchBaseQuery()) // Even when wrapped with retry
21+
createApi({
22+
baseQuery,
23+
endpoints: (build) => ({
24+
getDummy: build.query<null, undefined>({
25+
query: () => 'dummy',
26+
onCacheEntryAdded: async (arg, { cacheDataLoaded }) => {
27+
const { meta } = await cacheDataLoaded
28+
const { request, response } = meta! // Expect request and response to be there
29+
},
30+
}),
31+
}),
32+
})
33+
}

0 commit comments

Comments
 (0)