exAspArk / batch-loader

:zap: Powerful tool for avoiding N+1 DB or HTTP queries
https://engineering.universe.com/batching-a-powerful-way-to-solve-n-1-queries-every-rubyist-should-know-24e20c6e7b94
MIT License
1.04k stars 52 forks source link

Use `.trace_with` on graphql-ruby 2.3+ #91

Closed janko closed 5 months ago

janko commented 5 months ago

graphql-ruby 2.3 switched to new module-based tracing, which requires passing a module to .trace_with. This module should then implement instance methods for events it wants to intercept. So basically, instead of a case statement, we now have method calls.

Also, the naming convention for modules within graphql-ruby is "trace", while the legacy classes were called "tracer". So, I chose to name the module Trace as well.

I could have called BatchLoader::GraphQL.trace("execute_field", data) to be more DRY, but I didn't want new API to call into legacy API, so I chose a bit of duplication.

Closes #90

exAspArk commented 5 months ago

Awesome! Thanks a lot 🙌