summaryrefslogtreecommitdiff
path: root/school/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow
diff options
context:
space:
mode:
Diffstat (limited to 'school/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow')
-rw-r--r--school/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow49
1 files changed, 0 insertions, 49 deletions
diff --git a/school/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow b/school/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow
deleted file mode 100644
index ed284c8..0000000
--- a/school/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow
+++ /dev/null
@@ -1,49 +0,0 @@
-// @flow strict
-import { GraphQLError } from '../../error/GraphQLError';
-
-import type { ASTVisitor } from '../../language/visitor';
-
-import type { ValidationContext } from '../ValidationContext';
-
-/**
- * No unused variables
- *
- * A GraphQL operation is only valid if all variables defined by an operation
- * are used, either directly or within a spread fragment.
- */
-export function NoUnusedVariablesRule(context: ValidationContext): ASTVisitor {
- let variableDefs = [];
-
- return {
- OperationDefinition: {
- enter() {
- variableDefs = [];
- },
- leave(operation) {
- const variableNameUsed = Object.create(null);
- const usages = context.getRecursiveVariableUsages(operation);
-
- for (const { node } of usages) {
- variableNameUsed[node.name.value] = true;
- }
-
- for (const variableDef of variableDefs) {
- const variableName = variableDef.variable.name.value;
- if (variableNameUsed[variableName] !== true) {
- context.reportError(
- new GraphQLError(
- operation.name
- ? `Variable "$${variableName}" is never used in operation "${operation.name.value}".`
- : `Variable "$${variableName}" is never used.`,
- variableDef,
- ),
- );
- }
- }
- },
- },
- VariableDefinition(def) {
- variableDefs.push(def);
- },
- };
-}