Class: GraphQL::StaticValidation::ValidationContext
- Inherits:
-
Object
- Object
- GraphQL::StaticValidation::ValidationContext
- Extended by:
- Forwardable
- Defined in:
- lib/graphql/static_validation/validation_context.rb
Overview
The validation context gets passed to each validator.
It exposes a Language::Visitor where validators may add hooks. (Language::Visitor#visit is called in GraphQL::StaticValidation::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.
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#on_dependency_resolve_handlers ⇒ Object
readonly
Returns the value of attribute on_dependency_resolve_handlers.
-
#query ⇒ Object
readonly
Returns the value of attribute query.
-
#visitor ⇒ Object
readonly
Returns the value of attribute visitor.
Instance Method Summary collapse
-
#initialize(query, visitor_class, max_errors) ⇒ ValidationContext
constructor
A new instance of ValidationContext.
-
#on_dependency_resolve(&handler) ⇒ Object
-
#too_many_errors? ⇒ Boolean
-
#validate_literal(ast_value, type) ⇒ Object
Constructor Details
#initialize(query, visitor_class, max_errors) ⇒ ValidationContext
Returns a new instance of ValidationContext.
22 23 24 25 26 27 28 29 |
# File 'lib/graphql/static_validation/validation_context.rb', line 22 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 |
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
17 18 19 |
# File 'lib/graphql/static_validation/validation_context.rb', line 17 def errors @errors end |
#on_dependency_resolve_handlers ⇒ Object (readonly)
Returns the value of attribute on_dependency_resolve_handlers.
17 18 19 |
# File 'lib/graphql/static_validation/validation_context.rb', line 17 def on_dependency_resolve_handlers @on_dependency_resolve_handlers end |
#query ⇒ Object (readonly)
Returns the value of attribute query.
17 18 19 |
# File 'lib/graphql/static_validation/validation_context.rb', line 17 def query @query end |
#visitor ⇒ Object (readonly)
Returns the value of attribute visitor.
17 18 19 |
# File 'lib/graphql/static_validation/validation_context.rb', line 17 def visitor @visitor end |
Instance Method Details
#on_dependency_resolve(&handler) ⇒ Object
35 36 37 |
# File 'lib/graphql/static_validation/validation_context.rb', line 35 def on_dependency_resolve(&handler) @on_dependency_resolve_handlers << handler end |
#too_many_errors? ⇒ Boolean
43 44 45 |
# File 'lib/graphql/static_validation/validation_context.rb', line 43 def too_many_errors? @errors.length >= @max_errors end |
#validate_literal(ast_value, type) ⇒ Object
39 40 41 |
# File 'lib/graphql/static_validation/validation_context.rb', line 39 def validate_literal(ast_value, type) @literal_validator.validate(ast_value, type) end |