UNPKG

1.21 kBJavaScriptView Raw
1import { Kind, specifiedRules, validate, NoUnusedFragmentsRule, KnownFragmentNamesRule, } from 'graphql';
2import { ExecutableDefinitions } from 'graphql/validation/rules/ExecutableDefinitions';
3export function validateWithCustomRules(schema, ast, customRules, isRelayCompatMode) {
4 const rules = specifiedRules.filter(rule => {
5 if (rule === NoUnusedFragmentsRule || rule === ExecutableDefinitions) {
6 return false;
7 }
8 if (isRelayCompatMode && rule === KnownFragmentNamesRule) {
9 return false;
10 }
11 return true;
12 });
13 if (customRules) {
14 Array.prototype.push.apply(rules, customRules);
15 }
16 const errors = validate(schema, ast, rules);
17 return errors.filter(error => {
18 if (error.message.indexOf('Unknown directive') !== -1 && error.nodes) {
19 const node = error.nodes[0];
20 if (node && node.kind === Kind.DIRECTIVE) {
21 const name = node.name.value;
22 if (name === 'arguments' || name === 'argumentDefinitions') {
23 return false;
24 }
25 }
26 }
27 return true;
28 });
29}
30//# sourceMappingURL=validateWithCustomRules.js.map
\No newline at end of file