Module: GraphQL::Types::Relay::ConnectionBehaviors

Extended by:
Forwardable
Included in:
BaseConnection
Defined in:
lib/graphql/types/relay/connection_behaviors.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.add_page_info_field(obj_type) ⇒ Object


147
148
149
# File 'lib/graphql/types/relay/connection_behaviors.rb', line 147

def add_page_info_field(obj_type)
  obj_type.field :page_info, GraphQL::Types::Relay::PageInfo, null: false, description: "Information to aid in pagination."
end

Instance Method Details

#edgesObject


158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/graphql/types/relay/connection_behaviors.rb', line 158

def edges
  if @object.is_a?(GraphQL::Pagination::Connection)
    @object.edges
  elsif context.interpreter?
    context.schema.after_lazy(object.edge_nodes) do |nodes|
      nodes.map { |n| self.class.edge_class.new(n, object) }
    end
  else
    # This is done by edges_instrumentation
    @object.edge_nodes
  end
end

#nodesObject

By default this calls through to the ConnectionWrapper's edge nodes method, but sometimes you need to override it to support the nodes field


154
155
156
# File 'lib/graphql/types/relay/connection_behaviors.rb', line 154

def nodes
  @object.edge_nodes
end