@@ -37,9 +37,9 @@ def get_subfield_asts(context, return_type, field_asts):
37
37
38
38
def get_resolvers (context , type , field_asts ):
39
39
from .resolver import field_resolver
40
+ subfield_asts = get_subfield_asts (context , type , field_asts )
40
41
41
- resolvers = []
42
- for response_name , field_asts in field_asts .items ():
42
+ for response_name , field_asts in subfield_asts .items ():
43
43
field_ast = field_asts [0 ]
44
44
field_name = field_ast .name .value
45
45
field_def = get_field_def (context and context .schema , type , field_name )
@@ -61,7 +61,7 @@ def get_resolvers(context, type, field_asts):
61
61
if isinstance (field_base_type , GraphQLObjectType ):
62
62
field_fragment = Fragment (
63
63
type = field_base_type ,
64
- field_asts = get_subfield_asts ( context , field_base_type , field_asts ) ,
64
+ field_asts = field_asts ,
65
65
info = info ,
66
66
context = context
67
67
)
@@ -78,8 +78,7 @@ def get_resolvers(context, type, field_asts):
78
78
field_ast .arguments ,
79
79
context and context .variable_values
80
80
)
81
- resolvers .append ((response_name , resolver , args , context and context .context_value , info ))
82
- return resolvers
81
+ yield (response_name , resolver , args , context and context .context_value , info )
83
82
84
83
85
84
class Fragment (object ):
@@ -92,11 +91,11 @@ def __init__(self, type, field_asts, context=None, info=None):
92
91
93
92
@cached_property
94
93
def partial_resolvers (self ):
95
- return get_resolvers (
94
+ return list ( get_resolvers (
96
95
self .context ,
97
96
self .type ,
98
97
self .field_asts
99
- )
98
+ ))
100
99
101
100
def have_type (self , root ):
102
101
return not self .type .is_type_of or self .type .is_type_of (root , self .context .context_value , self .info )
@@ -191,7 +190,7 @@ def get_fragment(self, type):
191
190
).format (type , self .abstract_type )
192
191
self ._fragments [type ] = Fragment (
193
192
type ,
194
- get_subfield_asts ( self .context , type , self . field_asts ) ,
193
+ self .field_asts ,
195
194
self .context ,
196
195
self .info
197
196
)
0 commit comments