UNPKG

graphql

Version:

A Query Language and Runtime which can target any service.

96 lines (95 loc) 3.19 kB
import type { Maybe } from '../jsutils/Maybe'; import type { GraphQLError } from '../error/GraphQLError'; import type { DocumentNode, FragmentDefinitionNode, FragmentSpreadNode, OperationDefinitionNode, SelectionSetNode, VariableNode, } from '../language/ast'; import type { ASTVisitor } from '../language/visitor'; import type { GraphQLArgument, GraphQLCompositeType, GraphQLEnumValue, GraphQLField, GraphQLInputType, GraphQLOutputType, } from '../type/definition'; import type { GraphQLDirective } from '../type/directives'; import type { GraphQLSchema } from '../type/schema'; import { TypeInfo } from '../utilities/TypeInfo'; declare type NodeWithSelectionSet = | OperationDefinitionNode | FragmentDefinitionNode; interface VariableUsage { readonly node: VariableNode; readonly type: Maybe<GraphQLInputType>; readonly defaultValue: Maybe<unknown>; } /** * An instance of this class is passed as the "this" context to all validators, * allowing access to commonly useful contextual information from within a * validation rule. */ export declare class ASTValidationContext { private _ast; private _onError; private _fragments; private _fragmentSpreads; private _recursivelyReferencedFragments; constructor(ast: DocumentNode, onError: (error: GraphQLError) => void); get [Symbol.toStringTag](): string; reportError(error: GraphQLError): void; getDocument(): DocumentNode; getFragment(name: string): Maybe<FragmentDefinitionNode>; getFragmentSpreads(node: SelectionSetNode): ReadonlyArray<FragmentSpreadNode>; getRecursivelyReferencedFragments( operation: OperationDefinitionNode, ): ReadonlyArray<FragmentDefinitionNode>; } export declare type ASTValidationRule = ( context: ASTValidationContext, ) => ASTVisitor; export declare class SDLValidationContext extends ASTValidationContext { private _schema; constructor( ast: DocumentNode, schema: Maybe<GraphQLSchema>, onError: (error: GraphQLError) => void, ); get [Symbol.toStringTag](): string; getSchema(): Maybe<GraphQLSchema>; } export declare type SDLValidationRule = ( context: SDLValidationContext, ) => ASTVisitor; export declare class ValidationContext extends ASTValidationContext { private _schema; private _typeInfo; private _variableUsages; private _recursiveVariableUsages; constructor( schema: GraphQLSchema, ast: DocumentNode, typeInfo: TypeInfo, onError: (error: GraphQLError) => void, ); get [Symbol.toStringTag](): string; getSchema(): GraphQLSchema; getVariableUsages(node: NodeWithSelectionSet): ReadonlyArray<VariableUsage>; getRecursiveVariableUsages( operation: OperationDefinitionNode, ): ReadonlyArray<VariableUsage>; getType(): Maybe<GraphQLOutputType>; getParentType(): Maybe<GraphQLCompositeType>; getInputType(): Maybe<GraphQLInputType>; getParentInputType(): Maybe<GraphQLInputType>; getFieldDef(): Maybe<GraphQLField<unknown, unknown>>; getDirective(): Maybe<GraphQLDirective>; getArgument(): Maybe<GraphQLArgument>; getEnumValue(): Maybe<GraphQLEnumValue>; } export declare type ValidationRule = (context: ValidationContext) => ASTVisitor; export {};