module GraphQL::Schema::Member::HasFields::InterfaceMethods

def fields(context = GraphQL::Query::NullContext.instance)

Returns:
  • (Hash GraphQL::Schema::Field>) - Fields on this object, keyed by name, including inherited fields
def fields(context = GraphQL::Query::NullContext.instance)
  warden = Warden.from_context(context)
  # Local overrides take precedence over inherited fields
  visible_fields = {}
  for ancestor in ancestors
    if ancestor.respond_to?(:own_fields)
      ancestor.own_fields.each do |field_name, fields_entry|
        # Choose the most local definition that passes `.visible?` --
        # stop checking for fields by name once one has been found.
        if !visible_fields.key?(field_name) && (f = Warden.visible_entry?(:visible_field?, fields_entry, context, warden))
          visible_fields[field_name] = f
        end
      end
    end
  end
  visible_fields
end

def get_field(field_name, context = GraphQL::Query::NullContext.instance)

def get_field(field_name, context = GraphQL::Query::NullContext.instance)
  warden = Warden.from_context(context)
  for ancestor in ancestors
    if ancestor.respond_to?(:own_fields) &&
        (f_entry = ancestor.own_fields[field_name]) &&
        (f = Warden.visible_entry?(:visible_field?, f_entry, context, warden))
      return f
    end
  end
  nil
end