1616def on_complete_resolver (on_error , __func , exe_context , info , __resolver , * args , ** kwargs ):
1717 try :
1818 result = __resolver (* args , ** kwargs )
19- if isinstance (result , Exception ):
20- return on_error (result )
21- # return Promise.resolve(result).then(__func).catch(on_error)
2219 if is_thenable (result ):
23- # TODO: Remove this, if a promise is resolved with an Exception,
24- # it should raise by default. This is fixing an old behavior
25- # in the Promise package
26- def on_resolve (value ):
27- if isinstance (value , Exception ):
28- return on_error (value )
29- return value
30- return result .then (on_resolve ).then (__func ).catch (on_error )
20+ return Promise .resolve (result ).then (__func ).catch (on_error )
21+ elif isinstance (result , Exception ):
22+ return on_error (result )
3123 return __func (result )
3224 except Exception as e :
3325 return on_error (e )
@@ -52,7 +44,8 @@ def complete_list_value(inner_resolver, exe_context, info, on_error, result):
5244def complete_nonnull_value (exe_context , info , result ):
5345 if result is None :
5446 raise GraphQLError (
55- 'Cannot return null for non-nullable field {}.{}.' .format (info .parent_type , info .field_name ),
47+ 'Cannot return null for non-nullable field {}.{}.' .format (
48+ info .parent_type , info .field_name ),
5649 info .field_asts
5750 )
5851 return result
@@ -130,8 +123,10 @@ def type_resolver_fragment(return_type, resolver, fragment, exe_context, info, c
130123 return partial (on_complete_resolver , on_resolve_error , complete_object_value_resolve , exe_context , info , resolver )
131124
132125
133- def type_resolver_non_null (return_type , resolver , fragment , exe_context , info ): # no catch_error
134- resolver = type_resolver (return_type .of_type , resolver , fragment , exe_context , info )
126+ # no catch_error
127+ def type_resolver_non_null (return_type , resolver , fragment , exe_context , info ):
128+ resolver = type_resolver (
129+ return_type .of_type , resolver , fragment , exe_context , info )
135130 nonnull_complete = partial (complete_nonnull_value , exe_context , info )
136131 on_resolve_error = partial (on_error , exe_context , info , False )
137132 return partial (on_complete_resolver , on_resolve_error , nonnull_complete , exe_context , info , resolver )
@@ -145,7 +140,9 @@ def type_resolver_leaf(return_type, resolver, exe_context, info, catch_error):
145140
146141def type_resolver_list (return_type , resolver , fragment , exe_context , info , catch_error ):
147142 item_type = return_type .of_type
148- inner_resolver = type_resolver (item_type , lambda item : item , fragment , exe_context , info , catch_error = True )
143+ inner_resolver = type_resolver (
144+ item_type , lambda item : item , fragment , exe_context , info , catch_error = True )
149145 on_resolve_error = partial (on_error , exe_context , info , catch_error )
150- list_complete = partial (complete_list_value , inner_resolver , exe_context , info , on_resolve_error )
146+ list_complete = partial (
147+ complete_list_value , inner_resolver , exe_context , info , on_resolve_error )
151148 return partial (on_complete_resolver , on_resolve_error , list_complete , exe_context , info , resolver )
0 commit comments