Class: GraphQL::StaticValidation::TypeStack::ArgumentStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/static_validation/type_stack.rb

Instance Method Summary collapse

Instance Method Details

#pop(stack, node) ⇒ Object



162
163
164
165
# File 'lib/graphql/static_validation/type_stack.rb', line 162

def pop(stack, node)
  stack.argument_definitions.pop
  stack.path.pop
end

#push(stack, node) ⇒ Object

Push ‘argument_defn` onto the stack. It’s possible that ‘argument_defn` will be nil. Push it anyways so `pop` has something to pop.



143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/graphql/static_validation/type_stack.rb', line 143

def push(stack, node)
  if stack.argument_definitions.last
    arg_type = stack.argument_definitions.last.type.unwrap
    if arg_type.kind.input_object?
      argument_defn = arg_type.input_fields[node.name]
    else
      argument_defn = nil
    end
  elsif stack.directive_definitions.last
    argument_defn = stack.directive_definitions.last.arguments[node.name]
  elsif stack.field_definitions.last
    argument_defn = stack.field_definitions.last.arguments[node.name]
  else
    argument_defn = nil
  end
  stack.argument_definitions.push(argument_defn)
  stack.path.push(node.name)
end