import Maybe from '../tsutils/Maybe'; import { GraphQLError } from '../error/GraphQLError'; import { FieldNode, DirectiveNode, VariableDefinitionNode, } from '../language/ast'; import { GraphQLDirective } from '../type/directives'; import { GraphQLSchema } from '../type/schema'; import { GraphQLInputType, GraphQLField, GraphQLArgument, } from '../type/definition'; type CoercedVariableValues = | { errors: ReadonlyArray; coerced?: never } | { errors?: never; coerced: { [key: string]: any } }; /** * Prepares an object map of variableValues of the correct type based on the * provided variable definitions and arbitrary input. If the input cannot be * parsed to match the variable definitions, a GraphQLError will be thrown. * * Note: The returned value is a plain Object with a prototype, since it is * exposed to user code. Care should be taken to not pull values from the * Object prototype. */ export function getVariableValues( schema: GraphQLSchema, varDefNodes: VariableDefinitionNode[], inputs: { [key: string]: any }, options: { maxErrors?: number }, ): CoercedVariableValues; /** * Prepares an object map of argument values given a list of argument * definitions and list of argument AST nodes. * * Note: The returned value is a plain Object with a prototype, since it is * exposed to user code. Care should be taken to not pull values from the * Object prototype. */ export function getArgumentValues( def: GraphQLField | GraphQLDirective, node: FieldNode | DirectiveNode, variableValues?: Maybe<{ [key: string]: any }>, ): { [key: string]: any }; /** * Prepares an object map of argument values given a directive definition * and a AST node which may contain directives. Optionally also accepts a map * of variable values. * * If the directive does not exist on the node, returns undefined. * * Note: The returned value is a plain Object with a prototype, since it is * exposed to user code. Care should be taken to not pull values from the * Object prototype. */ export function getDirectiveValues( directiveDef: GraphQLDirective, node: { readonly directives?: ReadonlyArray; }, variableValues?: Maybe<{ [key: string]: any }>, ): undefined | { [key: string]: any };