Open captbaritone opened 11 months ago
IMO it's the only type-safe solution, since Grats can't/won't alter how graphql-js
handles this case?
In theory when we do applyServerDirectves (or in some similar place) we could wrap the resolver functions to match what the user-defined code expects, but I think that's probably not the right direction to head.
If a field arg is typed in the DSL as optional, a request that passes an explicit null, is considered valid. This means
graphql-js
will pass through a user's explicit null. This, in turn, means that if Grats is going to generate an optional argument, the user's field resolver must be capable of acceptingnull
.Today it's possible to define a function which is not expecting in its typescript types, but could get passed a null at runtime:
Playground
I think the best solution here is for Grats to error in this case and force you to add
| null
to the argument's type.