From 44d01fd491bc79a71d87185ef72323326e43dd6a Mon Sep 17 00:00:00 2001 From: Hendrik Volschenk Date: Wed, 18 Mar 2026 16:25:42 +0100 Subject: [PATCH] fix(federation): add reference resolver type to resolver map Fixes #2205 by adding a type definition for `__resolveReference` to the existing `GraphQLResolverMap` interface. --- subgraph-js/src/schema-helper/resolverMap.ts | 9 ++++++--- subgraph-js/src/schemaExtensions.ts | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/subgraph-js/src/schema-helper/resolverMap.ts b/subgraph-js/src/schema-helper/resolverMap.ts index 2fd7ae5b2..2bf2d3385 100644 --- a/subgraph-js/src/schema-helper/resolverMap.ts +++ b/subgraph-js/src/schema-helper/resolverMap.ts @@ -1,4 +1,5 @@ import { GraphQLFieldResolver, GraphQLScalarType, DocumentNode } from 'graphql'; +import type { GraphQLReferenceResolver } from '../schemaExtensions'; export interface GraphQLSchemaModule { typeDefs: DocumentNode; @@ -6,9 +7,9 @@ export interface GraphQLSchemaModule { } // eslint-disable-next-line @typescript-eslint/ban-types -export interface GraphQLResolverMap { +export interface GraphQLResolverMap { [typeName: string]: - | { + | ({ [fieldName: string]: | GraphQLFieldResolver | { @@ -16,7 +17,9 @@ export interface GraphQLResolverMap { resolve?: GraphQLFieldResolver; subscribe?: GraphQLFieldResolver; }; - } + } & { + __resolveReference?: GraphQLReferenceResolver; + }) | GraphQLScalarType | { [enumValue: string]: string | number; diff --git a/subgraph-js/src/schemaExtensions.ts b/subgraph-js/src/schemaExtensions.ts index 3c7d9d57f..92aabe11e 100644 --- a/subgraph-js/src/schemaExtensions.ts +++ b/subgraph-js/src/schemaExtensions.ts @@ -5,8 +5,8 @@ import { GraphQLUnionTypeExtensions } from 'graphql'; -export type GraphQLReferenceResolver = ( - reference: object, +export type GraphQLReferenceResolver = ( + reference: TReference, context: TContext, info: GraphQLResolveInfo, ) => any;