{"version":3,"file":"getVariableSignature.js","sourceRoot":"","sources":["../../src/execution/getVariableSignature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kCAAiC;AAMxD,OAAO,EAAE,KAAK,EAAE,gCAA+B;AAE/C,OAAO,EAAE,WAAW,EAAE,+BAA8B;AAGpD,OAAO,EAAE,WAAW,EAAE,qCAAoC;AAkB1D,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,UAAkC;IAElC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAG1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,YAAY,CACrB,cAAc,OAAO,6BAA6B,UAAU,0CAA0C,EACtG,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,CAC3B,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAE7C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,YAAY,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE;KACnD,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../error/GraphQLError.ts';\n\nimport type {\n  ConstValueNode,\n  VariableDefinitionNode,\n} from '../language/ast.ts';\nimport { print } from '../language/printer.ts';\n\nimport { isInputType } from '../type/definition.ts';\nimport type { GraphQLInputType, GraphQLSchema } from '../type/index.ts';\n\nimport { typeFromAST } from '../utilities/typeFromAST.ts';\n\n/**\n * A GraphQLVariableSignature is required to coerce a variable value.\n *\n * Designed to have comparable interface to GraphQLArgument so that\n * getArgumentValues() can be reused for fragment arguments.\n *\n * @internal\n */\nexport interface GraphQLVariableSignature {\n  name: string;\n  type: GraphQLInputType;\n  defaultValue?: never;\n  default: { literal: ConstValueNode } | undefined;\n}\n\n/** @internal */\nexport function getVariableSignature(\n  schema: GraphQLSchema,\n  varDefNode: VariableDefinitionNode,\n): GraphQLVariableSignature | GraphQLError {\n  const varName = varDefNode.variable.name.value;\n  const varType = typeFromAST(schema, varDefNode.type);\n\n  if (!isInputType(varType)) {\n    // Must use input types for variables. This should be caught during\n    // validation, however is checked again here for safety.\n    const varTypeStr = print(varDefNode.type);\n    return new GraphQLError(\n      `Variable \"$${varName}\" expected value of type \"${varTypeStr}\" which cannot be used as an input type.`,\n      { nodes: varDefNode.type },\n    );\n  }\n\n  const defaultValue = varDefNode.defaultValue;\n\n  return {\n    name: varName,\n    type: varType,\n    default: defaultValue && { literal: defaultValue },\n  };\n}\n"]}