graphql 1.5.7.1 → 1.5.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1d62327a63cfe014162e4914f6667336e606e8ff
4
- data.tar.gz: 2605ce8d9b8c31b29ad2c539f4da250e02450f66
3
+ metadata.gz: 96bef39c8a37b049f8843e78d2f15f1c10430d16
4
+ data.tar.gz: 23c0c140f6e0bba9fc17468b702102d61cd48044
5
5
  SHA512:
6
- metadata.gz: dc114df5775f181f92b11aff4c4eaf022506b994d69889fd88643fa7f0b03348ffaddfe7e2851032a6a384259629d5484dfbabb9b7e7185875336390066037f4
7
- data.tar.gz: 490d0958520560087668555b95e91d4188a068a32ab87f9d02d21924da843b9108da9cac3d558b36314705344737a4271a537ce66535f441030a240a6e02747a
6
+ metadata.gz: f5e3451aa0669e2896255851dcfdae11fae11e190db815d2b322076915633f482eef27749374cdab094fdd456ba6420afce12b075f25a71aa709da57374184f3
7
+ data.tar.gz: 442f220e5edf3087e9bc4fed9fa263096a551c66d88d01f03d58fe431eee72a7fb9067a54569d4f33768a2ebb274f8ec91e4492223281febe29eb12164039c87
@@ -167,6 +167,7 @@ module GraphQL
167
167
  "PUSH",
168
168
  "Query.push: 1",
169
169
  "Query.push: 2",
170
+ "Query.pushes: [1, 2, 3]",
170
171
  "PUSH",
171
172
  "LazyPush.push: 3",
172
173
  "LazyPushEdge.node: 1",
@@ -37,6 +37,10 @@ module GraphQL
37
37
  def push
38
38
  @values.map { |v| LazyPush.new(@ctx, v) }
39
39
  end
40
+
41
+ def value
42
+ @values
43
+ end
40
44
  end
41
45
 
42
46
  module LazyInstrumentation
@@ -4,8 +4,9 @@ module GraphQL
4
4
  module AssignConnection
5
5
  def self.call(type_defn, *field_args, max_page_size: nil, **field_kwargs, &field_block)
6
6
  underlying_field = GraphQL::Define::AssignObjectField.call(type_defn, *field_args, **field_kwargs, &field_block)
7
- connection_field = GraphQL::Relay::ConnectionField.create(underlying_field, max_page_size: max_page_size)
8
- type_defn.fields[underlying_field.name] = connection_field
7
+ underlying_field.connection_max_page_size = max_page_size
8
+ underlying_field.connection = true
9
+ type_defn.fields[underlying_field.name] = underlying_field
9
10
  end
10
11
  end
11
12
  end
@@ -28,8 +28,8 @@ module GraphQL
28
28
  false
29
29
  end
30
30
  when GraphQL::UnionType
31
- # A type is a subtype of that interface
32
- # if the union includes that interface
31
+ # A type is a subtype of that union
32
+ # if the union includes that type
33
33
  parent_type.possible_types.include?(child_type)
34
34
  when GraphQL::ListType
35
35
  # A list type is a subtype of another list type
@@ -177,6 +177,16 @@ module GraphQL
177
177
  # @return [Object, GraphQL::Function] The function used to derive this field
178
178
  attr_accessor :function
179
179
 
180
+ attr_writer :connection
181
+
182
+ # @return [Boolean]
183
+ def connection?
184
+ @connection
185
+ end
186
+
187
+ # @return [nil, Integer]
188
+ attr_accessor :connection_max_page_size
189
+
180
190
  def initialize
181
191
  @complexity = 1
182
192
  @arguments = {}
@@ -184,6 +194,8 @@ module GraphQL
184
194
  @lazy_resolve_proc = DefaultLazyResolve
185
195
  @relay_node_field = false
186
196
  @default_arguments = nil
197
+ @connection = false
198
+ @connection_max_page_size = nil
187
199
  end
188
200
 
