Skip to content

Commit 45876a2

Browse files
committed
Deduplicate endpoint type enum
1 parent 3d01c60 commit 45876a2

File tree

6 files changed

+28
-21
lines changed

6 files changed

+28
-21
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import type { Api, ApiContext } from '../apiTypes'
1111
import type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes'
1212
import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'
1313
import {
14+
ENDPOINT_QUERY,
1415
isQueryDefinition,
1516
type EndpointDefinition,
1617
type EndpointDefinitions,
@@ -393,7 +394,7 @@ You must add the middleware for RTK-Query to function correctly!`,
393394

394395
const commonThunkArgs = {
395396
...rest,
396-
type: 'query' as const,
397+
type: ENDPOINT_QUERY as 'query',
397398
subscribe,
398399
forceRefetch: forceRefetch,
399400
subscriptionOptions,

packages/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import type {
66
InternalHandlerBuilder,
77
SubMiddlewareApi,
88
} from './types'
9-
import { countObjectKeys } from '../../utils/countObjectKeys'
109

1110
export const buildWindowEventHandler: InternalHandlerBuilder = ({
1211
reducerPath,

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import type {
4444
} from './buildThunks'
4545
import { calculateProvidedByThunk } from './buildThunks'
4646
import {
47+
ENDPOINT_QUERY,
4748
isInfiniteQueryDefinition,
4849
type AssertTagTypes,
4950
type EndpointDefinitions,
@@ -332,8 +333,8 @@ export function buildSlice({
332333
const { endpointName, arg, value } = entry
333334
const endpointDefinition = definitions[endpointName]
334335
const queryDescription: QueryThunkArg = {
335-
type: 'query',
336-
endpointName: endpointName,
336+
type: ENDPOINT_QUERY as 'query',
337+
endpointName,
337338
originalArgs: entry.arg,
338339
queryCacheKey: serializeQueryArgs({
339340
queryArgs: arg,

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

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import type {
3535
} from '../endpointDefinitions'
3636
import {
3737
calculateProvidedBy,
38+
ENDPOINT_QUERY,
3839
isInfiniteQueryDefinition,
3940
isQueryDefinition,
4041
} from '../endpointDefinitions'
@@ -509,6 +510,8 @@ export function buildThunks<
509510
const { metaSchema, skipSchemaValidation = globalSkipSchemaValidation } =
510511
endpointDefinition
511512

513+
const isQuery = arg.type === ENDPOINT_QUERY
514+
512515
try {
513516
let transformResponse: TransformCallback = defaultTransformResponse
514517

@@ -520,13 +523,11 @@ export function buildThunks<
520523
extra,
521524
endpoint: arg.endpointName,
522525
type: arg.type,
523-
forced:
524-
arg.type === 'query' ? isForcedQuery(arg, getState()) : undefined,
525-
queryCacheKey: arg.type === 'query' ? arg.queryCacheKey : undefined,
526+
forced: isQuery ? isForcedQuery(arg, getState()) : undefined,
527+
queryCacheKey: isQuery ? arg.queryCacheKey : undefined,
526528
}
527529

528-
const forceQueryFn =
529-
arg.type === 'query' ? arg[forceQueryFnSymbol] : undefined
530+
const forceQueryFn = isQuery ? arg[forceQueryFnSymbol] : undefined
530531

531532
let finalQueryReturnValue: QueryReturnValue
532533

@@ -675,10 +676,7 @@ export function buildThunks<
675676
}
676677
}
677678

678-
if (
679-
arg.type === 'query' &&
680-
'infiniteQueryOptions' in endpointDefinition
681-
) {
679+
if (isQuery && 'infiniteQueryOptions' in endpointDefinition) {
682680
// This is an infinite query endpoint
683681
const { infiniteQueryOptions } = endpointDefinition
684682

@@ -843,7 +841,7 @@ export function buildThunks<
843841
endpoint: arg.endpointName,
844842
arg: arg.originalArgs,
845843
type: arg.type,
846-
queryCacheKey: arg.type === 'query' ? arg.queryCacheKey : undefined,
844+
queryCacheKey: isQuery ? arg.queryCacheKey : undefined,
847845
}
848846
endpointDefinition.onSchemaFailure?.(caughtError, info)
849847
onSchemaFailure?.(caughtError, info)

packages/toolkit/src/query/createApi.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ import type {
1212
} from './endpointDefinitions'
1313
import {
1414
DefinitionType,
15+
ENDPOINT_INFINITEQUERY,
16+
ENDPOINT_MUTATION,
17+
ENDPOINT_QUERY,
1518
isInfiniteQueryDefinition,
1619
isQueryDefinition,
1720
} from './endpointDefinitions'
@@ -439,10 +442,9 @@ export function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(
439442
inject: Parameters<typeof api.injectEndpoints>[0],
440443
) {
441444
const evaluatedEndpoints = inject.endpoints({
442-
query: (x) => ({ ...x, type: DefinitionType.query }) as any,
443-
mutation: (x) => ({ ...x, type: DefinitionType.mutation }) as any,
444-
infiniteQuery: (x) =>
445-
({ ...x, type: DefinitionType.infinitequery }) as any,
445+
query: (x) => ({ ...x, type: ENDPOINT_QUERY }) as any,
446+
mutation: (x) => ({ ...x, type: ENDPOINT_MUTATION }) as any,
447+
infiniteQuery: (x) => ({ ...x, type: ENDPOINT_INFINITEQUERY }) as any,
446448
})
447449

448450
for (const [endpointName, definition] of Object.entries(

packages/toolkit/src/query/endpointDefinitions.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -488,12 +488,18 @@ export type BaseEndpointDefinition<
488488
{ extraOptions?: BaseQueryExtraOptions<BaseQuery> }
489489
>
490490

491+
// NOTE As with QueryStatus in `apiState.ts`, don't use this for real comparisons
492+
// at runtime, use the string constants defined below.
491493
export enum DefinitionType {
492494
query = 'query',
493495
mutation = 'mutation',
494496
infinitequery = 'infinitequery',
495497
}
496498

499+
export const ENDPOINT_QUERY = DefinitionType.query
500+
export const ENDPOINT_MUTATION = DefinitionType.mutation
501+
export const ENDPOINT_INFINITEQUERY = DefinitionType.infinitequery
502+
497503
type TagDescriptionArray<TagTypes extends string> = ReadonlyArray<
498504
TagDescription<TagTypes> | undefined | null
499505
>
@@ -1233,19 +1239,19 @@ export type EndpointDefinitions = Record<
12331239
export function isQueryDefinition(
12341240
e: EndpointDefinition<any, any, any, any, any, any, any>,
12351241
): e is QueryDefinition<any, any, any, any, any, any> {
1236-
return e.type === DefinitionType.query
1242+
return e.type === ENDPOINT_QUERY
12371243
}
12381244

12391245
export function isMutationDefinition(
12401246
e: EndpointDefinition<any, any, any, any, any, any, any>,
12411247
): e is MutationDefinition<any, any, any, any, any, any> {
1242-
return e.type === DefinitionType.mutation
1248+
return e.type === ENDPOINT_MUTATION
12431249
}
12441250

12451251
export function isInfiniteQueryDefinition(
12461252
e: EndpointDefinition<any, any, any, any, any, any, any>,
12471253
): e is InfiniteQueryDefinition<any, any, any, any, any, any, any> {
1248-
return e.type === DefinitionType.infinitequery
1254+
return e.type === ENDPOINT_INFINITEQUERY
12491255
}
12501256

12511257
export function isAnyQueryDefinition(

0 commit comments

Comments
 (0)