Initial Save
This commit is contained in:
48
node_modules/graphql/validation/rules/NoUnusedFragments.mjs
generated
vendored
Normal file
48
node_modules/graphql/validation/rules/NoUnusedFragments.mjs
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
import { GraphQLError } from '../../error/GraphQLError';
|
||||
export function unusedFragMessage(fragName) {
|
||||
return "Fragment \"".concat(fragName, "\" is never used.");
|
||||
}
|
||||
/**
|
||||
* 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 NoUnusedFragments(context) {
|
||||
var operationDefs = [];
|
||||
var fragmentDefs = [];
|
||||
return {
|
||||
OperationDefinition: function OperationDefinition(node) {
|
||||
operationDefs.push(node);
|
||||
return false;
|
||||
},
|
||||
FragmentDefinition: function FragmentDefinition(node) {
|
||||
fragmentDefs.push(node);
|
||||
return false;
|
||||
},
|
||||
Document: {
|
||||
leave: function leave() {
|
||||
var fragmentNameUsed = Object.create(null);
|
||||
|
||||
for (var _i2 = 0; _i2 < operationDefs.length; _i2++) {
|
||||
var operation = operationDefs[_i2];
|
||||
|
||||
for (var _i4 = 0, _context$getRecursive2 = context.getRecursivelyReferencedFragments(operation); _i4 < _context$getRecursive2.length; _i4++) {
|
||||
var fragment = _context$getRecursive2[_i4];
|
||||
fragmentNameUsed[fragment.name.value] = true;
|
||||
}
|
||||
}
|
||||
|
||||
for (var _i6 = 0; _i6 < fragmentDefs.length; _i6++) {
|
||||
var fragmentDef = fragmentDefs[_i6];
|
||||
var fragName = fragmentDef.name.value;
|
||||
|
||||
if (fragmentNameUsed[fragName] !== true) {
|
||||
context.reportError(new GraphQLError(unusedFragMessage(fragName), fragmentDef));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user