189
201
  def initialize_copy(other)
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require "graphql/internal_representation/node"
3
+ require "graphql/internal_representation/print"
3
4
  require "graphql/internal_representation/rewrite"
4
5
  require "graphql/internal_representation/scope"
5
6
  require "graphql/internal_representation/visit"
@@ -19,6 +19,9 @@ module GraphQL
19
19
  if @scoped_children.any?
20
20
  all_object_types = Set.new
21
21
  scoped_children.each_key { |t| all_object_types.merge(@query.possible_types(t)) }
22
+ # Remove any scoped children which don't follow this return type
23
+ # (This can happen with fragment merging where lexical scope is lost)
24
+ all_object_types &= @query.possible_types(@return_type)
22
25
  all_object_types.each do |t|
23
26
  new_tc[t] = get_typed_children(t)
24
27
  end
@@ -111,19 +114,23 @@ module GraphQL
111
114
 
112
115
  # Merge selections from `new_parent` into `self`.
113
116
  # Selections are merged in place, not copied.
114
- def deep_merge_node(new_parent, merge_self: true)
117
+ def deep_merge_node(new_parent, scope: nil, merge_self: true)
115
118
  if merge_self
116
- @ast_nodes |= new_parent.ast_nodes
117
- @definitions |= new_parent.definitions
119
+ @ast_nodes.concat(new_parent.ast_nodes)
120
+ @definitions.concat(new_parent.definitions)
118
121
  end
122
+ scope ||= Scope.new(@query, @return_type)
119
123
  new_parent.scoped_children.each do |obj_type, new_fields|
120
- prev_fields = @scoped_children[obj_type]
121
- new_fields.each do |name, new_node|
122
- prev_node = prev_fields[name]
123
- if prev_node
124
- prev_node.deep_merge_node(new_node)
125
- else
126
- prev_fields[name] = new_node
124
+ inner_scope = scope.enter(obj_type)
125
+ inner_scope.each do |scoped_type|
126
+ prev_fields = @scoped_children[scoped_type]
127
+ new_fields.each do |name, new_node|
128
+ prev_node = prev_fields[name]
129
+ if prev_node
130
+ prev_node.deep_merge_node(new_node)
131
+ else
132
+ prev_fields[name] = new_node
133
+ end
127
134
  end
128
135
  end
129
136
  end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+ module GraphQL
3
+ module InternalRepresentation
4
+ module Print
5
+ module_function
6
+
7
+ def print(schema, query_string)
8
+ query = GraphQL::Query.new(schema, query_string)
9
+ print_node(query.irep_selection)
10
+ end
11
+
12
+ def print_node(node, indent: 0)
13
+ padding = " " * indent
14
+ typed_children_padding = " " * (indent + 2)
15
+ query_str = "".dup
16
+
17
+ if !node.definition
18
+ op_node = node.ast_node
19
+ name = op_node.name ? " " + op_node.name : ""
20
+ op_type = op_node.operation_type
21
+ query_str << "#{op_type}#{name}"
22
+ else
23
+ if node.name == node.definition_name
24
+ query_str << "#{padding}#{node.name}"
25
+ else
26
+ query_str << "#{padding}#{node.name}: #{node.definition_name}"
27
+ end
28
+
29
+ args = node.ast_nodes.map { |n| n.arguments.map(&:to_query_string).join(",") }.uniq
30
+ query_str << args.map { |a| "(#{a})"}.join("|")
31
+ end
32
+
33
+ if node.typed_children.any?
34
+ query_str << " {\n"
35
+ node.typed_children.each do |type, children|
36
+ query_str << "#{typed_children_padding}... on #{type.name} {\n"
37
+ children.each do |name, child|
38
+ query_str << print_node(child, indent: indent + 4)
39
+ end
40
+ query_str << "#{typed_children_padding}}\n"
41
+ end
42
+ query_str << "#{padding}}\n"
43
+ else
44
+ query_str << "\n"
45
+ end
46
+
47
+ query_str
48
+ end
49
+ end
50
+ end
51
+ end
@@ -31,6 +31,8 @@ module GraphQL
31
31
  # Hash<Nodes::FragmentSpread => Set<InternalRepresentation::Node>>
