class GraphQL::Schema::List
Represents a list type in the schema. Wraps a Schema::Member as a list type. See Schema::Member::TypeSystemHelpers#to_list_type Create a list type from another GraphQL type
Public Instance Methods
Source
# File lib/graphql/schema/list.rb, line 54 def coerce_input(value, ctx) if value.nil? nil else coerced = ensure_array(value).map { |item| item.nil? ? item : of_type.coerce_input(item, ctx) } ctx.schema.after_any_lazies(coerced, &:itself) end end
Source
# File lib/graphql/schema/list.rb, line 50 def coerce_result(value, ctx) value.map { |i| i.nil? ? nil : of_type.coerce_result(i, ctx) } end
Source
# File lib/graphql/schema/list.rb, line 46 def description nil end
Also for implementing introspection
Source
# File lib/graphql/schema/list.rb, line 41 def graphql_name nil end
This is for introspection, where itβs expected the name will be null
# File lib/graphql/schema/list.rb, line 18 def kind GraphQL::TypeKinds::LIST end
Returns
-
GraphQL::TypeKinds::LIST
Source
# File lib/graphql/schema/list.rb, line 32 def to_type_signature @type_signature ||= -"[#{@of_type.to_type_signature}]" end
# File lib/graphql/schema/list.rb, line 63 def validate_non_null_input(value, ctx, max_errors: nil) result = GraphQL::Query::InputValidationResult.new ensure_array(value).each_with_index do |item, index| item_result = of_type.validate_input(item, ctx) unless item_result.valid? if max_errors if max_errors == 0 add_max_errors_reached_message(result) break end max_errors -= 1 end result.merge_result!(index, item_result) end end result.valid? ? nil : result end