Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a method to get GraphQLError as Js.Exn.t #257

Open
Kingdutch opened this issue Mar 24, 2021 · 2 comments
Open

Provide a method to get GraphQLError as Js.Exn.t #257

Kingdutch opened this issue Mar 24, 2021 · 2 comments

Comments

@Kingdutch
Copy link
Contributor

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)

@parkerziegler
Copy link
Contributor

parkerziegler commented Apr 5, 2021

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.

@Kingdutch
Copy link
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants