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.
-
#max_errors ⇒ Object
readonly
Returns the value of attribute max_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.
23 24 25 26 27 28 29 30 |
# 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 |
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 |
#max_errors ⇒ Object (readonly)
Returns the value of attribute max_errors.
17 18 19 |
# File 'lib/graphql/static_validation/validation_context.rb', line 17 def max_errors @max_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
36 37 38 |
# File 'lib/graphql/static_validation/validation_context.rb', line 36 def on_dependency_resolve(&handler) @on_dependency_resolve_handlers << handler end |
#too_many_errors? ⇒ Boolean
44 45 46 |
# File 'lib/graphql/static_validation/validation_context.rb', line 44 def too_many_errors? @errors.length >= @max_errors end |
#validate_literal(ast_value, type) ⇒ Object
40 41 42 |
# File 'lib/graphql/static_validation/validation_context.rb', line 40 def validate_literal(ast_value, type) @literal_validator.validate(ast_value, type) end |