@@ -552,9 +552,23 @@ set or coercing a scalar value.
552552ExecuteField(objectType, objectValue, fieldType, fields, variableValues):
553553 * Let {field} be the first entry in {fields}.
554554 * Let {fieldName} be the field name of {field}.
555+ * Let {requiredStatus} be the required status of {field}.
555556 * Let {argumentValues} be the result of {CoerceArgumentValues(objectType, field, variableValues)}
556557 * 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}.
558572
559573
560574### Coercing Field Arguments
0 commit comments