diff options
Diffstat (limited to 'school/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow')
-rw-r--r-- | school/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/school/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow b/school/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow deleted file mode 100644 index fd5801b..0000000 --- a/school/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow +++ /dev/null @@ -1,54 +0,0 @@ -// @flow strict -import { GraphQLError } from '../../error/GraphQLError'; - -import type { ASTVisitor } from '../../language/visitor'; - -import type { ASTValidationContext } from '../ValidationContext'; - -/** - * No unused fragments - * - * A GraphQL document is only valid if all fragment definitions are spread - * within operations, or spread within other fragments spread within operations. - */ -export function NoUnusedFragmentsRule( - context: ASTValidationContext, -): ASTVisitor { - const operationDefs = []; - const fragmentDefs = []; - - return { - OperationDefinition(node) { - operationDefs.push(node); - return false; - }, - FragmentDefinition(node) { - fragmentDefs.push(node); - return false; - }, - Document: { - leave() { - const fragmentNameUsed = Object.create(null); - for (const operation of operationDefs) { - for (const fragment of context.getRecursivelyReferencedFragments( - operation, - )) { - fragmentNameUsed[fragment.name.value] = true; - } - } - - for (const fragmentDef of fragmentDefs) { - const fragName = fragmentDef.name.value; - if (fragmentNameUsed[fragName] !== true) { - context.reportError( - new GraphQLError( - `Fragment "${fragName}" is never used.`, - fragmentDef, - ), - ); - } - } - }, - }, - }; -} |