class GraphQL::Analyzer
Constants
- VERSION
Attributes
instruments[R]
Public Class Methods
new(instruments)
click to toggle source
# File lib/graphql/analyzer.rb, line 20 def initialize(instruments) @instruments = instruments end
Public Instance Methods
after_query(query)
click to toggle source
# File lib/graphql/analyzer.rb, line 33 def after_query(query) result = query.result result["extensions"] ||= {} result["extensions"]["analyzer"] = { "version" => 1, "execution" => { "resolvers" => query.context['graphql-analyzer']['resolvers'] } } end
before_query(query)
click to toggle source
# File lib/graphql/analyzer.rb, line 29 def before_query(query) query.context['graphql-analyzer'] = { 'resolvers' => [] } end
instrument(type, field)
click to toggle source
# File lib/graphql/analyzer.rb, line 45 def instrument(type, field) instruments.reduce(field) do |field, instrumentation| field.redefine do resolve(instrumentation.instrument(type, field)) lazy_resolve(instrumentation.instrument_lazy(type, field)) end end end
use(schema_definition)
click to toggle source
# File lib/graphql/analyzer.rb, line 24 def use(schema_definition) schema_definition.instrument(:query, self) schema_definition.instrument(:field, self) end