blob: 1eaa7603af0d8411495ef7a0655ee5315944d5d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
module GraphqlHelpers
# Run a loader's named resolver
def resolve(kls, name, obj: nil, args: {}, ctx: {})
kls[name].call(obj, args, ctx)
end
# Runs a block inside a BatchLoader::Executor wrapper
def batch(max_queries: nil, &blk)
wrapper = proc do
begin
BatchLoader::Executor.ensure_current
blk.call
ensure
BatchLoader::Executor.clear_current
end
end
if max_queries
result = nil
expect { result = wrapper.call }.not_to exceed_query_limit(max_queries)
result
else
wrapper.call
end
end
end
|