blob: 5bb2cf9dd9e53c3ebc1118d76ff3ce14ada6eb67 (
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
27
28
29
|
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 GraphQL::Batch wrapper
def batch(max_queries: nil, &blk)
wrapper = proc do
GraphQL::Batch.batch do
result = yield
if result.is_a?(Array)
Promise.all(result)
else
result
end
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
|