Skip to content

Commit 10bb727

Browse files
committed
Add BuildSelectorsApiEndpointMutation type
- This was done to help split the `ApiEndpointMutation` type into multiple types instead of merging multiple `interface` declarations.
1 parent 5c16d34 commit 10bb727

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

packages/toolkit/src/query/core/buildSelectors.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,20 @@ export type BuildSelectorsApiEndpointQuery<
6363
>
6464
}
6565

66+
export type BuildSelectorsApiEndpointMutation<
67+
Definition extends MutationDefinition<any, any, any, any, any>,
68+
Definitions extends EndpointDefinitions,
69+
> = {
70+
select: MutationResultSelectorFactory<
71+
Definition,
72+
_RootState<
73+
Definitions,
74+
TagTypesFrom<Definition>,
75+
ReducerPathFrom<Definition>
76+
>
77+
>
78+
}
79+
6680
export type QueryResultSelectorFactory<
6781
Definition extends QueryDefinition<any, any, any, any>,
6882
RootState,

packages/toolkit/src/query/core/module.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,9 @@ import type {
1010
EndpointDefinitions,
1111
MutationDefinition,
1212
QueryDefinition,
13-
ReducerPathFrom,
14-
TagTypesFrom,
1513
} from '../endpointDefinitions'
1614
import { isMutationDefinition, isQueryDefinition } from '../endpointDefinitions'
1715
import { assertCast, safeAssign } from '../tsHelpers'
18-
import type { RootState } from './apiState'
1916
import type {
2017
BuildInitiateApiEndpointMutation,
2118
BuildInitiateApiEndpointQuery,
@@ -28,8 +25,8 @@ import type {
2825
} from './buildMiddleware'
2926
import { buildMiddleware } from './buildMiddleware'
3027
import type {
28+
BuildSelectorsApiEndpointMutation,
3129
BuildSelectorsApiEndpointQuery,
32-
MutationResultSelectorFactory,
3330
} from './buildSelectors'
3431
import { buildSelectors } from './buildSelectors'
3532
import type { SliceActions } from './buildSlice'
@@ -87,16 +84,8 @@ export interface ApiEndpointMutation<
8784
// eslint-disable-next-line @typescript-eslint/no-unused-vars
8885
Definitions extends EndpointDefinitions,
8986
> extends BuildThunksApiEndpointMutation<Definition>,
90-
BuildInitiateApiEndpointMutation<Definition> {
91-
select: MutationResultSelectorFactory<
92-
Definition,
93-
RootState<
94-
Definitions,
95-
TagTypesFrom<Definition>,
96-
ReducerPathFrom<Definition>
97-
>
98-
>
99-
87+
BuildInitiateApiEndpointMutation<Definition>,
88+
BuildSelectorsApiEndpointMutation<Definition, Definitions> {
10089
name: string
10190
/**
10291
* All of these are `undefined` at runtime, purely to be used in TypeScript declarations!

0 commit comments

Comments
 (0)