@@ -552,9 +552,23 @@ set or coercing a scalar value.
552
552
ExecuteField(objectType, objectValue, fieldType, fields, variableValues):
553
553
* Let {field} be the first entry in {fields}.
554
554
* Let {fieldName} be the field name of {field}.
555
+ * Let {requiredStatus} be the required status of {field}.
555
556
* Let {argumentValues} be the result of {CoerceArgumentValues(objectType, field, variableValues)}
556
557
* Let {resolvedValue} be {ResolveFieldValue(objectType, objectValue, fieldName, argumentValues)}.
557
- * Return the result of {CompleteValue(fieldType, fields, resolvedValue, variableValues)}.
558
+ * Let {modifiedFieldType} be {ModifiedOutputType(fieldType, requiredStatus)}.
559
+ * Return the result of {CompleteValue(modifiedFieldType, fields, resolvedValue, variableValues)}.
560
+
561
+ ModifiedOutputType(outputType, requiredStatus):
562
+ * If {requiredStatus} is 'required' and {outputType} is not a Non-Nullable type:
563
+ * Return Non-Null with an inner type of {outputType}.
564
+ * Otherwise if {requiredStatus} is 'optional':
565
+ * If {outputType} is not a Non-Nullable type:
566
+ * Return {outputType}.
567
+ * Otherwise if {outputType} is a Non-Nullable type:
568
+ * Let {innerOutputType} be the inner type of {outputType}.
569
+ * Return {innerOutputType}.
570
+ * Otherwise:
571
+ * Return {outputType}.
558
572
559
573
560
574
### Coercing Field Arguments
0 commit comments