Skip to content

Commit 432555d

Browse files
committed
introduce modified field types
1 parent 1473f78 commit 432555d

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

spec/Section 6 -- Execution.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -568,14 +568,26 @@ set or coercing a scalar value.
568568

569569
ExecuteField(objectType, objectValue, fieldType, fields, variableValues):
570570

571-
- Let {field} be the first entry in {fields}.
572-
- Let {fieldName} be the field name of {field}.
573-
- Let {argumentValues} be the result of {CoerceArgumentValues(objectType, field,
574-
variableValues)}
575-
- Let {resolvedValue} be {ResolveFieldValue(objectType, objectValue, fieldName,
576-
argumentValues)}.
577-
- Return the result of {CompleteValue(fieldType, fields, resolvedValue,
578-
variableValues)}.
571+
- Let {field} be the first entry in {fields}.
572+
- Let {fieldName} be the field name of {field}.
573+
- Let {requiredStatus} be the required status of {field}.
574+
- Let {argumentValues} be the result of {CoerceArgumentValues(objectType, field, variableValues)}
575+
- Let {resolvedValue} be {ResolveFieldValue(objectType, objectValue, fieldName, argumentValues)}.
576+
- Let {modifiedFieldType} be {ModifiedOutputType(fieldType, requiredStatus)}.
577+
- Return the result of {CompleteValue(modifiedFieldType, fields, resolvedValue, variableValues)}.
578+
579+
ModifiedOutputType(outputType, requiredStatus):
580+
581+
- If {requiredStatus} is 'required' and {outputType} is not a Non-Nullable type:
582+
- Return Non-Null with an inner type of {outputType}.
583+
- Otherwise if {requiredStatus} is 'optional':
584+
- If {outputType} is not a Non-Nullable type:
585+
- Return {outputType}.
586+
- Otherwise if {outputType} is a Non-Nullable type:
587+
- Let {innerOutputType} be the inner type of {outputType}.
588+
- Return {innerOutputType}.
589+
- Otherwise:
590+
- Return {outputType}.
579591

580592
### Coercing Field Arguments
581593

0 commit comments

Comments
 (0)