@graphitation/supermassive 3.0.0-alpha.1 → 3.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +10 -2
  3. package/lib/__testUtils__/execute.d.ts +13 -0
  4. package/lib/__testUtils__/execute.d.ts.map +1 -0
  5. package/lib/__testUtils__/execute.js +196 -0
  6. package/lib/__testUtils__/execute.js.map +7 -0
  7. package/lib/__testUtils__/execute.mjs +174 -0
  8. package/lib/__testUtils__/execute.mjs.map +7 -0
  9. package/lib/benchmarks/index.js +10 -19
  10. package/lib/benchmarks/index.js.map +3 -3
  11. package/lib/benchmarks/index.mjs +11 -22
  12. package/lib/benchmarks/index.mjs.map +2 -2
  13. package/lib/collectFields.d.ts +4 -9
  14. package/lib/collectFields.d.ts.map +1 -1
  15. package/lib/collectFields.js +38 -99
  16. package/lib/collectFields.js.map +2 -2
  17. package/lib/collectFields.mjs +41 -100
  18. package/lib/collectFields.mjs.map +2 -2
  19. package/lib/executeWithSchema.d.ts +1 -1
  20. package/lib/executeWithSchema.d.ts.map +1 -1
  21. package/lib/executeWithSchema.js +7 -13
  22. package/lib/executeWithSchema.js.map +2 -2
  23. package/lib/executeWithSchema.mjs +9 -20
  24. package/lib/executeWithSchema.mjs.map +2 -2
  25. package/lib/executeWithoutSchema.d.ts +5 -5
  26. package/lib/executeWithoutSchema.d.ts.map +1 -1
  27. package/lib/executeWithoutSchema.js +175 -227
  28. package/lib/executeWithoutSchema.js.map +2 -2
  29. package/lib/executeWithoutSchema.mjs +176 -228
  30. package/lib/executeWithoutSchema.mjs.map +2 -2
  31. package/lib/index.d.ts +2 -9
  32. package/lib/index.d.ts.map +1 -1
  33. package/lib/index.js +0 -7
  34. package/lib/index.js.map +2 -2
  35. package/lib/index.mjs +0 -10
  36. package/lib/index.mjs.map +2 -2
  37. package/lib/schema/definition.d.ts +95 -0
  38. package/lib/schema/definition.d.ts.map +1 -0
  39. package/lib/schema/definition.js +77 -0
  40. package/lib/schema/definition.js.map +7 -0
  41. package/lib/schema/definition.mjs +58 -0
  42. package/lib/schema/definition.mjs.map +7 -0
  43. package/lib/schema/directives.d.ts +41 -0
  44. package/lib/schema/directives.d.ts.map +1 -0
  45. package/lib/schema/directives.js +82 -0
  46. package/lib/schema/directives.js.map +7 -0
  47. package/lib/schema/directives.mjs +65 -0
  48. package/lib/schema/directives.mjs.map +7 -0
  49. package/lib/schema/fragment.d.ts +41 -0
  50. package/lib/schema/fragment.d.ts.map +1 -0
  51. package/lib/schema/fragment.js +270 -0
  52. package/lib/schema/fragment.js.map +7 -0
  53. package/lib/schema/fragment.mjs +267 -0
  54. package/lib/schema/fragment.mjs.map +7 -0
  55. package/lib/schema/reference.d.ts +12 -0
  56. package/lib/schema/reference.d.ts.map +1 -0
  57. package/lib/schema/reference.js +137 -0
  58. package/lib/schema/reference.js.map +7 -0
  59. package/lib/schema/reference.mjs +118 -0
  60. package/lib/schema/reference.mjs.map +7 -0
  61. package/lib/schema/resolvers.d.ts +9 -0
  62. package/lib/schema/resolvers.d.ts.map +1 -0
  63. package/lib/schema/resolvers.js +47 -0
  64. package/lib/schema/resolvers.js.map +7 -0
  65. package/lib/schema/resolvers.mjs +35 -0
  66. package/lib/schema/resolvers.mjs.map +7 -0
  67. package/lib/subscribeWithSchema.d.ts +1 -1
  68. package/lib/subscribeWithSchema.d.ts.map +1 -1
  69. package/lib/subscribeWithSchema.js +7 -13
  70. package/lib/subscribeWithSchema.js.map +2 -2
  71. package/lib/subscribeWithSchema.mjs +9 -20
  72. package/lib/subscribeWithSchema.mjs.map +2 -2
  73. package/lib/types.d.ts +10 -24
  74. package/lib/types.d.ts.map +1 -1
  75. package/lib/types.js.map +2 -2
  76. package/lib/types.mjs.map +2 -2
  77. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts +9 -0
  78. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts.map +1 -0
  79. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js +303 -0
  80. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js.map +7 -0
  81. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs +317 -0
  82. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs.map +7 -0
  83. package/lib/{supermassive-ast → utilities}/annotateDocumentGraphQLTransform.d.ts +1 -1
  84. package/lib/utilities/annotateDocumentGraphQLTransform.d.ts.map +1 -0
  85. package/lib/{supermassive-ast → utilities}/annotateDocumentGraphQLTransform.js +3 -3
  86. package/lib/utilities/annotateDocumentGraphQLTransform.js.map +7 -0
  87. package/lib/utilities/annotateDocumentGraphQLTransform.mjs +17 -0
  88. package/lib/utilities/annotateDocumentGraphQLTransform.mjs.map +7 -0
  89. package/lib/utilities/coerceInputValue.d.ts +10 -0
  90. package/lib/utilities/coerceInputValue.d.ts.map +1 -0
  91. package/lib/utilities/coerceInputValue.js +181 -0
  92. package/lib/utilities/coerceInputValue.js.map +7 -0
  93. package/lib/utilities/coerceInputValue.mjs +167 -0
  94. package/lib/utilities/coerceInputValue.mjs.map +7 -0
  95. package/lib/utilities/decodeASTSchema.d.ts +7 -0
  96. package/lib/utilities/decodeASTSchema.d.ts.map +1 -0
  97. package/lib/utilities/decodeASTSchema.js +243 -0
  98. package/lib/utilities/decodeASTSchema.js.map +7 -0
  99. package/lib/utilities/decodeASTSchema.mjs +242 -0
  100. package/lib/utilities/decodeASTSchema.mjs.map +7 -0
  101. package/lib/utilities/encodeASTSchema.d.ts +4 -0
  102. package/lib/utilities/encodeASTSchema.d.ts.map +1 -0
  103. package/lib/utilities/encodeASTSchema.js +122 -0
  104. package/lib/utilities/encodeASTSchema.js.map +7 -0
  105. package/lib/utilities/encodeASTSchema.mjs +105 -0
  106. package/lib/utilities/encodeASTSchema.mjs.map +7 -0
  107. package/lib/utilities/getSchemaFragment.d.ts +4 -0
  108. package/lib/utilities/getSchemaFragment.d.ts.map +1 -0
  109. package/lib/utilities/getSchemaFragment.js +38 -0
  110. package/lib/utilities/getSchemaFragment.js.map +7 -0
  111. package/lib/utilities/getSchemaFragment.mjs +22 -0
  112. package/lib/utilities/getSchemaFragment.mjs.map +7 -0
  113. package/lib/utilities/makeReadableErrorPath.d.ts +3 -0
  114. package/lib/utilities/makeReadableErrorPath.d.ts.map +1 -0
  115. package/lib/utilities/makeReadableErrorPath.js +47 -0
  116. package/lib/utilities/makeReadableErrorPath.js.map +7 -0
  117. package/lib/utilities/makeReadableErrorPath.mjs +28 -0
  118. package/lib/utilities/makeReadableErrorPath.mjs.map +7 -0
  119. package/lib/utilities/mergeDefinitions.d.ts +8 -0
  120. package/lib/utilities/mergeDefinitions.d.ts.map +1 -0
  121. package/lib/utilities/mergeDefinitions.js +126 -0
  122. package/lib/utilities/mergeDefinitions.js.map +7 -0
  123. package/lib/utilities/mergeDefinitions.mjs +114 -0
  124. package/lib/utilities/mergeDefinitions.mjs.map +7 -0
  125. package/lib/utilities/typeNameFromAST.d.ts +1 -1
  126. package/lib/utilities/typeNameFromAST.d.ts.map +1 -1
  127. package/lib/utilities/typeNameFromAST.js.map +2 -2
  128. package/lib/utilities/typeNameFromAST.mjs.map +2 -2
  129. package/lib/utilities/valueFromAST.d.ts +27 -0
  130. package/lib/utilities/valueFromAST.d.ts.map +1 -0
  131. package/lib/utilities/valueFromAST.js +139 -0
  132. package/lib/utilities/valueFromAST.js.map +7 -0
  133. package/lib/utilities/valueFromAST.mjs +125 -0
  134. package/lib/utilities/valueFromAST.mjs.map +7 -0
  135. package/lib/utilities/valueFromASTUntyped.d.ts +21 -0
  136. package/lib/utilities/valueFromASTUntyped.d.ts.map +1 -0
  137. package/lib/utilities/valueFromASTUntyped.js +51 -0
  138. package/lib/utilities/valueFromASTUntyped.js.map +7 -0
  139. package/lib/utilities/valueFromASTUntyped.mjs +32 -0
  140. package/lib/utilities/valueFromASTUntyped.mjs.map +7 -0
  141. package/lib/values.d.ts +8 -12
  142. package/lib/values.d.ts.map +1 -1
  143. package/lib/values.js +75 -63
  144. package/lib/values.js.map +2 -2
  145. package/lib/values.mjs +77 -71
  146. package/lib/values.mjs.map +2 -2
  147. package/package.json +8 -6
  148. package/lib/definition.d.ts +0 -7
  149. package/lib/definition.d.ts.map +0 -1
  150. package/lib/definition.js +0 -59
  151. package/lib/definition.js.map +0 -7
  152. package/lib/definition.mjs +0 -40
  153. package/lib/definition.mjs.map +0 -7
  154. package/lib/directives.d.ts +0 -8
  155. package/lib/directives.d.ts.map +0 -1
  156. package/lib/directives.js +0 -47
  157. package/lib/directives.js.map +0 -7
  158. package/lib/directives.mjs +0 -37
  159. package/lib/directives.mjs.map +0 -7
  160. package/lib/extractImplicitTypesRuntime.d.ts +0 -4
  161. package/lib/extractImplicitTypesRuntime.d.ts.map +0 -1
  162. package/lib/extractImplicitTypesRuntime.js +0 -123
  163. package/lib/extractImplicitTypesRuntime.js.map +0 -7
  164. package/lib/extractImplicitTypesRuntime.mjs +0 -114
  165. package/lib/extractImplicitTypesRuntime.mjs.map +0 -7
  166. package/lib/supermassive-ast/TypedAST.d.ts +0 -370
  167. package/lib/supermassive-ast/TypedAST.d.ts.map +0 -1
  168. package/lib/supermassive-ast/TypedAST.js +0 -29
  169. package/lib/supermassive-ast/TypedAST.js.map +0 -7
  170. package/lib/supermassive-ast/TypedAST.mjs +0 -10
  171. package/lib/supermassive-ast/TypedAST.mjs.map +0 -7
  172. package/lib/supermassive-ast/addTypesToRequestDocument.d.ts +0 -56
  173. package/lib/supermassive-ast/addTypesToRequestDocument.d.ts.map +0 -1
  174. package/lib/supermassive-ast/addTypesToRequestDocument.js +0 -473
  175. package/lib/supermassive-ast/addTypesToRequestDocument.js.map +0 -7
  176. package/lib/supermassive-ast/addTypesToRequestDocument.mjs +0 -463
  177. package/lib/supermassive-ast/addTypesToRequestDocument.mjs.map +0 -7
  178. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.d.ts.map +0 -1
  179. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.js.map +0 -7
  180. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.mjs +0 -17
  181. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.mjs.map +0 -7
  182. package/lib/supermassive-ast/directives.d.ts +0 -36
  183. package/lib/supermassive-ast/directives.d.ts.map +0 -1
  184. package/lib/supermassive-ast/directives.js +0 -165
  185. package/lib/supermassive-ast/directives.js.map +0 -7
  186. package/lib/supermassive-ast/directives.mjs +0 -153
  187. package/lib/supermassive-ast/directives.mjs.map +0 -7
  188. package/lib/supermassive-ast/index.d.ts +0 -6
  189. package/lib/supermassive-ast/index.d.ts.map +0 -1
  190. package/lib/supermassive-ast/index.js +0 -37
  191. package/lib/supermassive-ast/index.js.map +0 -7
  192. package/lib/supermassive-ast/index.mjs +0 -27
  193. package/lib/supermassive-ast/index.mjs.map +0 -7
