diff options
Diffstat (limited to 'school/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow')
-rw-r--r-- | school/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/school/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow b/school/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow new file mode 100644 index 0000000..0c02736 --- /dev/null +++ b/school/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow @@ -0,0 +1,26 @@ +// @flow strict +import { GraphQLError } from '../../error/GraphQLError'; + +import type { ASTVisitor } from '../../language/visitor'; + +import type { ValidationContext } from '../ValidationContext'; + +/** + * Known fragment names + * + * A GraphQL document is only valid if all `...Fragment` fragment spreads refer + * to fragments defined in the same document. + */ +export function KnownFragmentNamesRule(context: ValidationContext): ASTVisitor { + return { + FragmentSpread(node) { + const fragmentName = node.name.value; + const fragment = context.getFragment(fragmentName); + if (!fragment) { + context.reportError( + new GraphQLError(`Unknown fragment "${fragmentName}".`, node.name), + ); + } + }, + }; +} |