diff options
Diffstat (limited to 'alarm/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow')
-rw-r--r-- | alarm/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/alarm/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow b/alarm/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow deleted file mode 100644 index cac22c5..0000000 --- a/alarm/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow +++ /dev/null @@ -1,49 +0,0 @@ -// @flow strict -import inspect from '../../jsutils/inspect'; - -import { GraphQLError } from '../../error/GraphQLError'; - -import type { FieldNode } from '../../language/ast'; -import type { ASTVisitor } from '../../language/visitor'; - -import { getNamedType, isLeafType } from '../../type/definition'; - -import type { ValidationContext } from '../ValidationContext'; - -/** - * Scalar leafs - * - * A GraphQL document is valid only if all leaf fields (fields without - * sub selections) are of scalar or enum types. - */ -export function ScalarLeafsRule(context: ValidationContext): ASTVisitor { - return { - Field(node: FieldNode) { - const type = context.getType(); - const selectionSet = node.selectionSet; - if (type) { - if (isLeafType(getNamedType(type))) { - if (selectionSet) { - const fieldName = node.name.value; - const typeStr = inspect(type); - context.reportError( - new GraphQLError( - `Field "${fieldName}" must not have a selection since type "${typeStr}" has no subfields.`, - selectionSet, - ), - ); - } - } else if (!selectionSet) { - const fieldName = node.name.value; - const typeStr = inspect(type); - context.reportError( - new GraphQLError( - `Field "${fieldName}" of type "${typeStr}" must have a selection of subfields. Did you mean "${fieldName} { ... }"?`, - node, - ), - ); - } - } - }, - }; -} |