Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
graphql / lib / graphql / string_type.rb
Size: Mime:
# frozen_string_literal: true
GraphQL::STRING_TYPE = GraphQL::ScalarType.define do
  name "String"
  description "Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text."

  coerce_result ->(value, ctx) {
    begin
      str = value.to_s
      str.encoding == Encoding::UTF_8 ? str : str.encode(Encoding::UTF_8)
    rescue EncodingError
      err = GraphQL::StringEncodingError.new(str)
      ctx.schema.type_error(err, ctx)
    end
  }

  coerce_input ->(value, _ctx) { value.is_a?(String) ? value : nil }
  default_scalar true
end