KnownFragmentNamesRule.js 874 B

123456789101112131415161718192021222324252627282930313233343536
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', {
  3. value: true,
  4. });
  5. exports.KnownFragmentNamesRule = KnownFragmentNamesRule;
  6. var _GraphQLError = require('../../error/GraphQLError.js');
  7. /**
  8. * Known fragment names
  9. *
  10. * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
  11. * to fragments defined in the same document.
  12. *
  13. * See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined
  14. */
  15. function KnownFragmentNamesRule(context) {
  16. return {
  17. FragmentSpread(node) {
  18. const fragmentName = node.name.value;
  19. const fragment = context.getFragment(fragmentName);
  20. if (!fragment) {
  21. context.reportError(
  22. new _GraphQLError.GraphQLError(
  23. `Unknown fragment "${fragmentName}".`,
  24. {
  25. nodes: node.name,
  26. },
  27. ),
  28. );
  29. }
  30. },
  31. };
  32. }