32
32
  # A record of fragment spreads and the irep nodes that used them
33
33
  spread_parents = Hash.new { |h, k| h[k] = Set.new }
34
+ # Hash<Nodes::FragmentSpread => Scope>
35
+ spread_scopes = {}
34
36
  # Array<Set<InternalRepresentation::Node>>
35
37
  # The current point of the irep_tree during visitation
36
38
  nodes_stack = []
@@ -124,6 +126,7 @@ module GraphQL
124
126
  if skip_nodes.none? && !skip?(ast_node, query)
125
127
  # Register the irep nodes that depend on this AST node:
126
128
  spread_parents[ast_node].merge(nodes_stack.last)
129
+ spread_scopes[ast_node] = scopes_stack.last
127
130
  end
128
131
  }
129
132
 
@@ -139,8 +142,9 @@ module GraphQL
139
142
  if fragment_node
140
143
  spread_ast_nodes.each do |spread_ast_node|
141
144
  parent_nodes = spread_parents[spread_ast_node]
145
+ parent_scope = spread_scopes[spread_ast_node]
142
146
  parent_nodes.each do |parent_node|
143
- parent_node.deep_merge_node(fragment_node, merge_self: false)
147
+ parent_node.deep_merge_node(fragment_node, scope: parent_scope, merge_self: false)
144
148
  end
145
149
  end
146
150
  end
@@ -11,6 +11,6 @@ require 'graphql/relay/relation_connection'
11
11
  require 'graphql/relay/global_id_resolve'
12
12
  require 'graphql/relay/mutation'
13
13
  require 'graphql/relay/node'
14
- require 'graphql/relay/connection_field'
14
+ require 'graphql/relay/connection_instrumentation'
15
15
  require 'graphql/relay/connection_resolve'
16
16
  require 'graphql/relay/connection_type'
@@ -2,12 +2,11 @@
2
2
  module GraphQL
3
3
  module Relay
4
4
  # Provided a GraphQL field which returns a collection of nodes,
5
- # `ConnectionField.create` modifies that field to expose those nodes
6
- # as a collection.
5
+ # wrap that field to expose those nodes as a connection.
7
6
  #
8
7
  # The original resolve proc is used to fetch nodes,
9
8
  # then a connection implementation is fetched with {BaseConnection.connection_for_nodes}.
