module GraphQL::Client::DefinitionVariables

def self.operation_variables(schema, document, definition_name = nil)

Returns a Hash[Symbol] to VariableDefinition objects.

definition_name - A String definition name. Defaults to anonymous definition.
document - A GraphQL::Language::Nodes::Document to scan
schema - A GraphQL::Schema

definition.
Internal: Detect all variables used in a given operation or fragment
def self.operation_variables(schema, document, definition_name = nil)
  variables(schema, document, definition_name).map { |name, type|
    GraphQL::Language::Nodes::VariableDefinition.new(name: name.to_s, type: variable_node(type))
  }
end