rescript-urql
rescript-urql copied to clipboard
Provide a method to get GraphQLError as Js.Exn.t
Since the GraphQLError extends JavaScripts Error class anywhere that we can use a JavaScript error (typed in ReScript as Js.Exn.t
) we can also use a GraphQLError
.
Error reporting code that accepts a Js.Exn.t
can't directly accept a GraphQLError. Adding an asJsExn
method to GraphQLError.res
could simplify code that deals with errors :) external asJsExn : t => Js.Exn.t = "%identity"
should probably do the trick :D (this only holds from GraphQLError -> Error)
This makes sense to me @Kingdutch! The only other question I have for your use case is whether or not accessing originalError
off of the GraphQLError
is good enough for this use case. We do provide a binding to that already, so you should always be able to access originalError
off of a GraphQLError
— though it is an option
type, so its presence isn't guaranteed even if an error is encountered.
All that being said, I could see this being useful. I'd be happy to accept a PR if you want to include what you have above on the binding for GraphQLError
.
Hi @parkerziegler I realised I never got back to this.
I think the fact that originalError
can be undefined
would make it not enough (since sometimes we have a GraphQLError but then couldn't log the originalError). Additionally I think for logging purposes (which is mostly why I requested this) the extra information about where in the GraphQL schema the error occurred can be very useful.