10
- class ConnectionField
9
+ module ConnectionInstrumentation
11
10
  ARGUMENT_DEFINITIONS = [
12
11
  ["first", GraphQL::INT_TYPE, "Returns the first _n_ elements from the list."],
13
12
  ["after", GraphQL::STRING_TYPE, "Returns the elements in the list that come after the specified global ID."],
@@ -28,14 +27,21 @@ module GraphQL
28
27
  # Build a connection field from a {GraphQL::Field} by:
29
28
  # - Merging in the default arguments
30
29
  # - Transforming its resolve function to return a connection object
31
- # @param underlying_field [GraphQL::Field] A field which returns nodes to be wrapped as a connection
32
- # @param max_page_size [Integer] The maximum number of nodes which may be requested (if a larger page is requested, it is limited to this number)
33
- # @return [GraphQL::Field] A redefined field with connection behavior
34
- def self.create(underlying_field, max_page_size: nil)
35
- connection_arguments = DEFAULT_ARGUMENTS.merge(underlying_field.arguments)
36
- original_resolve = underlying_field.resolve_proc
37
- connection_resolve = GraphQL::Relay::ConnectionResolve.new(underlying_field, original_resolve, max_page_size: max_page_size)
38
- underlying_field.redefine(resolve: connection_resolve, arguments: connection_arguments)
30
+ def self.instrument(type, field)
31
+ if field.connection?
32
+ connection_arguments = DEFAULT_ARGUMENTS.merge(field.arguments)
33
+ original_resolve = field.resolve_proc
34
+ original_lazy_resolve = field.lazy_resolve_proc
35
+ connection_resolve = GraphQL::Relay::ConnectionResolve.new(field, original_resolve)
36
+ connection_lazy_resolve = GraphQL::Relay::ConnectionResolve.new(field, original_lazy_resolve)
37
+ field.redefine(
38
+ resolve: connection_resolve,
39
+ lazy_resolve: connection_lazy_resolve,
40
+ arguments: connection_arguments,
41
+ )
42
+ else
43
+ field
44
+ end
39
45
  end
40
46
  end
41
47
  end
@@ -2,18 +2,16 @@
2
2
  module GraphQL
3
3
  module Relay
4
4
  class ConnectionResolve
5
- def initialize(field, underlying_resolve, max_page_size: nil)
5
+ def initialize(field, underlying_resolve)
6
6
  @field = field
7
7
  @underlying_resolve = underlying_resolve
8
- @max_page_size = max_page_size
8
+ @max_page_size = field.connection_max_page_size
9
9
  end
10
10
 
11
11
  def call(obj, args, ctx)
12
12
  nodes = @underlying_resolve.call(obj, args, ctx)
13
13
  if ctx.schema.lazy?(nodes)
14
- @field.prepare_lazy(nodes, args, ctx).then { |resolved_nodes|
15
- build_connection(resolved_nodes, args, obj, ctx)
16
- }
14
+ nodes
17
15
  else
18
16
  build_connection(nodes, args, obj, ctx)
19
17
  end
@@ -122,7 +122,7 @@ module GraphQL
122
122
  end
123
123
 
124
124
  def resolve=(new_resolve_proc)
125
- @resolve_proc = MutationResolve.new(self, new_resolve_proc, wrap_result: has_generated_return_type?)
125
+ @resolve_proc = new_resolve_proc
126
126
  end
127
127
 
128
128
  def field
@@ -218,20 +218,34 @@ module GraphQL
218
218
  end
219
219
  end
220
220
 
221
+ module MutationInstrumentation
222
+ def self.instrument(type, field)
223
+ if field.mutation
224
+ new_resolve = MutationResolve.new(field.mutation, field.resolve_proc)
225
+ new_lazy_resolve = MutationResolve.new(field.mutation, field.lazy_resolve_proc)
226
+ field.redefine(resolve: new_resolve, lazy_resolve: new_lazy_resolve)
227
+ else
228
+ field
229
+ end
230
+ end
231
+ end
232
+
221
233
  class MutationResolve
222
- def initialize(mutation, resolve, wrap_result:)
234
+ def initialize(mutation, resolve)
223
235
  @mutation = mutation
224
236
  @resolve = resolve
225
- @wrap_result = wrap_result
237
+ @wrap_result = mutation.has_generated_return_type?
226
238
  end
227
239
 
228
240
  def call(obj, args, ctx)
229
- mutation_result = @resolve.call(obj, args[:input], ctx)
241
+ begin
242
+ mutation_result = @resolve.call(obj, args[:input], ctx)
243
+ rescue GraphQL::ExecutionError => err
244
+ mutation_result = err
245
+ end
230
246
 
231
247
  if ctx.schema.lazy?(mutation_result)
232
- @mutation.field.prepare_lazy(mutation_result, args, ctx).then { |inner_obj|
233
- build_result(inner_obj, args, ctx)
234
- }
248
+ mutation_result
235
249
  else
236
250
  build_result(mutation_result, args, ctx)
237
251
  end
@@ -5,10 +5,10 @@ module GraphQL
5
5
  PageInfo = GraphQL::ObjectType.define do
6
6
  name("PageInfo")
7
7
  description("Information about pagination in a connection.")
8
- field :hasNextPage, !types.Boolean, "Indicates if there are more pages to fetch", property: :has_next_page
9
- field :hasPreviousPage, !types.Boolean, "Indicates if there are any pages prior to the current page", property: :has_previous_page
10
- field :startCursor, types.String, "When paginating backwards, the cursor to continue", property: :start_cursor
11
- field :endCursor, types.String, "When paginating forwards, the cursor to continue", property: :end_cursor
8
+ field :hasNextPage, !types.Boolean, "When paginating forwards, are there more items?", property: :has_next_page
9
+ field :hasPreviousPage, !types.Boolean, "When paginating backwards, are there more items?", property: :has_previous_page
10
+ field :startCursor, types.String, "When paginating backwards, the cursor to continue.", property: :start_cursor
11
+ field :endCursor, types.String, "When paginating forwards, the cursor to continue.", property: :end_cursor
12
12
  default_relay true
13
13
  end
14
14
  end
@@ -433,8 +433,15 @@ module GraphQL
433
433
 
434
434
  private
435
435
 
436
+ # Apply instrumentation to fields. Relay instrumentation is applied last
437
+ # so that user-provided instrumentation can wrap user-provided resolve functions,
438
+ # _then_ Relay helpers can wrap the returned objects.
436
439
  def build_instrumented_field_map
437
- @instrumented_field_map = InstrumentedFieldMap.new(self, @instrumenters[:field])
440
+ all_instrumenters = @instrumenters[:field] + [
441
+ GraphQL::Relay::ConnectionInstrumentation,
442
+ GraphQL::Relay::Mutation::MutationInstrumentation,
443
+ ]
444
+ @instrumented_field_map = InstrumentedFieldMap.new(self, all_instrumenters)
438
445
  end
439
446
 
440
447
  def build_types_map
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GraphQL
3
- VERSION = "1.5.7.1"
3
+ VERSION = "1.5.8"
4
4
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ require "spec_helper"
3
+
4
+ describe GraphQL::InternalRepresentation::Print do
5
+ describe "printing queries" do
6
+ let(:query_str) { <<-GRAPHQL
7
+ {
8
+ cheese(id: 1) {
9
+ flavor
10
+ ...EdibleFields
11
+ ... on Edible {
12
+ o2: origin
13
+ }
14
+ }
15
+ }
16
+
17
+ fragment EdibleFields on Edible {
18
+ o: origin
19
+ }
20
+ GRAPHQL
21
+ }
22
+ it "prints the rewritten query" do
23
+ query_plan = GraphQL::InternalRepresentation::Print.print(Dummy::Schema, query_str)
24
+ expected_plan = <<-GRAPHQL
25
+ query {
26
+ ... on Query {
27
+ cheese(id: 1) {
28
+ ... on Cheese {
29
+ flavor()
30
+ o2: origin()
31
+ o: origin()
32
+ }
33
+ }
34
+ }
35
+ }
36
+ GRAPHQL
37
+
38
+ assert_equal expected_plan, query_plan
39
+ end
40
+ end
41
+ end
@@ -6,7 +6,6 @@ describe GraphQL::InternalRepresentation::Rewrite do
6
6
  GraphQL::Schema.from_definition <<-GRAPHQL
7
7
  type Query {
8
8
  plant(id: ID!): Plant
9
- fruit(id: ID!): [Fruit!]
10
9
  }
11
10
 
12
11
  union Plant = Grain | Fruit | Vegetable | Nut
@@ -45,11 +44,7 @@ describe GraphQL::InternalRepresentation::Rewrite do
45
44
  habitats: [Habitat]
46
45
  }
