Skip to content

Commit

Permalink
Fix reachability compat
Browse files Browse the repository at this point in the history
  • Loading branch information
rmosolgo committed Nov 14, 2024
1 parent 1197739 commit dcafcaa
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
16 changes: 11 additions & 5 deletions lib/graphql/schema/visibility.rb
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,11 @@ def load_all
@loaded_all ||= begin
visit = Visibility::Visit.new(@schema)

visit.entry_point_types.each do |t|
@schema.root_types.each do |t|
@references[t] << true
end

@schema.introspection_system.types.each_value do |t|
@references[t] << true
end

Expand Down Expand Up @@ -107,10 +111,12 @@ def load_all
true
end
@interface_type_memberships.each do |int_type, type_memberships|
referers = @references[int_type]
type_memberships.each do |type_membership|
implementor_type = type_membership.object_type
@references[implementor_type].concat(referers)
referers = @references[int_type].select { |r| r.is_a?(GraphQL::Schema::Field) }
if referers.any?
type_memberships.each do |type_membership|
implementor_type = type_membership.object_type
@references[implementor_type].concat(referers)
end
end
end

Expand Down
3 changes: 2 additions & 1 deletion lib/graphql/schema/visibility/profile.rb
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ def directives
end

def loadable?(t, _ctx)
load_all_types
!@all_types[t.graphql_name] && @cached_visible[t]
end

Expand Down Expand Up @@ -304,7 +305,7 @@ def load_all_types
end

def referenced?(type_defn)
@schema.visibility.top_level.references[type_defn].any? { |ref_member| ref_member == true || @cached_visible[ref_member] }
@schema.visibility.top_level.references[type_defn].any? { |r| r == true || @cached_visible[r] }
end

def possible_types_for(type)
Expand Down

0 comments on commit dcafcaa

Please sign in to comment.