lib/graphql/schema/union.rb in graphql-1.9.21 vs lib/graphql/schema/union.rb in graphql-1.10.0.pre1

- old
+ new

@@ -3,53 +3,34 @@ class Schema class Union < GraphQL::Schema::Member extend GraphQL::Schema::Member::AcceptsDefinition class << self - def possible_types(*types, context: GraphQL::Query::NullContext, **options) + def possible_types(*types) if types.any? - types.each do |t| - type_memberships << type_membership_class.new(self, t, **options) - end + @possible_types = types else - visible_types = [] - type_memberships.each do |type_membership| - if type_membership.visible?(context) - visible_types << type_membership.object_type - end - end - visible_types + all_possible_types = @possible_types || [] + all_possible_types += super if defined?(super) + all_possible_types.uniq end end def to_graphql type_defn = GraphQL::UnionType.new type_defn.name = graphql_name type_defn.description = description - type_defn.type_memberships = type_memberships + type_defn.possible_types = possible_types + type_defn.ast_node = ast_node if respond_to?(:resolve_type) type_defn.resolve_type = method(:resolve_type) end type_defn.metadata[:type_class] = self type_defn end - def type_membership_class(membership_class = nil) - if membership_class - @type_membership_class = membership_class - else - @type_membership_class || find_inherited_value(:type_membership_class, GraphQL::Schema::TypeMembership) - end - end - def kind GraphQL::TypeKinds::UNION - end - - private - - def type_memberships - @type_memberships ||= [] end end end end end