Skip to content

Commit aa0d616

Browse files
committed
build_schema/extend_schema: use type names to resolve types
Replicates graphql/graphql-js@bac6838
1 parent 27de7d3 commit aa0d616

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

graphql/utilities/build_ast_schema.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
from .value_from_ast import value_from_ast
5454

5555
TypeDefinitionsMap = Dict[str, TypeDefinitionNode]
56-
TypeResolver = Callable[[NamedTypeNode], GraphQLNamedType]
56+
TypeResolver = Callable[[str], GraphQLNamedType]
5757

5858
__all__ = [
5959
"build_ast_schema",
@@ -114,8 +114,8 @@ def build_ast_schema(
114114
OperationType.SUBSCRIPTION: node_map.get("Subscription"),
115115
}
116116

117-
def resolve_type(type_ref: NamedTypeNode):
118-
raise TypeError(f"Type {type_ref.name.value!r} not found in document.")
117+
def resolve_type(type_name: str):
118+
raise TypeError(f"Type '{type_name}' not found in document.")
119119

120120
definition_builder = ASTDefinitionBuilder(
121121
node_map, assume_valid=assume_valid, resolve_type=resolve_type
@@ -168,9 +168,9 @@ def get_operation_types(
168168
return op_types
169169

170170

171-
def default_type_resolver(type_ref: NamedTypeNode) -> NoReturn:
171+
def default_type_resolver(type_name: str) -> NoReturn:
172172
"""Type resolver that always throws an error."""
173-
raise TypeError(f"Type '{type_ref.name.value}' not found in document.")
173+
raise TypeError(f"Type '{type_name}' not found in document.")
174174

175175

176176
class ASTDefinitionBuilder:
@@ -200,7 +200,7 @@ def build_type(
200200
cache[type_name] = (
201201
self._make_schema_def(def_node)
202202
if def_node
203-
else self._resolve_type(node)
203+
else self._resolve_type(node.name.value)
204204
)
205205
else:
206206
cache[type_name] = self._make_schema_def(node)

graphql/utilities/extend_schema.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
SchemaDefinitionNode,
1717
TypeDefinitionNode,
1818
UnionTypeExtensionNode,
19-
NamedTypeNode,
2019
TypeExtensionNode,
2120
)
2221
from ..type import (
@@ -466,8 +465,7 @@ def extend_type(type_def: GraphQLType) -> GraphQLType:
466465
return extend_named_type(type_def) # type: ignore
467466

468467
# noinspection PyShadowingNames
469-
def resolve_type(type_ref: NamedTypeNode) -> GraphQLNamedType:
470-
type_name = type_ref.name.value
468+
def resolve_type(type_name: str) -> GraphQLNamedType:
471469
existing_type = schema.get_type(type_name)
472470
if not existing_type:
473471
raise TypeError(f"Unknown type: '{type_name}'.")

0 commit comments

Comments
 (0)