Skip to content

Commit 6b680e1

Browse files
committed
Add BuildSelectorsApiEndpointQuery type
- This was done to help split the `ApiEndpointQuery` type into multiple types instead of merging multiple `interface` declarations.
1 parent a303ae0 commit 6b680e1

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import type {
44
MutationDefinition,
55
QueryArgFrom,
66
QueryDefinition,
7+
ReducerPathFrom,
78
TagDescription,
9+
TagTypesFrom,
810
} from '../endpointDefinitions'
911
import { expandTagDescription } from '../endpointDefinitions'
1012
import { flatten } from '../utils'
@@ -47,6 +49,20 @@ export type SkipToken = typeof skipToken
4749
*/
4850
export const skipToken = /* @__PURE__ */ Symbol.for('RTKQ/skipToken')
4951

52+
export type BuildSelectorsApiEndpointQuery<
53+
Definition extends QueryDefinition<any, any, any, any, any>,
54+
Definitions extends EndpointDefinitions,
55+
> = {
56+
select: QueryResultSelectorFactory<
57+
Definition,
58+
_RootState<
59+
Definitions,
60+
TagTypesFrom<Definition>,
61+
ReducerPathFrom<Definition>
62+
>
63+
>
64+
}
65+
5066
export type QueryResultSelectorFactory<
5167
Definition extends QueryDefinition<any, any, any, any>,
5268
RootState,

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

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ import type {
2828
} from './buildMiddleware'
2929
import { buildMiddleware } from './buildMiddleware'
3030
import type {
31+
BuildSelectorsApiEndpointQuery,
3132
MutationResultSelectorFactory,
32-
QueryResultSelectorFactory,
3333
} from './buildSelectors'
3434
import { buildSelectors } from './buildSelectors'
3535
import type { SliceActions } from './buildSlice'
@@ -72,16 +72,8 @@ export interface ApiEndpointQuery<
7272
// eslint-disable-next-line @typescript-eslint/no-unused-vars
7373
Definitions extends EndpointDefinitions,
7474
> extends BuildThunksApiEndpointQuery<Definition>,
75-
BuildInitiateApiEndpointQuery<Definition> {
76-
select: QueryResultSelectorFactory<
77-
Definition,
78-
RootState<
79-
Definitions,
80-
TagTypesFrom<Definition>,
81-
ReducerPathFrom<Definition>
82-
>
83-
>
84-
75+
BuildInitiateApiEndpointQuery<Definition>,
76+
BuildSelectorsApiEndpointQuery<Definition, Definitions> {
8577
name: string
8678
/**
8779
* All of these are `undefined` at runtime, purely to be used in TypeScript declarations!

0 commit comments

Comments
 (0)