Skip to content

Commit 4b3e96a

Browse files
committed
fix(federation): add reference resolver type to resolver map
Fixes #2205 by adding a type definition for `__resolveReference` to the existing `GraphQLResolverMap` interface.
1 parent ba3175e commit 4b3e96a

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

subgraph-js/src/schema-helper/resolverMap.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
import { GraphQLFieldResolver, GraphQLScalarType, DocumentNode } from 'graphql';
2+
import type { GraphQLReferenceResolver } from '../schemaExtensions';
23

34
export interface GraphQLSchemaModule {
45
typeDefs: DocumentNode;
56
resolvers?: GraphQLResolverMap<any>;
67
}
78

89
// eslint-disable-next-line @typescript-eslint/ban-types
9-
export interface GraphQLResolverMap<TContext = {}> {
10+
export interface GraphQLResolverMap<TContext = {}, TReference extends object = any> {
1011
[typeName: string]:
11-
| {
12+
| ({
1213
[fieldName: string]:
1314
| GraphQLFieldResolver<any, TContext>
1415
| {
1516
requires?: string;
1617
resolve?: GraphQLFieldResolver<any, TContext>;
1718
subscribe?: GraphQLFieldResolver<any, TContext>;
1819
};
19-
}
20+
} & {
21+
__resolveReference?: GraphQLReferenceResolver<TContext, TReference>;
22+
})
2023
| GraphQLScalarType
2124
| {
2225
[enumValue: string]: string | number;

subgraph-js/src/schemaExtensions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import {
55
GraphQLUnionTypeExtensions
66
} from 'graphql';
77

8-
export type GraphQLReferenceResolver<TContext> = (
9-
reference: object,
8+
export type GraphQLReferenceResolver<TContext, TReference extends object = any> = (
9+
reference: TReference,
1010
context: TContext,
1111
info: GraphQLResolveInfo,
1212
) => any;

0 commit comments

Comments
 (0)