package/lib/values.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/values.ts"],
4
- "sourcesContent": ["import {\n ArgumentNode as GraphQLArgumentNode,\n GraphQLBoolean,\n GraphQLError,\n GraphQLFloat,\n GraphQLID,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLScalarType,\n GraphQLString,\n GraphQLType,\n isInputType,\n isNonNullType,\n Kind,\n print,\n TypeNode as GraphQLTypeNode,\n ValueNode as GraphQLValueNode,\n VariableDefinitionNode as GraphQLVariableDefinitionNode,\n valueFromAST,\n coerceInputValue,\n GraphQLDirective,\n} from \"graphql\";\nimport {\n DirectiveNode,\n FieldNode,\n TypeNode,\n VariableDefinitionNode,\n} from \"./supermassive-ast\";\nimport { inspect } from \"./jsutils/inspect\";\nimport type { Maybe } from \"./jsutils/Maybe\";\nimport type { ObjMap } from \"./jsutils/ObjMap\";\nimport { printPathArray } from \"./jsutils/printPathArray\";\nimport { Resolvers } from \"./types\";\n\ntype CoercedVariableValues =\n | { errors: Array<GraphQLError>; coerced?: never }\n | { coerced: { [variable: string]: unknown }; errors?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getVariableValues(\n resolvers: Resolvers,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n options?: { maxErrors?: number },\n): CoercedVariableValues {\n const errors: GraphQLError[] = [];\n const maxErrors = options?.maxErrors;\n try {\n const coerced = coerceVariableValues(\n resolvers,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n \"Too many errors processing variables, error limit reached. Execution aborted.\",\n );\n }\n errors.push(error);\n },\n );\n\n if (errors.length === 0) {\n return { coerced };\n }\n } catch (error) {\n errors.push(error as GraphQLError);\n }\n\n return { errors: errors };\n}\n\nfunction coerceVariableValues(\n resolvers: Resolvers,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n): { [variable: string]: unknown } {\n const coercedValues: { [variable: string]: unknown } = {};\n for (const varDefNode of varDefNodes) {\n const varName = varDefNode.variable.name.value;\n const varTypeAst = varDefNode.type;\n const varType: GraphQLType = graphqlTypeFromTypeAst(resolvers, varTypeAst);\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 = inspect(varType);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" expected value of type \"${varTypeStr}\" which cannot be used as an input type.`,\n { nodes: varDefNode.type as GraphQLTypeNode },\n ),\n );\n continue;\n }\n\n if (!hasOwnProperty(inputs, varName)) {\n if (varDefNode.defaultValue) {\n coercedValues[varName] = valueFromAST(\n varDefNode.defaultValue as Maybe<GraphQLValueNode>,\n varType,\n );\n } else if (isNonNullType(varType)) {\n const varTypeStr = print(varDefNode.type as GraphQLTypeNode);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of required type \"${varTypeStr}\" was not provided.`,\n { nodes: varDefNode as GraphQLVariableDefinitionNode },\n ),\n );\n }\n continue;\n }\n\n const value = inputs[varName];\n if (value === null && isNonNullType(varType)) {\n const varTypeStr = inspect(varType);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of non-null type \"${varTypeStr}\" must not be null.`,\n { nodes: varDefNode as GraphQLVariableDefinitionNode },\n ),\n );\n continue;\n }\n\n coercedValues[varName] = coerceInputValue(\n value,\n varType,\n (path, invalidValue, error) => {\n let prefix =\n `Variable \"$${varName}\" got invalid value ` + inspect(invalidValue);\n if (path.length > 0) {\n prefix += ` at \"${varName}${printPathArray(path)}\"`;\n }\n onError(\n new GraphQLError(prefix + \"; \" + error.message, {\n nodes: varDefNode as GraphQLVariableDefinitionNode,\n originalError: error.originalError,\n }),\n );\n },\n );\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getArgumentValues(\n resolvers: Resolvers,\n node: FieldNode | DirectiveNode,\n variableValues?: Maybe<ObjMap<unknown>>,\n): { [argument: string]: unknown } {\n const coercedValues: { [argument: string]: unknown } = {};\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const argumentNodes = node.arguments ?? [];\n\n for (const argumentNode of argumentNodes) {\n const name = argumentNode.name.value;\n const argTypeNode = argumentNode.__type;\n const argType = graphqlTypeFromTypeAst(resolvers, argTypeNode);\n\n if (!isInputType(argType)) {\n throw new GraphQLError(\n `Argument \"$${name}\" expected value of type \"${inspect(\n argType,\n )}\" which cannot be used as an input type.`,\n { nodes: argumentNode as GraphQLArgumentNode },\n );\n }\n\n let valueNode = argumentNode.value;\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (\n variableValues == null ||\n !hasOwnProperty(variableValues, variableName)\n ) {\n if (argumentNode.__defaultValue) {\n valueNode = argumentNode.__defaultValue;\n } else if (isNonNullType(argType)) {\n throw new GraphQLError(\n `Argument \"${name}\" of required type \"${inspect(argType)}\" ` +\n `was provided the variable \"$${variableName}\" which was not provided a runtime value.`,\n { nodes: valueNode as GraphQLValueNode },\n );\n }\n\n continue;\n }\n }\n\n const coercedValue = valueFromAST(\n valueNode as GraphQLValueNode,\n argType,\n variableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n `Argument \"${name}\" has invalid value ${print(\n valueNode as GraphQLValueNode,\n )}.`,\n { nodes: valueNode as GraphQLValueNode },\n );\n }\n coercedValues[name] = coercedValue;\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\nexport function getDirectiveValues(\n directiveDef: GraphQLDirective,\n node: { directives?: ReadonlyArray<DirectiveNode> },\n resolvers: Resolvers,\n variableValues?: Maybe<ObjMap<unknown>>,\n): undefined | { [argument: string]: unknown } {\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === directiveDef.name,\n );\n\n if (directiveNode) {\n return getArgumentValues(resolvers, directiveNode, variableValues);\n }\n}\n\nfunction hasOwnProperty(obj: unknown, prop: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport const specifiedScalars: { [key: string]: GraphQLScalarType } = {\n ID: GraphQLID,\n String: GraphQLString,\n Int: GraphQLInt,\n Float: GraphQLFloat,\n Boolean: GraphQLBoolean,\n};\n\nfunction graphqlTypeFromTypeAst(\n resolvers: Resolvers,\n node: TypeNode,\n): GraphQLType {\n if (node.kind === Kind.NON_NULL_TYPE) {\n return new GraphQLNonNull(graphqlTypeFromTypeAst(resolvers, node.type));\n } else if (node.kind === Kind.LIST_TYPE) {\n return new GraphQLList(graphqlTypeFromTypeAst(resolvers, node.type));\n } else {\n const typeName = node.name.value;\n const type = specifiedScalars[typeName] || resolvers[typeName];\n return type as GraphQLType;\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n GraphQLError,\n Kind,\n print,\n locatedError,\n DirectiveNode,\n FieldNode,\n VariableDefinitionNode,\n} from \"graphql\";\nimport { inspect } from \"./jsutils/inspect\";\nimport { printPathArray } from \"./jsutils/printPathArray\";\nimport { ExecutionContext } from \"./executeWithoutSchema\";\nimport { DirectiveDefinitionTuple, FieldDefinition } from \"./schema/definition\";\nimport { valueFromAST } from \"./utilities/valueFromAST\";\nimport { SchemaFragment } from \"./schema/fragment\";\nimport { coerceInputValue } from \"./utilities/coerceInputValue\";\nimport {\n inspectTypeReference,\n isNonNullType,\n typeReferenceFromNode,\n} from \"./schema/reference\";\n\ntype CoercedVariableValues =\n | { errors: Array<GraphQLError>; coerced?: never }\n | { coerced: { [variable: string]: unknown }; errors?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getVariableValues(\n schemaTypes: SchemaFragment,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n options?: { maxErrors?: number },\n): CoercedVariableValues {\n const errors: GraphQLError[] = [];\n const maxErrors = options?.maxErrors;\n try {\n const coerced = coerceVariableValues(\n schemaTypes,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n \"Too many errors processing variables, error limit reached. Execution aborted.\",\n );\n }\n errors.push(error);\n },\n );\n\n if (errors.length === 0) {\n return { coerced };\n }\n } catch (error) {\n errors.push(error as GraphQLError);\n }\n\n return { errors: errors };\n}\n\nfunction coerceVariableValues(\n schemaTypes: SchemaFragment,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n): { [variable: string]: unknown } {\n const coercedValues: { [variable: string]: unknown } = {};\n for (const varDefNode of varDefNodes) {\n const varName = varDefNode.variable.name.value;\n const varTypeReference = typeReferenceFromNode(varDefNode.type);\n\n if (!schemaTypes.isInputType(varTypeReference)) {\n // Must use input types for variables. This should be caught during\n // validation, however is checked again here for safety.\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n 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 continue;\n }\n\n if (!hasOwnProperty(inputs, varName)) {\n if (varDefNode.defaultValue) {\n coercedValues[varName] = valueFromAST(\n varDefNode.defaultValue,\n varTypeReference,\n schemaTypes,\n );\n } else if (isNonNullType(varTypeReference)) {\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of required type \"${varTypeStr}\" was not provided.`,\n { nodes: varDefNode },\n ),\n );\n }\n continue;\n }\n\n const value = inputs[varName];\n if (value === null && isNonNullType(varTypeReference)) {\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of non-null type \"${varTypeStr}\" must not be null.`,\n { nodes: varDefNode },\n ),\n );\n continue;\n }\n\n coercedValues[varName] = coerceInputValue(\n value,\n varTypeReference,\n schemaTypes,\n (path, invalidValue, error) => {\n let prefix =\n `Variable \"$${varName}\" got invalid value ` + inspect(invalidValue);\n if (path.length > 0) {\n prefix += ` at \"${varName}${printPathArray(path)}\"`;\n }\n onError(\n new GraphQLError(prefix + \"; \" + error.message, {\n nodes: varDefNode,\n originalError: error.originalError,\n }),\n );\n },\n );\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getArgumentValues(\n exeContext: ExecutionContext,\n def: FieldDefinition | DirectiveDefinitionTuple,\n node: FieldNode | DirectiveNode,\n): { [argument: string]: unknown } {\n const schemaTypes = exeContext.schemaTypes;\n const coercedValues: { [argument: string]: unknown } = {};\n const argumentDefs = schemaTypes.resolveDefinitionArguments(def);\n if (!argumentDefs) {\n return coercedValues;\n }\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const argumentNodes = node.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n\n for (const [name, argumentDef] of Object.entries(argumentDefs)) {\n const argumentNode = argNodeMap.get(name);\n const argumentTypeRef = schemaTypes.getTypeReference(argumentDef);\n const defaultValue = schemaTypes.getInputDefaultValue(argumentDef);\n\n if (argumentNode == null) {\n if (defaultValue !== undefined) {\n coercedValues[name] = defaultValue;\n } else if (isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of required type \"${type}\" was not provided.`,\n [node],\n );\n }\n continue;\n }\n\n if (!schemaTypes.isDefined(argumentTypeRef)) {\n throw locatedError(\n `Could not find type for argument ${name} in ${node.kind} ${node.name.value}`,\n [argumentNode],\n );\n }\n\n // if (!schemaTypes.isInputType(argumentTypeRef)) {\n // const type = schemaTypes.printTypeRef(argumentTypeRef);\n // throw locatedError(\n // `Argument \"$${name}\" expected value of type \"${type}\" which cannot be used as an input type.`,\n // [argumentNode],\n // );\n // }\n\n const valueNode = argumentNode.value;\n let isNull = valueNode.kind === Kind.NULL;\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (\n exeContext.variableValues == null ||\n !hasOwnProperty(exeContext.variableValues, variableName)\n ) {\n if (defaultValue !== undefined) {\n coercedValues[name] = defaultValue;\n } else if (isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of required type \"${type}\" ` +\n `was provided the variable \"$${variableName}\" which was not provided a runtime value.`,\n [valueNode],\n );\n }\n continue;\n }\n isNull = exeContext.variableValues[variableName] == null;\n }\n\n if (isNull && isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of non-null type \"${type}\" must not be null.\"`,\n [valueNode],\n );\n }\n\n const coercedValue = valueFromAST(\n valueNode,\n argumentTypeRef,\n schemaTypes,\n exeContext.variableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n `Argument \"${name}\" has invalid value ${print(valueNode)}.`,\n { nodes: valueNode },\n );\n }\n coercedValues[name] = coercedValue;\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\nexport function getDirectiveValues(\n exeContext: ExecutionContext,\n directiveDef: DirectiveDefinitionTuple,\n node: { directives?: ReadonlyArray<DirectiveNode> },\n): undefined | { [argument: string]: unknown } {\n const schemaTypes = exeContext.schemaTypes;\n const name = schemaTypes.getDirectiveName(directiveDef);\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === name,\n );\n\n if (directiveNode) {\n return getArgumentValues(exeContext, directiveDef, directiveNode);\n }\n}\n\nfunction hasOwnProperty(obj: unknown, prop: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/lib/values.mjs CHANGED
@@ -1,28 +1,25 @@
1
1
  // src/values.ts
2
2
  import {
3
- GraphQLBoolean,
4
3
  GraphQLError,
5
- GraphQLFloat,
6
- GraphQLID,
7
- GraphQLInt,
8
- GraphQLList,
9
- GraphQLNonNull,
10
- GraphQLString,
11
- isInputType,
12
- isNonNullType,
13
4
  Kind,
14
5
  print,
15
- valueFromAST,
16
- coerceInputValue
6
+ locatedError
17
7
  } from "graphql";
18
8
  import { inspect } from "./jsutils/inspect.mjs";
19
9
  import { printPathArray } from "./jsutils/printPathArray.mjs";
20
- function getVariableValues(resolvers, varDefNodes, inputs, options) {
10
+ import { valueFromAST } from "./utilities/valueFromAST.mjs";
11
+ import { coerceInputValue } from "./utilities/coerceInputValue.mjs";
12
+ import {
13
+ inspectTypeReference,
14
+ isNonNullType,
15
+ typeReferenceFromNode
16
+ } from "./schema/reference.mjs";
17
+ function getVariableValues(schemaTypes, varDefNodes, inputs, options) {
21
18
  const errors = [];
22
19
  const maxErrors = options == null ? void 0 : options.maxErrors;
23
20
  try {
24
21
  const coerced = coerceVariableValues(
25
- resolvers,
22
+ schemaTypes,
26
23
  varDefNodes,
27
24
  inputs,
28
25
  (error) => {
@@ -42,14 +39,13 @@ function getVariableValues(resolvers, varDefNodes, inputs, options) {
42
39
  }
43
40
  return { errors };
44
41
  }
45
- function coerceVariableValues(resolvers, varDefNodes, inputs, onError) {
42
+ function coerceVariableValues(schemaTypes, varDefNodes, inputs, onError) {
46
43
  const coercedValues = {};
47
44
  for (const varDefNode of varDefNodes) {
48
45
  const varName = varDefNode.variable.name.value;
49
- const varTypeAst = varDefNode.type;
50
- const varType = graphqlTypeFromTypeAst(resolvers, varTypeAst);
51
- if (!isInputType(varType)) {
52
- const varTypeStr = inspect(varType);
46
+ const varTypeReference = typeReferenceFromNode(varDefNode.type);
47
+ if (!schemaTypes.isInputType(varTypeReference)) {
48
+ const varTypeStr = inspectTypeReference(varTypeReference);
53
49
  onError(
54
50
  new GraphQLError(
55
51
  `Variable "$${varName}" expected value of type "${varTypeStr}" which cannot be used as an input type.`,
@@ -62,10 +58,11 @@ function coerceVariableValues(resolvers, varDefNodes, inputs, onError) {
62
58
  if (varDefNode.defaultValue) {
63
59
  coercedValues[varName] = valueFromAST(
64
60
  varDefNode.defaultValue,
65
- varType
61
+ varTypeReference,
62
+ schemaTypes
66
63
  );
67
- } else if (isNonNullType(varType)) {
68
- const varTypeStr = print(varDefNode.type);
64
+ } else if (isNonNullType(varTypeReference)) {
65
+ const varTypeStr = inspectTypeReference(varTypeReference);
69
66
  onError(
70
67
  new GraphQLError(
71
68
  `Variable "$${varName}" of required type "${varTypeStr}" was not provided.`,
@@ -76,8 +73,8 @@ function coerceVariableValues(resolvers, varDefNodes, inputs, onError) {
76
73
  continue;
77
74
  }
78
75
  const value = inputs[varName];
79
- if (value === null && isNonNullType(varType)) {
80
- const varTypeStr = inspect(varType);
76
+ if (value === null && isNonNullType(varTypeReference)) {
77
+ const varTypeStr = inspectTypeReference(varTypeReference);
81
78
  onError(
82
79
  new GraphQLError(
83
80
  `Variable "$${varName}" of non-null type "${varTypeStr}" must not be null.`,
@@ -88,7 +85,8 @@ function coerceVariableValues(resolvers, varDefNodes, inputs, onError) {
88
85
  }
89
86
  coercedValues[varName] = coerceInputValue(
90
87
  value,
91
- varType,
88
+ varTypeReference,
89
+ schemaTypes,
92
90
  (path, invalidValue, error) => {
93
91
  let prefix = `Variable "$${varName}" got invalid value ` + inspect(invalidValue);
94
92
  if (path.length > 0) {
@@ -105,47 +103,72 @@ function coerceVariableValues(resolvers, varDefNodes, inputs, onError) {
105
103
  }
106
104
  return coercedValues;
107
105
  }
108
- function getArgumentValues(resolvers, node, variableValues) {
106
+ function getArgumentValues(exeContext, def, node) {
109
107
  var _a;
108
+ const schemaTypes = exeContext.schemaTypes;
110
109
  const coercedValues = {};
110
+ const argumentDefs = schemaTypes.resolveDefinitionArguments(def);
111
+ if (!argumentDefs) {
112
+ return coercedValues;
113
+ }
111
114
  const argumentNodes = (_a = node.arguments) != null ? _a : [];
112
- for (const argumentNode of argumentNodes) {
113
- const name = argumentNode.name.value;
114
- const argTypeNode = argumentNode.__type;
115
- const argType = graphqlTypeFromTypeAst(resolvers, argTypeNode);
116
- if (!isInputType(argType)) {
117
- throw new GraphQLError(
118
- `Argument "$${name}" expected value of type "${inspect(
119
- argType
120
- )}" which cannot be used as an input type.`,
121
- { nodes: argumentNode }
115
+ const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));
116
+ for (const [name, argumentDef] of Object.entries(argumentDefs)) {
117
+ const argumentNode = argNodeMap.get(name);
118
+ const argumentTypeRef = schemaTypes.getTypeReference(argumentDef);
119
+ const defaultValue = schemaTypes.getInputDefaultValue(argumentDef);
120
+ if (argumentNode == null) {
121
+ if (defaultValue !== void 0) {
122
+ coercedValues[name] = defaultValue;
123
+ } else if (isNonNullType(argumentTypeRef)) {
124
+ const type = inspectTypeReference(argumentTypeRef);
125
+ throw locatedError(
126
+ `Argument "${name}" of required type "${type}" was not provided.`,
127
+ [node]
128
+ );
129
+ }
130
+ continue;
131
+ }
132
+ if (!schemaTypes.isDefined(argumentTypeRef)) {
133
+ throw locatedError(
134
+ `Could not find type for argument ${name} in ${node.kind} ${node.name.value}`,
135
+ [argumentNode]
122
136
  );
123
137
  }
124
- let valueNode = argumentNode.value;
138
+ const valueNode = argumentNode.value;
139
+ let isNull = valueNode.kind === Kind.NULL;
125
140
  if (valueNode.kind === Kind.VARIABLE) {
126
141
  const variableName = valueNode.name.value;
127
- if (variableValues == null || !hasOwnProperty(variableValues, variableName)) {
128
- if (argumentNode.__defaultValue) {
129
- valueNode = argumentNode.__defaultValue;
130
- } else if (isNonNullType(argType)) {
131
- throw new GraphQLError(
132
- `Argument "${name}" of required type "${inspect(argType)}" was provided the variable "$${variableName}" which was not provided a runtime value.`,
133
- { nodes: valueNode }
142
+ if (exeContext.variableValues == null || !hasOwnProperty(exeContext.variableValues, variableName)) {
143
+ if (defaultValue !== void 0) {
144
+ coercedValues[name] = defaultValue;
145
+ } else if (isNonNullType(argumentTypeRef)) {
146
+ const type = inspectTypeReference(argumentTypeRef);
147
+ throw locatedError(
148
+ `Argument "${name}" of required type "${type}" was provided the variable "$${variableName}" which was not provided a runtime value.`,
149
+ [valueNode]
134
150
  );
135
151
  }
136
152
  continue;
137
153
  }
154
+ isNull = exeContext.variableValues[variableName] == null;
155
+ }
156
+ if (isNull && isNonNullType(argumentTypeRef)) {
157
+ const type = inspectTypeReference(argumentTypeRef);
158
+ throw locatedError(
159
+ `Argument "${name}" of non-null type "${type}" must not be null."`,
160
+ [valueNode]
161
+ );
138
162
  }
139
163
  const coercedValue = valueFromAST(
140
164
  valueNode,
141
- argType,
142
- variableValues
165
+ argumentTypeRef,
166
+ schemaTypes,
167
+ exeContext.variableValues
143
168
  );
144
169
  if (coercedValue === void 0) {
145
170
  throw new GraphQLError(
146
- `Argument "${name}" has invalid value ${print(
147
- valueNode
148
- )}.`,
171
+ `Argument "${name}" has invalid value ${print(valueNode)}.`,
149
172
  { nodes: valueNode }
150
173
  );
151
174
  }
@@ -153,39 +176,22 @@ function getArgumentValues(resolvers, node, variableValues) {
153
176
  }
154
177
  return coercedValues;
155
178
  }
156
- function getDirectiveValues(directiveDef, node, resolvers, variableValues) {
179
+ function getDirectiveValues(exeContext, directiveDef, node) {
157
180
  var _a;
181
+ const schemaTypes = exeContext.schemaTypes;
182
+ const name = schemaTypes.getDirectiveName(directiveDef);
158
183
  const directiveNode = (_a = node.directives) == null ? void 0 : _a.find(
159
- (directive) => directive.name.value === directiveDef.name
184
+ (directive) => directive.name.value === name
160
185
  );
161
186
  if (directiveNode) {
162
- return getArgumentValues(resolvers, directiveNode, variableValues);
187
+ return getArgumentValues(exeContext, directiveDef, directiveNode);
163
188
  }
164
189
  }
165
190
  function hasOwnProperty(obj, prop) {
166
191
  return Object.prototype.hasOwnProperty.call(obj, prop);
167
192
  }
168
- var specifiedScalars = {
169
- ID: GraphQLID,
170
- String: GraphQLString,
171
- Int: GraphQLInt,
172
- Float: GraphQLFloat,
173
- Boolean: GraphQLBoolean
174
- };
175
- function graphqlTypeFromTypeAst(resolvers, node) {
176
- if (node.kind === Kind.NON_NULL_TYPE) {
177
- return new GraphQLNonNull(graphqlTypeFromTypeAst(resolvers, node.type));
178
- } else if (node.kind === Kind.LIST_TYPE) {
179
- return new GraphQLList(graphqlTypeFromTypeAst(resolvers, node.type));
180
- } else {
181
- const typeName = node.name.value;
182
- const type = specifiedScalars[typeName] || resolvers[typeName];
183
- return type;
184
- }
185
- }
186
193
  export {
187
194
  getArgumentValues,
188
195
  getDirectiveValues,
189
- getVariableValues,
190
- specifiedScalars
196
+ getVariableValues
191
197
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/values.ts"],
4
- "sourcesContent": ["import {\n ArgumentNode as GraphQLArgumentNode,\n GraphQLBoolean,\n GraphQLError,\n GraphQLFloat,\n GraphQLID,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLScalarType,\n GraphQLString,\n GraphQLType,\n isInputType,\n isNonNullType,\n Kind,\n print,\n TypeNode as GraphQLTypeNode,\n ValueNode as GraphQLValueNode,\n VariableDefinitionNode as GraphQLVariableDefinitionNode,\n valueFromAST,\n coerceInputValue,\n GraphQLDirective,\n} from \"graphql\";\nimport {\n DirectiveNode,\n FieldNode,\n TypeNode,\n VariableDefinitionNode,\n} from \"./supermassive-ast\";\nimport { inspect } from \"./jsutils/inspect\";\nimport type { Maybe } from \"./jsutils/Maybe\";\nimport type { ObjMap } from \"./jsutils/ObjMap\";\nimport { printPathArray } from \"./jsutils/printPathArray\";\nimport { Resolvers } from \"./types\";\n\ntype CoercedVariableValues =\n | { errors: Array<GraphQLError>; coerced?: never }\n | { coerced: { [variable: string]: unknown }; errors?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getVariableValues(\n resolvers: Resolvers,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n options?: { maxErrors?: number },\n): CoercedVariableValues {\n const errors: GraphQLError[] = [];\n const maxErrors = options?.maxErrors;\n try {\n const coerced = coerceVariableValues(\n resolvers,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n \"Too many errors processing variables, error limit reached. Execution aborted.\",\n );\n }\n errors.push(error);\n },\n );\n\n if (errors.length === 0) {\n return { coerced };\n }\n } catch (error) {\n errors.push(error as GraphQLError);\n }\n\n return { errors: errors };\n}\n\nfunction coerceVariableValues(\n resolvers: Resolvers,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n): { [variable: string]: unknown } {\n const coercedValues: { [variable: string]: unknown } = {};\n for (const varDefNode of varDefNodes) {\n const varName = varDefNode.variable.name.value;\n const varTypeAst = varDefNode.type;\n const varType: GraphQLType = graphqlTypeFromTypeAst(resolvers, varTypeAst);\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 = inspect(varType);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" expected value of type \"${varTypeStr}\" which cannot be used as an input type.`,\n { nodes: varDefNode.type as GraphQLTypeNode },\n ),\n );\n continue;\n }\n\n if (!hasOwnProperty(inputs, varName)) {\n if (varDefNode.defaultValue) {\n coercedValues[varName] = valueFromAST(\n varDefNode.defaultValue as Maybe<GraphQLValueNode>,\n varType,\n );\n } else if (isNonNullType(varType)) {\n const varTypeStr = print(varDefNode.type as GraphQLTypeNode);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of required type \"${varTypeStr}\" was not provided.`,\n { nodes: varDefNode as GraphQLVariableDefinitionNode },\n ),\n );\n }\n continue;\n }\n\n const value = inputs[varName];\n if (value === null && isNonNullType(varType)) {\n const varTypeStr = inspect(varType);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of non-null type \"${varTypeStr}\" must not be null.`,\n { nodes: varDefNode as GraphQLVariableDefinitionNode },\n ),\n );\n continue;\n }\n\n coercedValues[varName] = coerceInputValue(\n value,\n varType,\n (path, invalidValue, error) => {\n let prefix =\n `Variable \"$${varName}\" got invalid value ` + inspect(invalidValue);\n if (path.length > 0) {\n prefix += ` at \"${varName}${printPathArray(path)}\"`;\n }\n onError(\n new GraphQLError(prefix + \"; \" + error.message, {\n nodes: varDefNode as GraphQLVariableDefinitionNode,\n originalError: error.originalError,\n }),\n );\n },\n );\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getArgumentValues(\n resolvers: Resolvers,\n node: FieldNode | DirectiveNode,\n variableValues?: Maybe<ObjMap<unknown>>,\n): { [argument: string]: unknown } {\n const coercedValues: { [argument: string]: unknown } = {};\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const argumentNodes = node.arguments ?? [];\n\n for (const argumentNode of argumentNodes) {\n const name = argumentNode.name.value;\n const argTypeNode = argumentNode.__type;\n const argType = graphqlTypeFromTypeAst(resolvers, argTypeNode);\n\n if (!isInputType(argType)) {\n throw new GraphQLError(\n `Argument \"$${name}\" expected value of type \"${inspect(\n argType,\n )}\" which cannot be used as an input type.`,\n { nodes: argumentNode as GraphQLArgumentNode },\n );\n }\n\n let valueNode = argumentNode.value;\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (\n variableValues == null ||\n !hasOwnProperty(variableValues, variableName)\n ) {\n if (argumentNode.__defaultValue) {\n valueNode = argumentNode.__defaultValue;\n } else if (isNonNullType(argType)) {\n throw new GraphQLError(\n `Argument \"${name}\" of required type \"${inspect(argType)}\" ` +\n `was provided the variable \"$${variableName}\" which was not provided a runtime value.`,\n { nodes: valueNode as GraphQLValueNode },\n );\n }\n\n continue;\n }\n }\n\n const coercedValue = valueFromAST(\n valueNode as GraphQLValueNode,\n argType,\n variableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n `Argument \"${name}\" has invalid value ${print(\n valueNode as GraphQLValueNode,\n )}.`,\n { nodes: valueNode as GraphQLValueNode },\n );\n }\n coercedValues[name] = coercedValue;\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\nexport function getDirectiveValues(\n directiveDef: GraphQLDirective,\n node: { directives?: ReadonlyArray<DirectiveNode> },\n resolvers: Resolvers,\n variableValues?: Maybe<ObjMap<unknown>>,\n): undefined | { [argument: string]: unknown } {\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === directiveDef.name,\n );\n\n if (directiveNode) {\n return getArgumentValues(resolvers, directiveNode, variableValues);\n }\n}\n\nfunction hasOwnProperty(obj: unknown, prop: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport const specifiedScalars: { [key: string]: GraphQLScalarType } = {\n ID: GraphQLID,\n String: GraphQLString,\n Int: GraphQLInt,\n Float: GraphQLFloat,\n Boolean: GraphQLBoolean,\n};\n\nfunction graphqlTypeFromTypeAst(\n resolvers: Resolvers,\n node: TypeNode,\n): GraphQLType {\n if (node.kind === Kind.NON_NULL_TYPE) {\n return new GraphQLNonNull(graphqlTypeFromTypeAst(resolvers, node.type));\n } else if (node.kind === Kind.LIST_TYPE) {\n return new GraphQLList(graphqlTypeFromTypeAst(resolvers, node.type));\n } else {\n const typeName = node.name.value;\n const type = specifiedScalars[typeName] || resolvers[typeName];\n return type as GraphQLType;\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n GraphQLError,\n Kind,\n print,\n locatedError,\n DirectiveNode,\n FieldNode,\n VariableDefinitionNode,\n} from \"graphql\";\nimport { inspect } from \"./jsutils/inspect\";\nimport { printPathArray } from \"./jsutils/printPathArray\";\nimport { ExecutionContext } from \"./executeWithoutSchema\";\nimport { DirectiveDefinitionTuple, FieldDefinition } from \"./schema/definition\";\nimport { valueFromAST } from \"./utilities/valueFromAST\";\nimport { SchemaFragment } from \"./schema/fragment\";\nimport { coerceInputValue } from \"./utilities/coerceInputValue\";\nimport {\n inspectTypeReference,\n isNonNullType,\n typeReferenceFromNode,\n} from \"./schema/reference\";\n\ntype CoercedVariableValues =\n | { errors: Array<GraphQLError>; coerced?: never }\n | { coerced: { [variable: string]: unknown }; errors?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getVariableValues(\n schemaTypes: SchemaFragment,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n options?: { maxErrors?: number },\n): CoercedVariableValues {\n const errors: GraphQLError[] = [];\n const maxErrors = options?.maxErrors;\n try {\n const coerced = coerceVariableValues(\n schemaTypes,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n \"Too many errors processing variables, error limit reached. Execution aborted.\",\n );\n }\n errors.push(error);\n },\n );\n\n if (errors.length === 0) {\n return { coerced };\n }\n } catch (error) {\n errors.push(error as GraphQLError);\n }\n\n return { errors: errors };\n}\n\nfunction coerceVariableValues(\n schemaTypes: SchemaFragment,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n): { [variable: string]: unknown } {\n const coercedValues: { [variable: string]: unknown } = {};\n for (const varDefNode of varDefNodes) {\n const varName = varDefNode.variable.name.value;\n const varTypeReference = typeReferenceFromNode(varDefNode.type);\n\n if (!schemaTypes.isInputType(varTypeReference)) {\n // Must use input types for variables. This should be caught during\n // validation, however is checked again here for safety.\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n 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 continue;\n }\n\n if (!hasOwnProperty(inputs, varName)) {\n if (varDefNode.defaultValue) {\n coercedValues[varName] = valueFromAST(\n varDefNode.defaultValue,\n varTypeReference,\n schemaTypes,\n );\n } else if (isNonNullType(varTypeReference)) {\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of required type \"${varTypeStr}\" was not provided.`,\n { nodes: varDefNode },\n ),\n );\n }\n continue;\n }\n\n const value = inputs[varName];\n if (value === null && isNonNullType(varTypeReference)) {\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of non-null type \"${varTypeStr}\" must not be null.`,\n { nodes: varDefNode },\n ),\n );\n continue;\n }\n\n coercedValues[varName] = coerceInputValue(\n value,\n varTypeReference,\n schemaTypes,\n (path, invalidValue, error) => {\n let prefix =\n `Variable \"$${varName}\" got invalid value ` + inspect(invalidValue);\n if (path.length > 0) {\n prefix += ` at \"${varName}${printPathArray(path)}\"`;\n }\n onError(\n new GraphQLError(prefix + \"; \" + error.message, {\n nodes: varDefNode,\n originalError: error.originalError,\n }),\n );\n },\n );\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getArgumentValues(\n exeContext: ExecutionContext,\n def: FieldDefinition | DirectiveDefinitionTuple,\n node: FieldNode | DirectiveNode,\n): { [argument: string]: unknown } {\n const schemaTypes = exeContext.schemaTypes;\n const coercedValues: { [argument: string]: unknown } = {};\n const argumentDefs = schemaTypes.resolveDefinitionArguments(def);\n if (!argumentDefs) {\n return coercedValues;\n }\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const argumentNodes = node.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n\n for (const [name, argumentDef] of Object.entries(argumentDefs)) {\n const argumentNode = argNodeMap.get(name);\n const argumentTypeRef = schemaTypes.getTypeReference(argumentDef);\n const defaultValue = schemaTypes.getInputDefaultValue(argumentDef);\n\n if (argumentNode == null) {\n if (defaultValue !== undefined) {\n coercedValues[name] = defaultValue;\n } else if (isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of required type \"${type}\" was not provided.`,\n [node],\n );\n }\n continue;\n }\n\n if (!schemaTypes.isDefined(argumentTypeRef)) {\n throw locatedError(\n `Could not find type for argument ${name} in ${node.kind} ${node.name.value}`,\n [argumentNode],\n );\n }\n\n // if (!schemaTypes.isInputType(argumentTypeRef)) {\n // const type = schemaTypes.printTypeRef(argumentTypeRef);\n // throw locatedError(\n // `Argument \"$${name}\" expected value of type \"${type}\" which cannot be used as an input type.`,\n // [argumentNode],\n // );\n // }\n\n const valueNode = argumentNode.value;\n let isNull = valueNode.kind === Kind.NULL;\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (\n exeContext.variableValues == null ||\n !hasOwnProperty(exeContext.variableValues, variableName)\n ) {\n if (defaultValue !== undefined) {\n coercedValues[name] = defaultValue;\n } else if (isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of required type \"${type}\" ` +\n `was provided the variable \"$${variableName}\" which was not provided a runtime value.`,\n [valueNode],\n );\n }\n continue;\n }\n isNull = exeContext.variableValues[variableName] == null;\n }\n\n if (isNull && isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of non-null type \"${type}\" must not be null.\"`,\n [valueNode],\n );\n }\n\n const coercedValue = valueFromAST(\n valueNode,\n argumentTypeRef,\n schemaTypes,\n exeContext.variableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n `Argument \"${name}\" has invalid value ${print(valueNode)}.`,\n { nodes: valueNode },\n );\n }\n coercedValues[name] = coercedValue;\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\nexport function getDirectiveValues(\n exeContext: ExecutionContext,\n directiveDef: DirectiveDefinitionTuple,\n node: { directives?: ReadonlyArray<DirectiveNode> },\n): undefined | { [argument: string]: unknown } {\n const schemaTypes = exeContext.schemaTypes;\n const name = schemaTypes.getDirectiveName(directiveDef);\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === name,\n );\n\n if (directiveNode) {\n return getArgumentValues(exeContext, directiveDef, directiveNode);\n }\n}\n\nfunction hasOwnProperty(obj: unknown, prop: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@graphitation/supermassive",
3
3
  "license": "MIT",
4
- "version": "3.0.0-alpha.1",
4
+ "version": "3.0.0-alpha.3",
5
5
  "main": "./lib/index",
6
6
  "repository": {
7
7
  "type": "git",
@@ -11,8 +11,8 @@
11
11
  "scripts": {
12
12
  "build": "monorepo-scripts build",
13
13
  "lint": "monorepo-scripts lint",
14
- "test": "yarn extract-schema && monorepo-scripts test",
15
- "types": "yarn extract-schema && monorepo-scripts types",
14
+ "test": "monorepo-scripts test",
15
+ "types": "monorepo-scripts types",
16
16
  "just": "monorepo-scripts",
17
17
  "extract-schema": "yarn build && ts-node --project tsconfig.json ./node_modules/.bin/supermassive extract-schema ./src/benchmarks/swapi-schema/schema.graphql",
18
18
  "benchmark": "ts-node -T ./src/benchmarks/index.ts"
@@ -25,7 +25,8 @@
25
25
  "@types/jest": "^26.0.22",
26
26
  "@types/node-json-db": "^0.9.3",
27
27
  "benchmark": "^2.1.4",
28
- "graphql-jit": "^0.5.1",
28
+ "graphql": "17.0.0-alpha.2",
29
+ "graphql-jit": "^0.8.4",
29
30
  "iterall": "^1.3.0",
30
31
  "monorepo-scripts": "*",
31
32
  "node-json-db": "^1.3.0",
@@ -35,8 +36,9 @@
35
36
  "sideEffects": false,
36
37
  "access": "public",
37
38
  "publishConfig": {},
38
- "dependencies": {
39
- "graphql": "^17.0.0-alpha.2"
39
+ "dependencies": {},
40
+ "peerDependencies": {
41
+ "graphql": "^17.0.0"
40
42
  },
41
43
  "types": "./lib/index.d.ts",
42
44
  "module": "./lib/index.mjs",
@@ -1,7 +0,0 @@
1
- import { GraphQLFieldConfigArgumentMap, GraphQLArgument } from "graphql";
2
- import { Resolver, UnionTypeResolver, InterfaceTypeResolver } from "./types";
3
- export declare function defineArguments(config: GraphQLFieldConfigArgumentMap): ReadonlyArray<GraphQLArgument>;
4
- export declare function argsToArgsConfig(args: ReadonlyArray<GraphQLArgument>): GraphQLFieldConfigArgumentMap;
5
- export declare function isInterfaceResolverType(resolver: Resolver<unknown, unknown>): resolver is InterfaceTypeResolver;
6
- export declare function isUnionResolverType(resolver: Resolver<unknown, unknown>): resolver is UnionTypeResolver;
7
- //# sourceMappingURL=definition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAI7E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,6BAA6B,GACpC,aAAa,CAAC,eAAe,CAAC,CAUhC;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC,GACnC,6BAA6B,CAa/B;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GACnC,QAAQ,IAAI,qBAAqB,CAEnC;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GACnC,QAAQ,IAAI,iBAAiB,CAE/B"}
package/lib/definition.js DELETED
@@ -1,59 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var definition_exports = {};
20
- __export(definition_exports, {
21
- argsToArgsConfig: () => argsToArgsConfig,
22
- defineArguments: () => defineArguments,
23
- isInterfaceResolverType: () => isInterfaceResolverType,
24
- isUnionResolverType: () => isUnionResolverType
25
- });
26
- module.exports = __toCommonJS(definition_exports);
27
- var import_toObjMap = require("./jsutils/toObjMap");
28
- var import_keyValMap = require("./jsutils/keyValMap");
29
- function defineArguments(config) {
30
- return Object.entries(config).map(([argName, argConfig]) => ({
31
- name: argName,
32
- description: argConfig.description,
33
- type: argConfig.type,
34
- defaultValue: argConfig.defaultValue,
35
- deprecationReason: argConfig.deprecationReason,
36
- extensions: argConfig.extensions ? (0, import_toObjMap.toObjMap)(argConfig.extensions) : {},
37
- astNode: argConfig.astNode
38
- }));
39
- }
40
- function argsToArgsConfig(args) {
41
- return (0, import_keyValMap.keyValMap)(
42
- args,
43
- (arg) => arg.name,
44
- (arg) => ({
45
- description: arg.description,
46
- type: arg.type,
47
- defaultValue: arg.defaultValue,
48
- deprecationReason: arg.deprecationReason,
49
- extensions: arg.extensions,
50
- astNode: arg.astNode
51
- })
52
- );
53
- }
54
- function isInterfaceResolverType(resolver) {
55
- return "__implementedBy" in resolver && "__resolveType" in resolver;
56
- }
57
- function isUnionResolverType(resolver) {
58
- return "__types" in resolver && "__resolveType" in resolver;
59
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/definition.ts"],
4
- "sourcesContent": ["import { GraphQLFieldConfigArgumentMap, GraphQLArgument } from \"graphql\";\n\nimport { Resolver, UnionTypeResolver, InterfaceTypeResolver } from \"./types\";\nimport { toObjMap } from \"./jsutils/toObjMap\";\nimport { keyValMap } from \"./jsutils/keyValMap\";\n\nexport function defineArguments(\n config: GraphQLFieldConfigArgumentMap,\n): ReadonlyArray<GraphQLArgument> {\n return Object.entries(config).map(([argName, argConfig]) => ({\n name: argName,\n description: argConfig.description,\n type: argConfig.type,\n defaultValue: argConfig.defaultValue,\n deprecationReason: argConfig.deprecationReason,\n extensions: argConfig.extensions ? toObjMap(argConfig.extensions) : {},\n astNode: argConfig.astNode,\n }));\n}\n\nexport function argsToArgsConfig(\n args: ReadonlyArray<GraphQLArgument>,\n): GraphQLFieldConfigArgumentMap {\n return keyValMap(\n args,\n (arg) => arg.name,\n (arg) => ({\n description: arg.description,\n type: arg.type,\n defaultValue: arg.defaultValue,\n deprecationReason: arg.deprecationReason,\n extensions: arg.extensions,\n astNode: arg.astNode,\n }),\n );\n}\n\nexport function isInterfaceResolverType(\n resolver: Resolver<unknown, unknown>,\n): resolver is InterfaceTypeResolver {\n return \"__implementedBy\" in resolver && \"__resolveType\" in resolver;\n}\n\nexport function isUnionResolverType(\n resolver: Resolver<unknown, unknown>,\n): resolver is UnionTypeResolver {\n return \"__types\" in resolver && \"__resolveType\" in resolver;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,sBAAyB;AACzB,uBAA0B;AAEnB,SAAS,gBACd,QACgC;AAChC,SAAO,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS,SAAS,OAAO;AAAA,IAC3D,MAAM;AAAA,IACN,aAAa,UAAU;AAAA,IACvB,MAAM,UAAU;AAAA,IAChB,cAAc,UAAU;AAAA,IACxB,mBAAmB,UAAU;AAAA,IAC7B,YAAY,UAAU,iBAAa,0BAAS,UAAU,UAAU,IAAI,CAAC;AAAA,IACrE,SAAS,UAAU;AAAA,EACrB,EAAE;AACJ;AAEO,SAAS,iBACd,MAC+B;AAC/B,aAAO;AAAA,IACL;AAAA,IACA,CAAC,QAAQ,IAAI;AAAA,IACb,CAAC,SAAS;AAAA,MACR,aAAa,IAAI;AAAA,MACjB,MAAM,IAAI;AAAA,MACV,cAAc,IAAI;AAAA,MAClB,mBAAmB,IAAI;AAAA,MACvB,YAAY,IAAI;AAAA,MAChB,SAAS,IAAI;AAAA,IACf;AAAA,EACF;AACF;AAEO,SAAS,wBACd,UACmC;AACnC,SAAO,qBAAqB,YAAY,mBAAmB;AAC7D;AAEO,SAAS,oBACd,UAC+B;AAC/B,SAAO,aAAa,YAAY,mBAAmB;AACrD;",
6
- "names": []
7
- }
@@ -1,40 +0,0 @@
1
- // src/definition.ts
2
- import { toObjMap } from "./jsutils/toObjMap.mjs";
3
- import { keyValMap } from "./jsutils/keyValMap.mjs";
4
- function defineArguments(config) {
5
- return Object.entries(config).map(([argName, argConfig]) => ({
6
- name: argName,
7
- description: argConfig.description,
8
- type: argConfig.type,
9
- defaultValue: argConfig.defaultValue,
10
- deprecationReason: argConfig.deprecationReason,
11
- extensions: argConfig.extensions ? toObjMap(argConfig.extensions) : {},
12
- astNode: argConfig.astNode
13
- }));
14
- }
15
- function argsToArgsConfig(args) {
16
- return keyValMap(
17
- args,
18
- (arg) => arg.name,
19
- (arg) => ({
20
- description: arg.description,
21
- type: arg.type,
22
- defaultValue: arg.defaultValue,
23
- deprecationReason: arg.deprecationReason,
24
- extensions: arg.extensions,
25
- astNode: arg.astNode
26
- })
27
- );
28
- }
29
- function isInterfaceResolverType(resolver) {
30
- return "__implementedBy" in resolver && "__resolveType" in resolver;
31
- }
32
- function isUnionResolverType(resolver) {
33
- return "__types" in resolver && "__resolveType" in resolver;
34
- }
35
- export {
36
- argsToArgsConfig,
37
- defineArguments,
38
- isInterfaceResolverType,
39
- isUnionResolverType
40
- };
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/definition.ts"],
4
- "sourcesContent": ["import { GraphQLFieldConfigArgumentMap, GraphQLArgument } from \"graphql\";\n\nimport { Resolver, UnionTypeResolver, InterfaceTypeResolver } from \"./types\";\nimport { toObjMap } from \"./jsutils/toObjMap\";\nimport { keyValMap } from \"./jsutils/keyValMap\";\n\nexport function defineArguments(\n config: GraphQLFieldConfigArgumentMap,\n): ReadonlyArray<GraphQLArgument> {\n return Object.entries(config).map(([argName, argConfig]) => ({\n name: argName,\n description: argConfig.description,\n type: argConfig.type,\n defaultValue: argConfig.defaultValue,\n deprecationReason: argConfig.deprecationReason,\n extensions: argConfig.extensions ? toObjMap(argConfig.extensions) : {},\n astNode: argConfig.astNode,\n }));\n}\n\nexport function argsToArgsConfig(\n args: ReadonlyArray<GraphQLArgument>,\n): GraphQLFieldConfigArgumentMap {\n return keyValMap(\n args,\n (arg) => arg.name,\n (arg) => ({\n description: arg.description,\n type: arg.type,\n defaultValue: arg.defaultValue,\n deprecationReason: arg.deprecationReason,\n extensions: arg.extensions,\n astNode: arg.astNode,\n }),\n );\n}\n\nexport function isInterfaceResolverType(\n resolver: Resolver<unknown, unknown>,\n): resolver is InterfaceTypeResolver {\n return \"__implementedBy\" in resolver && \"__resolveType\" in resolver;\n}\n\nexport function isUnionResolverType(\n resolver: Resolver<unknown, unknown>,\n): resolver is UnionTypeResolver {\n return \"__types\" in resolver && \"__resolveType\" in resolver;\n}\n"],
5
- "mappings": ";AAGA,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAEnB,SAAS,gBACd,QACgC;AAChC,SAAO,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS,SAAS,OAAO;AAAA,IAC3D,MAAM;AAAA,IACN,aAAa,UAAU;AAAA,IACvB,MAAM,UAAU;AAAA,IAChB,cAAc,UAAU;AAAA,IACxB,mBAAmB,UAAU;AAAA,IAC7B,YAAY,UAAU,aAAa,SAAS,UAAU,UAAU,IAAI,CAAC;AAAA,IACrE,SAAS,UAAU;AAAA,EACrB,EAAE;AACJ;AAEO,SAAS,iBACd,MAC+B;AAC/B,SAAO;AAAA,IACL;AAAA,IACA,CAAC,QAAQ,IAAI;AAAA,IACb,CAAC,SAAS;AAAA,MACR,aAAa,IAAI;AAAA,MACjB,MAAM,IAAI;AAAA,MACV,cAAc,IAAI;AAAA,MAClB,mBAAmB,IAAI;AAAA,MACvB,YAAY,IAAI;AAAA,MAChB,SAAS,IAAI;AAAA,IACf;AAAA,EACF;AACF;AAEO,SAAS,wBACd,UACmC;AACnC,SAAO,qBAAqB,YAAY,mBAAmB;AAC7D;AAEO,SAAS,oBACd,UAC+B;AAC/B,SAAO,aAAa,YAAY,mBAAmB;AACrD;",
6
- "names": []
7
- }
@@ -1,8 +0,0 @@
1
- import { GraphQLDirective } from "graphql";
2
- export { specifiedDirectives, isSpecifiedDirective, GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, GraphQLSpecifiedByDirective, GraphQLDeferDirective, GraphQLStreamDirective, } from "./supermassive-ast";
3
- /**
4
- * Test if the given value is a GraphQL directive.
5
- */
6
- export declare function isDirective(directive: unknown): directive is GraphQLDirective;
7
- export declare function assertDirective(directive: unknown): GraphQLDirective;
8
- //# sourceMappingURL=directives.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../src/directives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,gBAAgB,CAE7E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,CAOpE"}