UNPKG

graphql

Version:

A Query Language and Runtime which can target any service.

1 lines 2.51 kB
{"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"]}