forked from STI/Astroport.ONE
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
|
"""graphql.validation.rules package"""
|
||
|
|
||
|
from ...error import GraphQLError
|
||
|
from ...language.visitor import Visitor
|
||
|
from ..validation_context import (
|
||
|
ASTValidationContext,
|
||
|
SDLValidationContext,
|
||
|
ValidationContext,
|
||
|
)
|
||
|
|
||
|
__all__ = ["ASTValidationRule", "SDLValidationRule", "ValidationRule"]
|
||
|
|
||
|
|
||
|
class ASTValidationRule(Visitor):
|
||
|
"""Visitor for validation of an AST."""
|
||
|
|
||
|
context: ASTValidationContext
|
||
|
|
||
|
def __init__(self, context: ASTValidationContext):
|
||
|
super().__init__()
|
||
|
self.context = context
|
||
|
|
||
|
def report_error(self, error: GraphQLError) -> None:
|
||
|
self.context.report_error(error)
|
||
|
|
||
|
|
||
|
class SDLValidationRule(ASTValidationRule):
|
||
|
"""Visitor for validation of an SDL AST."""
|
||
|
|
||
|
context: SDLValidationContext
|
||
|
|
||
|
def __init__(self, context: SDLValidationContext) -> None:
|
||
|
super().__init__(context)
|
||
|
|
||
|
|
||
|
class ValidationRule(ASTValidationRule):
|
||
|
"""Visitor for validation using a GraphQL schema."""
|
||
|
|
||
|
context: ValidationContext
|
||
|
|
||
|
def __init__(self, context: ValidationContext) -> None:
|
||
|
super().__init__(context)
|