lib/graphql/execution/multiplex.rb in graphql-1.8.10 vs lib/graphql/execution/multiplex.rb in graphql-1.8.11
- old
+ new
@@ -99,11 +99,11 @@
# @param query [GraphQL::Query]
# @return [Hash] The initial result (may not be finished if there are lazy values)
def begin_query(query)
operation = query.selected_operation
- if operation.nil? || !query.valid?
+ if operation.nil? || !query.valid? || query.context.errors.any?
NO_OPERATION
else
begin
GraphQL::Execution::Execute::ExecutionFunctions.resolve_root_selection(query)
rescue GraphQL::ExecutionError => err
@@ -117,10 +117,11 @@
# @param query [GraphQL::Query] The query which was run
# @return [Hash] final result of this query, including all values and errors
def finish_query(data_result, query)
# Assign the result so that it can be accessed in instrumentation
query.result_values = if data_result.equal?(NO_OPERATION)
- if !query.valid?
+ if !query.valid? || query.context.errors.any?
+ # A bit weird, but `Query#static_errors` _includes_ `query.context.errors`
{ "errors" => query.static_errors.map(&:to_h) }
else
data_result
end
else