Skip to content

Commit be1aef8

Browse files
authored
Merge pull request #3500 from reduxjs/transform-response-promise
Fix TransformedResponse type to unwrap promise
2 parents 841c69c + 55418b3 commit be1aef8

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

packages/toolkit/src/query/endpointDefinitions.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type {
1717
OmitFromUnion,
1818
CastAny,
1919
NonUndefined,
20+
UnwrapPromise,
2021
} from './tsHelpers'
2122
import type { NEVER } from './fakeBaseQuery'
2223
import type { Api } from '@reduxjs/toolkit/query'
@@ -797,7 +798,9 @@ export type TransformedResponse<
797798
> = K extends keyof NewDefinitions
798799
? NewDefinitions[K]['transformResponse'] extends undefined
799800
? ResultType
800-
: ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>
801+
: UnwrapPromise<
802+
ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>
803+
>
801804
: ResultType
802805

803806
export type OverrideResultType<Definition, NewResultType> =

packages/toolkit/src/query/tests/createApi.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -581,16 +581,13 @@ describe('endpoint definition typings', () => {
581581
enhancedApi.endpoints.query1.initiate()
582582
)
583583
expect(queryResponse.data).toEqual({ value: 'transformed' })
584-
expectType<Transformed | Promise<Transformed> | undefined>(
585-
queryResponse.data
586-
)
584+
expectType<Transformed | undefined>(queryResponse.data)
587585

588586
const mutationResponse = await storeRef.store.dispatch(
589587
enhancedApi.endpoints.mutation1.initiate()
590588
)
591589
expectType<
592-
| { data: Transformed | Promise<Transformed> }
593-
| { error: FetchBaseQueryError | SerializedError }
590+
{ data: Transformed } | { error: FetchBaseQueryError | SerializedError }
594591
>(mutationResponse)
595592
expect('data' in mutationResponse && mutationResponse.data).toEqual({
596593
value: 'transformed',

0 commit comments

Comments
 (0)