Sha256: 1a39608da39a1ccc671d8fd1cf6841eb29edec4b0bffb15f46aafb5477fa3dbe

Contents?: true

Size: 934 Bytes

Versions: 4

Compression:

Stored size: 934 Bytes

Contents

# frozen_string_literal: true
module GraphQL
  class Query
    module ArgumentsCache
      # @return [Hash<InternalRepresentation::Node, GraphQL::Language::NodesDirectiveNode => Hash<GraphQL::Field, GraphQL::Directive => GraphQL::Query::Arguments>>]
      def self.build(query)
        Hash.new do |h1, irep_or_ast_node|
          h1[irep_or_ast_node] = Hash.new do |h2, definition|
            ast_node = irep_or_ast_node.is_a?(GraphQL::InternalRepresentation::Node) ? irep_or_ast_node.ast_node : irep_or_ast_node
            ast_arguments = ast_node.arguments
            h2[definition] = if definition.arguments.none?
              GraphQL::Query::Arguments::NO_ARGS
            else
              GraphQL::Query::LiteralInput.from_arguments(
                ast_arguments,
                definition.arguments,
                query.variables,
              )
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
graphql-1.6.6 lib/graphql/query/arguments_cache.rb
graphql-1.6.5 lib/graphql/query/arguments_cache.rb
graphql-1.6.4 lib/graphql/query/arguments_cache.rb
graphql-1.6.3 lib/graphql/query/arguments_cache.rb