summaryrefslogtreecommitdiff
path: root/app/graphql/types/base_field.rb
diff options
context:
space:
mode:
authorBrett Walker <bwalker@gitlab.com>2019-06-04 17:52:06 -0500
committerBrett Walker <bwalker@gitlab.com>2019-06-05 10:17:54 -0500
commit95b3fe286349176be7f117211dcc0ffa9dfcb8bb (patch)
treeac0ef2ca1dc6b09e192093f6398abe4a8805c035 /app/graphql/types/base_field.rb
parent75e11922026db90ccb81b0125b18b0bd2ffbb7fb (diff)
downloadgitlab-ce-95b3fe286349176be7f117211dcc0ffa9dfcb8bb.tar.gz
Use :complexity_multiplier only with connections
This helps reduce complexity for non-connections
Diffstat (limited to 'app/graphql/types/base_field.rb')
-rw-r--r--app/graphql/types/base_field.rb13
1 files changed, 7 insertions, 6 deletions
diff --git a/app/graphql/types/base_field.rb b/app/graphql/types/base_field.rb
index a374851e835..35763be685a 100644
--- a/app/graphql/types/base_field.rb
+++ b/app/graphql/types/base_field.rb
@@ -29,15 +29,16 @@ module Types
# proc because we set complexity depending on arguments and number of
# items which can be loaded.
proc do |ctx, args, child_complexity|
- page_size = @max_page_size || ctx.schema.default_max_page_size
- limit_value = [args[:first], args[:last], page_size].compact.min
-
# Resolvers may add extra complexity depending on used arguments
complexity = child_complexity + self.resolver&.try(:resolver_complexity, args, child_complexity: child_complexity).to_i
- # Resolvers may add extra complexity depending on number of items being loaded.
- multiplier = self.resolver&.try(:complexity_multiplier, args).to_f
- complexity += complexity * limit_value * multiplier
+ if @connection
+ # Resolvers may add extra complexity depending on number of items being loaded.
+ page_size = @max_page_size || ctx.schema.default_max_page_size
+ limit_value = [args[:first], args[:last], page_size].compact.min
+ multiplier = self.resolver&.try(:complexity_multiplier, args).to_f
+ complexity += complexity * limit_value * multiplier
+ end
complexity.to_i
end