@@ -255,12 +255,7 @@ def complete_value(self, ctx, return_type, field_asts, info, result):
255
255
256
256
# If field type is Scalar or Enum, serialize to a valid value, returning null if coercion is not possible.
257
257
if isinstance (return_type , (GraphQLScalarType , GraphQLEnumType )):
258
- serialized_result = return_type .serialize (result )
259
-
260
- if serialized_result is None :
261
- return None
262
-
263
- return serialized_result
258
+ return self .complete_leaf_value (ctx , return_type , field_asts , info , result )
264
259
265
260
runtime_type = None
266
261
@@ -318,6 +313,17 @@ def complete_list_value(self, ctx, return_type, field_asts, info, result):
318
313
319
314
return DeferredList (completed_results ) if contains_deferred else completed_results
320
315
316
+ def complete_leaf_value (self , ctx , return_type , field_asts , info , result ):
317
+ """
318
+ Complete a Scalar or Enum by serializing to a valid value, returning null if serialization is not possible.
319
+ """
320
+ serialized_result = return_type .serialize (result )
321
+
322
+ if serialized_result is None :
323
+ return None
324
+
325
+ return serialized_result
326
+
321
327
def resolve_or_error (self , resolve_fn , source , args , info ):
322
328
curried_resolve_fn = functools .partial (resolve_fn , source , args , info )
323
329
0 commit comments