Class: GraphQL::Relay::ConnectionResolve

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/relay/connection_resolve.rb

Instance Method Summary collapse

Constructor Details

#initialize(field, underlying_resolve, max_page_size: nil) ⇒ ConnectionResolve

Returns a new instance of ConnectionResolve.



5
6
7
8
9
# File 'lib/graphql/relay/connection_resolve.rb', line 5

def initialize(field, underlying_resolve, max_page_size: nil)
  @field = field
  @underlying_resolve = underlying_resolve
  @max_page_size = max_page_size
end

Instance Method Details

#call(obj, args, ctx) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/graphql/relay/connection_resolve.rb', line 11

def call(obj, args, ctx)
  nodes = @underlying_resolve.call(obj, args, ctx)
  if ctx.schema.lazy?(nodes)
    @field.prepare_lazy(nodes, args, ctx).then { |resolved_nodes|
      build_connection(resolved_nodes, args, obj, ctx)
    }
  else
    build_connection(nodes, args, obj, ctx)
  end
end