Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/resolvers/concerns/looks_ahead.rb')
-rw-r--r--app/graphql/resolvers/concerns/looks_ahead.rb16
1 files changed, 8 insertions, 8 deletions
diff --git a/app/graphql/resolvers/concerns/looks_ahead.rb b/app/graphql/resolvers/concerns/looks_ahead.rb
index 81099c04e9f..1d532eb2486 100644
--- a/app/graphql/resolvers/concerns/looks_ahead.rb
+++ b/app/graphql/resolvers/concerns/looks_ahead.rb
@@ -39,7 +39,7 @@ module LooksAhead
def filtered_preloads
nodes = node_selection
- return [] unless nodes
+ return [] unless nodes&.selected?
selected_fields = nodes.selections.map(&:name)
root_level_preloads = preloads_from_node_selection(selected_fields, preloads)
@@ -65,13 +65,13 @@ module LooksAhead
end.flatten
end
- def node_selection
- return unless lookahead
+ def node_selection(selection = lookahead)
+ return selection unless selection&.selected?
+ return selection.selection(:edges).selection(:node) if selection.selects?(:edges)
- if lookahead.selects?(:nodes)
- lookahead.selection(:nodes)
- elsif lookahead.selects?(:edges)
- lookahead.selection(:edges).selection(:node)
- end
+ # Will return a NullSelection object if :nodes is not a selection. This
+ # is better than returning nil as we can continue chaining selections on
+ # without raising errors.
+ selection.selection(:nodes)
end
end