At a glance
- Identifier: #1048
- Stage: RFC X / Superseded
- Champion: @benjie
- Latest activity: Added to WG agenda on 2023-10-05
- Spec PR: https://github.com/graphql/graphql-spec/pull/1048
- Related:
Spec PR description
This PR replaces #1046. Here's an updated description:
Inspired by @captbaritone's True Nullability Schema discussion (https://github.com/graphql/graphql-wg/discussions/1394) and following @fotoetienne's excellent talk at GraphQLConf and feedback on my resulting PR #1046, I am proposing that we introduce a new wrapper type, the "Null-Only-On-Error" type, represented via asterisk *. This new type walks the line between the default nullable types and the existing Non-Null type wrapper - it states that the value may only be {null} if a field error has been raised - i.e. it represents the "true nullability" of the field, whilst still acting as an error boundary to avoid null propagation.
Critically, this type would "evaporate" for legacy clients, appearing the same as a nullable field. (This is enabled via the includeNullOnlyOnError argument to the __Field.type field, which defaults to false.)
This is a much more complete RFC that #1046 was, and happily leverages a lot of the existing behavior of the spec.
Timeline
- Added to WG agenda on 2023-10-05
- Spec PR created on 2023-10-04 by benjie
- 3 commits pushed on 2023-10-04:
- benjie committed "Add specification changes for Null-Only-On-Error type"
- benjie committed "Add examples combining null-only-on-error with list and non-null"
- benjie committed "Remove duplicate coercion for brevity"
- Mentioned in WG notes on 2023-10-01