UNPKG

@relay-graphql-js/validation-rules

Version:
30 lines (29 loc) 1.31 kB
"use strict"; exports.__esModule = true; exports.RelayNoUnusedArguments = exports.unusedArgumentMessage = void 0; var graphql_1 = require("graphql"); var argumentDefinitions_1 = require("./argumentDefinitions"); function unusedArgumentMessage(varName, framgnetName) { return "Argument \"" + varName + "\" in fragment \"" + framgnetName + "\" is never used."; } exports.unusedArgumentMessage = unusedArgumentMessage; // tslint:disable-next-line: no-shadowed-variable exports.RelayNoUnusedArguments = function RelayNoUnusedArguments(context) { return { FragmentDefinition: function (fragmentDef) { var argumentDefinitions = argumentDefinitions_1.getFragmentArgumentDefinitions(context, fragmentDef); var usages = {}; graphql_1.visit(fragmentDef.selectionSet, { Variable: function (variableNode) { usages[variableNode.name.value] = 1; } }); Object.keys(argumentDefinitions).forEach(function (arg) { var definition = argumentDefinitions[arg]; if (!usages[arg]) { context.reportError(new graphql_1.GraphQLError(unusedArgumentMessage(arg, fragmentDef.name.value), definition.node)); } }); } }; };