Skip to content

Commit

Permalink
remove owner_type from continue_value(...)
Browse files Browse the repository at this point in the history
  • Loading branch information
rmosolgo committed Apr 26, 2024
1 parent e0fb23a commit d0ae4e7
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions lib/graphql/execution/interpreter/runtime.rb
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ def evaluate_selection_with_args(arguments, field_defn, ast_node, field_ast_node
return_type_non_null = return_type.non_null?
if resolved_arguments.is_a?(GraphQL::ExecutionError) || resolved_arguments.is_a?(GraphQL::UnauthorizedError)
owner_type = selection_result.graphql_result_type
continue_value(resolved_arguments, owner_type, field_defn, return_type_non_null, ast_node, result_name, selection_result)
continue_value(resolved_arguments, field_defn, return_type_non_null, ast_node, result_name, selection_result)
next
end

Expand Down Expand Up @@ -378,7 +378,7 @@ def evaluate_selection_with_resolved_keyword_args(kwarg_arguments, resolved_argu
end
after_lazy(app_result, field: field_defn, ast_node: ast_node, owner_object: object, arguments: resolved_arguments, result_name: result_name, result: selection_result, runtime_state: runtime_state) do |inner_result, runtime_state|
owner_type = selection_result.graphql_result_type
continue_value = continue_value(inner_result, owner_type, field_defn, return_type_non_null, ast_node, result_name, selection_result)
continue_value = continue_value(inner_result, field_defn, return_type_non_null, ast_node, result_name, selection_result)
if HALT != continue_value
was_scoped = runtime_state.was_authorized_by_scope_items
runtime_state.was_authorized_by_scope_items = nil
Expand Down Expand Up @@ -458,12 +458,13 @@ def current_path
end

HALT = Object.new
# TODO remove `parent_type` from here next
def continue_value(value, parent_type, field, is_non_null, ast_node, result_name, selection_result) # rubocop:disable Metrics/ParameterLists
def continue_value(value, field, is_non_null, ast_node, result_name, selection_result) # rubocop:disable Metrics/ParameterLists
case value
when nil
if is_non_null
set_result(selection_result, result_name, nil, false, is_non_null) do
# When this comes from a list item, use the parent object:
parent_type = selection_result.is_a?(GraphQLResultArray) ? selection_result.graphql_parent.graphql_result_type : selection_result.graphql_result_type
# This block is called if `result_name` is not dead. (Maybe a previous invalid nil caused it be marked dead.)
err = parent_type::InvalidNullError.new(parent_type, field, value)
schema.type_error(err, context)
Expand Down Expand Up @@ -495,7 +496,7 @@ def continue_value(value, parent_type, field, is_non_null, ast_node, result_name
rescue GraphQL::ExecutionError => err
err
end
continue_value(next_value, parent_type, field, is_non_null, ast_node, result_name, selection_result)
continue_value(next_value, field, is_non_null, ast_node, result_name, selection_result)
elsif value.is_a?(GraphQL::UnauthorizedError)
# this hook might raise & crash, or it might return
# a replacement value
Expand All @@ -504,7 +505,7 @@ def continue_value(value, parent_type, field, is_non_null, ast_node, result_name
rescue GraphQL::ExecutionError => err
err
end
continue_value(next_value, parent_type, field, is_non_null, ast_node, result_name, selection_result)
continue_value(next_value, field, is_non_null, ast_node, result_name, selection_result)
elsif GraphQL::Execution::SKIP == value
# It's possible a lazy was already written here
case selection_result
Expand Down Expand Up @@ -607,7 +608,7 @@ def continue_field(value, owner_type, field, current_type, ast_node, next_select
err
end
after_lazy(object_proxy, ast_node: ast_node, field: field, owner_object: owner_object, arguments: arguments, trace: false, result_name: result_name, result: selection_result, runtime_state: runtime_state) do |inner_object, runtime_state|
continue_value = continue_value(inner_object, owner_type, field, is_non_null, ast_node, result_name, selection_result)
continue_value = continue_value(inner_object, field, is_non_null, ast_node, result_name, selection_result)
if HALT != continue_value
response_hash = GraphQLResultHash.new(result_name, current_type, continue_value, selection_result, is_non_null)
set_result(selection_result, result_name, response_hash, true, is_non_null)
Expand Down Expand Up @@ -696,7 +697,7 @@ def continue_field(value, owner_type, field, current_type, ast_node, next_select
end
# Detect whether this error came while calling `.each` (before `idx` is set) or while running list *items* (after `idx` is set)
error_is_non_null = idx.nil? ? is_non_null : inner_type.non_null?
continue_value(list_value, owner_type, field, error_is_non_null, ast_node, result_name, selection_result)
continue_value(list_value, field, error_is_non_null, ast_node, result_name, selection_result)
else
raise "Invariant: Unhandled type kind #{current_type.kind} (#{current_type})"
end
Expand All @@ -708,7 +709,7 @@ def resolve_list_item(inner_value, inner_type, inner_type_non_null, ast_node, fi
call_method_on_directives(:resolve_each, owner_object, ast_node.directives) do
# This will update `response_list` with the lazy
after_lazy(inner_value, ast_node: ast_node, field: field, owner_object: owner_object, arguments: arguments, result_name: this_idx, result: response_list, runtime_state: runtime_state) do |inner_inner_value, runtime_state|
continue_value = continue_value(inner_inner_value, owner_type, field, inner_type_non_null, ast_node, this_idx, response_list)
continue_value = continue_value(inner_inner_value, field, inner_type_non_null, ast_node, this_idx, response_list)
if HALT != continue_value
continue_field(continue_value, owner_type, field, inner_type, ast_node, next_selections, false, owner_object, arguments, this_idx, response_list, was_scoped, runtime_state)
end
Expand All @@ -730,7 +731,6 @@ def run_directive(method_name, object, directives, idx, &block)
raw_dir_args = arguments(nil, dir_defn, dir_node)
dir_args = continue_value(
raw_dir_args, # value
dir_defn, # parent_type
nil, # field
false, # is_non_null
dir_node, # ast_node
Expand Down

0 comments on commit d0ae4e7

Please sign in to comment.