module GraphQL::Client::DefinitionVariables
def self.variables(schema, document, definition_name = nil)
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.variables(schema, document, definition_name = nil) unless schema.is_a?(GraphQL::Schema) || (schema.is_a?(Class) && schema < GraphQL::Schema) raise TypeError, "expected schema to be a GraphQL::Schema, but was #{schema.class}" end unless document.is_a?(GraphQL::Language::Nodes::Document) raise TypeError, "expected document to be a GraphQL::Language::Nodes::Document, but was #{document.class}" end sliced_document = GraphQL::Language::DefinitionSlice.slice(document, definition_name) visitor = VariablesVisitor.new(sliced_document, schema: schema) visitor.visit visitor.variables end