Sha256: ff8466e8608435dcbc2368e8c969605f861f6ab9e314e8fb88ae67df42a09057
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
module GraphQL::Batch class Setup class << self def start_batching raise NestedError if GraphQL::Batch::Executor.current GraphQL::Batch::Executor.current = GraphQL::Batch::Executor.new end def end_batching GraphQL::Batch::Executor.current = nil end def instrument_field(schema, type, field) return field unless type == schema.mutation old_resolve_proc = field.resolve_proc field.redefine do resolve ->(obj, args, ctx) { GraphQL::Batch::Executor.current.clear begin Promise.sync(old_resolve_proc.call(obj, args, ctx)) ensure GraphQL::Batch::Executor.current.clear end } end end def before_query(query) warn "Deprecated graphql-batch setup `instrument(:query, GraphQL::Batch::Setup)`, replace with `use GraphQL::Batch`" start_batching end def after_query(query) end_batching end end def initialize(schema) @schema = schema end def before_query(query) Setup.start_batching end def after_query(query) Setup.end_batching end def instrument(type, field) Setup.instrument_field(@schema, type, field) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
graphql-batch-0.3.5 | lib/graphql/batch/setup.rb |