class GraphQL::StaticValidation::ValidationContext
The validation context gets passed to each validator.
It exposes a {GraphQL::Language::Visitor} where validators may add hooks. ({Language::Visitor#visit} is called in {Validator#validate})
It provides access to the schema & fragments which validators may read from.
It holds a list of errors which each validator may add to.
It also provides limited access to the {TypeStack} instance, which tracks state as you climb in and out of different fields.
Attributes
errors[R]
max_errors[R]
on_dependency_resolve_handlers[R]
query[R]
visitor[R]
Public Class Methods
new(query, visitor_class, max_errors)
click to toggle source
# File lib/graphql/static_validation/validation_context.rb, line 23 def initialize(query, visitor_class, max_errors) @query = query @literal_validator = LiteralValidator.new(context: query.context) @errors = [] @max_errors = max_errors || Float::INFINITY @on_dependency_resolve_handlers = [] @visitor = visitor_class.new(document, self) end
Public Instance Methods
on_dependency_resolve(&handler)
click to toggle source
# File lib/graphql/static_validation/validation_context.rb, line 36 def on_dependency_resolve(&handler) @on_dependency_resolve_handlers << handler end
schema_directives()
click to toggle source
# File lib/graphql/static_validation/validation_context.rb, line 48 def schema_directives @schema_directives ||= schema.directives end
too_many_errors?()
click to toggle source
# File lib/graphql/static_validation/validation_context.rb, line 44 def too_many_errors? @errors.length >= @max_errors end
validate_literal(ast_value, type)
click to toggle source
# File lib/graphql/static_validation/validation_context.rb, line 40 def validate_literal(ast_value, type) @literal_validator.validate(ast_value, type) end