@@ -11,7 +11,10 @@ module Stitching
1111 # representing various graph locations and merges them into one
1212 # combined Supergraph that is validated for integrity.
1313 class Composer
14- include Formatter
14+ # @api private
15+ class DefaultFormatter
16+ extend Formatter
17+ end
1518
1619 # @api private
1720 NO_DEFAULT_VALUE = begin
@@ -55,7 +58,7 @@ def initialize(
5558 @mutation_name = mutation_name
5659 @subscription_name = subscription_name
5760 @root_entrypoints = root_entrypoints || { }
58- @formatter = formatter || self
61+ @formatter = formatter || DefaultFormatter
5962
6063 @field_map = { }
6164 @resolver_map = { }
@@ -217,7 +220,7 @@ def build_directive(directive_name, directives_by_location)
217220
218221 Class . new ( GraphQL ::Schema ::Directive ) do
219222 graphql_name ( directive_name )
220- description ( builder . merge_member_descriptions ( directive_name , directives_by_location ) )
223+ description ( builder . merge_descriptions ( directive_name , directives_by_location ) )
221224 repeatable ( directives_by_location . values . any? ( &:repeatable? ) )
222225 locations ( *directives_by_location . values . flat_map ( &:locations ) . tap ( &:uniq! ) )
223226 builder . build_merged_arguments ( directive_name , directives_by_location , self , directive_name : directive_name )
@@ -234,7 +237,7 @@ def build_scalar_type(type_name, types_by_location)
234237
235238 Class . new ( GraphQL ::Stitching ::Supergraph ::ScalarType ) do
236239 graphql_name ( type_name )
237- description ( builder . merge_member_descriptions ( type_name , types_by_location ) )
240+ description ( builder . merge_descriptions ( type_name , types_by_location ) )
238241 builder . build_merged_directives ( type_name , types_by_location , self )
239242 end
240243 end
@@ -261,14 +264,14 @@ def build_enum_type(type_name, types_by_location, enum_usage)
261264
262265 Class . new ( GraphQL ::Stitching ::Supergraph ::EnumType ) do
263266 graphql_name ( type_name )
264- description ( builder . merge_member_descriptions ( type_name , types_by_location ) )
267+ description ( builder . merge_descriptions ( type_name , types_by_location ) )
265268 builder . build_merged_directives ( type_name , types_by_location , self )
266269
267270 enum_values_by_name_location . each do |value_name , enum_values_by_location |
268271 enum_value = value ( value_name ,
269272 value : value_name ,
270- description : builder . merge_member_descriptions ( type_name , enum_values_by_location , enum_value : value_name ) ,
271- deprecation_reason : builder . merge_member_deprecations ( type_name , enum_values_by_location , enum_value : value_name ) ,
273+ description : builder . merge_descriptions ( type_name , enum_values_by_location , enum_value : value_name ) ,
274+ deprecation_reason : builder . merge_deprecations ( type_name , enum_values_by_location , enum_value : value_name ) ,
272275 )
273276
274277 builder . build_merged_directives ( type_name , enum_values_by_location , enum_value , enum_value : value_name )
@@ -283,7 +286,7 @@ def build_object_type(type_name, types_by_location)
283286
284287 Class . new ( GraphQL ::Stitching ::Supergraph ::ObjectType ) do
285288 graphql_name ( type_name )
286- description ( builder . merge_member_descriptions ( type_name , types_by_location ) )
289+ description ( builder . merge_descriptions ( type_name , types_by_location ) )
287290
288291 interface_names = types_by_location . values . flat_map { _1 . interfaces . map ( &:graphql_name ) }
289292 interface_names . tap ( &:uniq! ) . each do |interface_name |
@@ -303,7 +306,7 @@ def build_interface_type(type_name, types_by_location)
303306 Module . new do
304307 include GraphQL ::Stitching ::Supergraph ::InterfaceType
305308 graphql_name ( type_name )
306- description ( builder . merge_member_descriptions ( type_name , types_by_location ) )
309+ description ( builder . merge_descriptions ( type_name , types_by_location ) )
307310
308311 interface_names = types_by_location . values . flat_map { _1 . interfaces . map ( &:graphql_name ) }
309312 interface_names . tap ( &:uniq! ) . each do |interface_name |
@@ -322,7 +325,7 @@ def build_union_type(type_name, types_by_location)
322325
323326 Class . new ( GraphQL ::Stitching ::Supergraph ::UnionType ) do
324327 graphql_name ( type_name )
325- description ( builder . merge_member_descriptions ( type_name , types_by_location ) )
328+ description ( builder . merge_descriptions ( type_name , types_by_location ) )
326329
327330 possible_names = types_by_location . values . flat_map { _1 . possible_types . map ( &:graphql_name ) } . tap ( &:uniq! )
328331 possible_types ( *possible_names . map { builder . build_type_binding ( _1 ) } )
@@ -337,7 +340,7 @@ def build_input_object_type(type_name, types_by_location)
337340
338341 Class . new ( GraphQL ::Stitching ::Supergraph ::InputObjectType ) do
339342 graphql_name ( type_name )
340- description ( builder . merge_member_descriptions ( type_name , types_by_location ) )
343+ description ( builder . merge_descriptions ( type_name , types_by_location ) )
341344 builder . build_merged_arguments ( type_name , types_by_location , self )
342345 builder . build_merged_directives ( type_name , types_by_location , self )
343346 end
@@ -370,8 +373,8 @@ def build_merged_fields(type_name, types_by_location, owner)
370373 type = merge_value_types ( type_name , value_types , field_name : field_name )
371374 schema_field = owner . field (
372375 field_name ,
373- description : merge_member_descriptions ( type_name , fields_by_location , field_name : field_name ) ,
374- deprecation_reason : merge_member_deprecations ( type_name , fields_by_location , field_name : field_name ) ,
376+ description : merge_descriptions ( type_name , fields_by_location , field_name : field_name ) ,
377+ deprecation_reason : merge_deprecations ( type_name , fields_by_location , field_name : field_name ) ,
375378 type : Util . unwrap_non_null ( type ) ,
376379 null : !type . non_null? ,
377380 connection : false ,
@@ -423,8 +426,8 @@ def build_merged_arguments(type_name, members_by_location, owner, field_name: ni
423426 type = merge_value_types ( type_name , value_types , argument_name : argument_name , field_name : field_name )
424427 schema_argument = owner . argument (
425428 argument_name ,
426- description : merge_member_descriptions ( type_name , arguments_by_location , argument_name : argument_name , field_name : field_name ) ,
427- deprecation_reason : merge_member_deprecations ( type_name , arguments_by_location , argument_name : argument_name , field_name : field_name ) ,
429+ description : merge_descriptions ( type_name , arguments_by_location , argument_name : argument_name , field_name : field_name ) ,
430+ deprecation_reason : merge_deprecations ( type_name , arguments_by_location , argument_name : argument_name , field_name : field_name ) ,
428431 type : Util . unwrap_non_null ( type ) ,
429432 required : type . non_null? ,
430433 camelize : false ,
@@ -469,7 +472,7 @@ def build_merged_directives(type_name, members_by_location, owner, field_name: n
469472
470473 if ( profiles = kwarg_values_by_name_location [ "profiles" ] )
471474 @visibility_profiles . merge ( profiles . each_value . reduce ( &:| ) )
472- kwarg_formatter = self
475+ kwarg_formatter = DefaultFormatter
473476 end
474477 end
475478
@@ -523,7 +526,7 @@ def merge_value_types(type_name, subgraph_types, field_name: nil, argument_name:
523526
524527 # @!scope class
525528 # @!visibility private
526- def merge_member_descriptions ( type_name , members_by_location , field_name : nil , argument_name : nil , enum_value : nil )
529+ def merge_descriptions ( type_name , members_by_location , field_name : nil , argument_name : nil , enum_value : nil )
527530 strings_by_location = members_by_location . each_with_object ( { } ) { |( l , m ) , memo | memo [ l ] = m . description }
528531 @formatter . merge_descriptions ( strings_by_location , Formatter ::Info . new (
529532 type_name : type_name ,
@@ -535,7 +538,7 @@ def merge_member_descriptions(type_name, members_by_location, field_name: nil, a
535538
536539 # @!scope class
537540 # @!visibility private
538- def merge_member_deprecations ( type_name , members_by_location , field_name : nil , argument_name : nil , enum_value : nil )
541+ def merge_deprecations ( type_name , members_by_location , field_name : nil , argument_name : nil , enum_value : nil )
539542 strings_by_location = members_by_location . each_with_object ( { } ) { |( l , m ) , memo | memo [ l ] = m . deprecation_reason }
540543 @formatter . merge_deprecations ( strings_by_location , Formatter ::Info . new (
541544 type_name : type_name ,
0 commit comments