Always call resolveFieldFinishFn even if an error occurs in resolve. #526
+39
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello! We at New Relic are currently working to create an Extension for tracing GraphQL calls using this package.
One thing that I have noticed is that if your resolve field function returns an error, the
graphql.ResolveFieldFinishFunc
for that field is never called. This means that users will not see any metrics or data about this error or this work done despite it clearly having happened.The fix is pretty simple, just call the finish func before panicking the error. This is similar to what is done for the other Extension methods (parse, validate, and execute) which all call their finish functions even if an error occurs.
Please let me know what you think. I'm happy to make any changes you request.