module GraphQL::Schema::Member::HasFields::InterfaceMethods
def fields(context = GraphQL::Query::NullContext.instance)
-
(Hash
- Fields on this object, keyed by name, including inherited fieldsGraphQL::Schema::Field>)
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