47
46
 
48
- interface Environ {
49
- seasons: [String]
50
- }
51
-
52
- type Habitat implements Environ {
47
+ type Habitat {
53
48
  residentName: String!
54
49
  averageWeight: Int!
55
50
  seasons: [String]
@@ -113,7 +108,7 @@ describe GraphQL::InternalRepresentation::Rewrite do
113
108
  assert_equal nil, doc.definition
114
109
 
115
110
  plant_scoped_selection = doc.scoped_children[schema.types["Query"]]["plant"]
116
- assert_equal ["Fruit", "Nut", "Plant", "Tree"], plant_scoped_selection.scoped_children.keys.map(&:name).sort
111
+ assert_equal ["Fruit", "Nut", "Plant"], plant_scoped_selection.scoped_children.keys.map(&:name).sort
117
112
 
118
113
  plant_selection = doc.typed_children[schema.types["Query"]]["plant"]
119
114
  assert_equal ["Fruit", "Grain", "Nut", "Vegetable"], plant_selection.typed_children.keys.map(&:name).sort
@@ -291,36 +286,4 @@ describe GraphQL::InternalRepresentation::Rewrite do
291
286
  end
292
287
  end
293
288
  end
294
-
295
- describe "fragment merging bug" do
296
- let(:query_string) {
297
- <<-GRAPHQL
298
- {
299
- ...Frag1
300
- __type(name: "Query") {
301
- ...Frag2
302
- }
303
- }
304
-
305
- fragment Frag1 on Query {
306
- __type(name: "Query") {
307
- ...Frag2
308
- }
309
- }
310
-
311
- fragment Frag2 on __Type {
312
- __typename
313
- }
314
- GRAPHQL
315
- }
316
-
317
- it "finishes" do
318
- doc = rewrite_result[nil]
319
- type_node = doc.typed_children[schema.types["Query"]]["__type"]
320
- typename_node = type_node.typed_children[schema.types["__Type"]]["__typename"]
321
- assert_equal 1, typename_node.ast_nodes.size
322
- assert_equal 15, typename_node.ast_node.line
323
- assert_equal 9, typename_node.ast_node.col
324
- end
325
- end
326
289
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require "spec_helper"
3
3
 
4
- describe GraphQL::Relay::ConnectionField do
4
+ describe GraphQL::Relay::ConnectionInstrumentation do
5
5
  it "replaces the previous field definition" do
6
6
  test_type = GraphQL::ObjectType.define do
7
7
  name "Test"
@@ -16,7 +16,7 @@ describe GraphQL::Relay::ConnectionField do
16
16
  assert_instance_of StarWars::ShipsWithMaxPageSize, conn_field.function
17
17
  end
18
18
 
19
- it "leaves the original field untouched" do
19
+ let(:build_schema) {
20
20
  test_type = nil
21
21
 
22
22
  test_field = GraphQL::Field.define do
@@ -29,7 +29,15 @@ describe GraphQL::Relay::ConnectionField do
29
29
  connection :tests, test_field
30
30
  end
31
31
 
32
- conn_field = test_type.fields["tests"]
32
+ [
33
+ test_field,
34
+ GraphQL::Schema.define(query: test_type, raise_definition_error: true)
35
+ ]
36
+ }
37
+
38
+ it "leaves the original field untouched" do
39
+ test_field, test_schema = build_schema
40
+ conn_field = test_schema.get_field(test_schema.query, "tests")
33
41
 
34
42
  assert_equal 0, test_field.arguments.length
35
43
  assert_equal 4, conn_field.arguments.length
@@ -39,12 +47,8 @@ describe GraphQL::Relay::ConnectionField do
39
47
  end
40
48
 
41
49
  it "passes connection behaviors to redefinitions" do
42
- test_type = GraphQL::ObjectType.define do
43
- name "Test"
44
- connection :tests, test_type.connection_type
45
- end
46
-
47
- connection_field = test_type.fields["tests"]
50
+ _test_field, test_schema = build_schema
51
+ connection_field = test_schema.get_field(test_schema.query, "tests")
48
52
  redefined_connection_field = connection_field.redefine { argument "name", types.String }
49
53
 
50
54
  assert_equal 4, connection_field.arguments.size
@@ -422,19 +422,28 @@ describe GraphQL::StaticValidation::FieldsWillMerge do
422
422
  {
423
423
  pet {
424
424
  ... on Dog {
425
- name(surname: true)
425
+ ...X
426
426
  }
427
427
  ... on Cat {
428
- name
428
+ ...Y
429
429
  }
430
430
  }
431
431
  }
432
+
433
+ fragment X on Pet {
434
+ name(surname: true)
435
+ }
436
+
437
+ fragment Y on Pet {
438
+ name
439
+ }
432
440
  |}
433
441
 
434
442
  it "passes rule" do
435
443
  assert_equal [], errors
436
444
  end
437
445
  end
446
+
438
447
  describe "return types must be unambiguous" do
439
448
  let(:schema) {
440
449
  GraphQL::Schema.from_definition(%|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.7.1
4
+ version: 1.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-09 00:00:00.000000000 Z
11
+ date: 2017-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -363,6 +363,7 @@ files:
363
363
  - lib/graphql/interface_type.rb
364
364
  - lib/graphql/internal_representation.rb
365
365
  - lib/graphql/internal_representation/node.rb
366
+ - lib/graphql/internal_representation/print.rb
366
367
  - lib/graphql/internal_representation/rewrite.rb
367
368
  - lib/graphql/internal_representation/scope.rb
368
369
  - lib/graphql/internal_representation/visit.rb
@@ -420,7 +421,7 @@ files:
420
421
  - lib/graphql/relay.rb
421
422
  - lib/graphql/relay/array_connection.rb
422
423
  - lib/graphql/relay/base_connection.rb
423
- - lib/graphql/relay/connection_field.rb
424
+ - lib/graphql/relay/connection_instrumentation.rb
424
425
  - lib/graphql/relay/connection_resolve.rb
425
426
  - lib/graphql/relay/connection_type.rb
426
427
  - lib/graphql/relay/edge.rb
@@ -533,6 +534,7 @@ files:
533
534
  - spec/graphql/input_object_type_spec.rb
534
535
  - spec/graphql/int_type_spec.rb
535
536
  - spec/graphql/interface_type_spec.rb
537
+ - spec/graphql/internal_representation/print_spec.rb
536
538
  - spec/graphql/internal_representation/rewrite_spec.rb
537
539
  - spec/graphql/introspection/directive_type_spec.rb
538
540
  - spec/graphql/introspection/input_value_type_spec.rb
@@ -558,7 +560,7 @@ files:
558
560
  - spec/graphql/query_spec.rb
559
561
  - spec/graphql/relay/array_connection_spec.rb
560
562
  - spec/graphql/relay/base_connection_spec.rb
561
- - spec/graphql/relay/connection_field_spec.rb
563
+ - spec/graphql/relay/connection_instrumentation_spec.rb
562
564
  - spec/graphql/relay/connection_resolve_spec.rb
563
565
  - spec/graphql/relay/connection_type_spec.rb
564
566
  - spec/graphql/relay/mutation_spec.rb
@@ -679,6 +681,7 @@ test_files:
679
681
  - spec/graphql/input_object_type_spec.rb
680
682
  - spec/graphql/int_type_spec.rb
681
683
  - spec/graphql/interface_type_spec.rb
684
+ - spec/graphql/internal_representation/print_spec.rb
682
685
  - spec/graphql/internal_representation/rewrite_spec.rb
683
686
  - spec/graphql/introspection/directive_type_spec.rb
684
687
  - spec/graphql/introspection/input_value_type_spec.rb
@@ -704,7 +707,7 @@ test_files:
704
707
  - spec/graphql/query_spec.rb
705
708
  - spec/graphql/relay/array_connection_spec.rb
706
709
  - spec/graphql/relay/base_connection_spec.rb
707
- - spec/graphql/relay/connection_field_spec.rb
710
+ - spec/graphql/relay/connection_instrumentation_spec.rb
708
711
  - spec/graphql/relay/connection_resolve_spec.rb
709
712
  - spec/graphql/relay/connection_type_spec.rb
710
713
  - spec/graphql/relay/mutation_spec.rb