Class: GraphQL::Preload::Instrument
- Inherits:
-
Object
- Object
- GraphQL::Preload::Instrument
- Defined in:
- lib/graphql/preload/instrument.rb
Overview
Provides an instrument for the GraphQL::Field :preload definition
Instance Method Summary collapse
Instance Method Details
#instrument(_type, field) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/graphql/preload/instrument.rb', line 5 def instrument(_type, field) return field unless field..include?(:preload) old_resolver = field.resolve_proc new_resolver = ->(obj, args, ctx) do return old_resolver.call(obj, args, ctx) unless obj preload(obj, field.[:preload]).then do old_resolver.call(obj, args, ctx) end end field.redefine do resolve(new_resolver) end end |