graphql-python / graphql-python/graphql-relay-py
Why are nodes optional?
- Dominant language
- Python
- Stars
- 144
- Forks
- 41
- PR merge metrics
- No merged PRs in 30d
Description
I was trying to dig through this to figure it out, and I apologize if there's a good reason for this.
It seems to me that a paginated connection (e.g. `DjangoConnectionField` or `DjangoFilterConnectionField`) always has edges and nodes. What's the use case for these being nullable?
The reason I bring this up is because, when using TypeScript with the generated schema, it results in lengthy checks like this:
```tsx
{edges.map(edge => (
{edge &&
edge.node &&
edge.node.id (
...
```
As far as I can tell this is set up here:
https://github.com/graphql-python/graphql-relay-py/blob/master/graphql_relay/connection/connection.py#L44
Could there be `required` on edges/nodes? At least as an option it'd be a breaking change. Right now I'm not sure how to override this.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.