Method: GraphQL::Execution::Multiplex.run_queries

Defined in:
lib/graphql/execution/multiplex.rb

.run_queries(schema, queries, context: {}, max_complexity: schema.max_complexity) ⇒ Array<Hash>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns One result per query.

Parameters:

  • schema (GraphQL::Schema)
  • queries (Array<GraphQL::Query>)
  • context (Hash) (defaults to: {})
  • max_complexity (Integer, nil) (defaults to: schema.max_complexity)

Returns:

  • (Array<Hash>)

    One result per query



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/graphql/execution/multiplex.rb', line 56

def run_queries(schema, queries, context: {}, max_complexity: schema.max_complexity)
  multiplex = self.new(schema: schema, queries: queries, context: context)
  multiplex.trace("execute_multiplex", { multiplex: multiplex }) do
    if has_custom_strategy?(schema)
      if queries.length != 1
        raise ArgumentError, "Multiplexing doesn't support custom execution strategies, run one query at a time instead"
      else
        instrument_and_analyze(multiplex, max_complexity: max_complexity) do
          [run_one_legacy(schema, queries.first)]
        end
      end
    else
      instrument_and_analyze(multiplex, max_complexity: max_complexity) do
        run_as_multiplex(multiplex)
      end
    end
  end
end