Skip to content

Commit a0d1ea9

Browse files
authored
Reword criteria A (#1653)
1 parent 4ea256a commit a0d1ea9

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

rfcs/SemanticNullability.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,22 @@ Guiding Principles. The scores are:
207207
- 🥈 Silver - A nice-to-have
208208
- 🥉 Bronze - Not necessary
209209

210-
## 🎯 A. GraphQL should be able to indicate which positions will only be null if an error occurred
210+
## 🎯 A. GraphQL should be able to indicate which nullable fields should become non-nullable when error propagation is disabled
211211

212212
The promise of this RFC - the reflection of the semantic nullability of the
213-
fields.
213+
fields without compromising requests with error propagation enabled via the
214+
differentiation of a "null if and only if an error occurs" type.
215+
216+
With error propagation enabled (the traditional GraphQL behavior), it's
217+
recommended that fields are marked nullable if errors may happen there, even if
218+
the underlying value is semantically non-nullable. If we allow error-handling
219+
clients to disable error propagation, then these traditionally nullable
220+
positions can be marked (semantically) non-nullable in that mode, since with
221+
error propagation disabled the selection sets are no longer destroyed.
222+
223+
Note: Traditional non-nullable types will effectively become semantically
224+
non-nullable when error propagation is disabled no matter which solution is
225+
chosen, so this criteria is only concerned with traditionally nullable types.
214226

215227
| [1][solution-1] | [2][solution-2] | [3][solution-3] | [4][solution-4] |
216228
| --------------- | --------------- | --------------- | --------------- |

0 commit comments

Comments
 (0)