Sha256: 0ca54e01be780a9698867818537c439de56aa71c38d626ff4115902853cc903f

Contents?: true

Size: 708 Bytes

Versions: 3

Compression:

Stored size: 708 Bytes

Contents

# frozen_string_literal: true

module GraphQL
  module Stitching
    # Builds hidden selection fields added by stitiching code,
    # used to request operational data about resolved objects.
    class ExportSelection
      EXPORT_PREFIX = "_export_"

      class << self
        def key?(name)
          return false unless name

          name.start_with?(EXPORT_PREFIX)
        end

        def key(name)
          "#{EXPORT_PREFIX}#{name}"
        end

        def key_node(field_name)
          GraphQL::Language::Nodes::Field.new(alias: key(field_name), name: field_name)
        end

        def typename_node
          @typename_node ||= key_node("__typename")
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
graphql-stitching-1.1.0 lib/graphql/stitching/export_selection.rb
graphql-stitching-1.0.6 lib/graphql/stitching/export_selection.rb
graphql-stitching-1.0.5 lib/graphql/stitching/export_selection.rb