code: func getVariableValues(
  	schema Schema,
  	definitionASTs []*ast.VariableDefinition,
  	inputs map[string]interface{}) (map[string]interface{}, error) {
  	values := map[string]interface{}{}
  	for _, defAST := range definitionASTs {
  		if defAST == nil || defAST.Variable == nil || defAST.Variable.Name == nil {
  			continue
  		}
  		varName := defAST.Variable.Name.Value
  		if varValue, err := getVariableValue(schema, defAST, inputs[varName]); err != nil {
  			return values, err
  		} else {
  			values[varName] = varValue
  		}
  	}
  	return values, nil
  }
docs: // Prepares an object map of variableValues of the correct type based on the
  // provided variable definitions and arbitrary input. If the input cannot be
  // parsed to match the variable definitions, a GraphQLError will be returned.