/
rules.ts
59 lines (54 loc) 路 2.2 KB
/
rules.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import { specifiedSDLRules } from 'graphql/validation/specifiedRules';
/**
* Since this module has overlapping names in the two modules (graphql-js and
* our own, local validation rules) which we are importing from, we
* intentionally are very explicit about the suffixes of imported members here,
* so that the intention is clear.
*
* First, we'll import validation rules from graphql-js which we'll omit and
* replace with our own validation rules. As noted above, we'll use aliases
* with 'FromGraphqlJs' suffixes for clarity.
*/
import {
UniqueDirectivesPerLocationRule as UniqueDirectivesPerLocationRuleFromGraphqlJs,
} from 'graphql';
import {
UniqueTypeNames as UniqueTypeNamesFromGraphqlJs,
} from 'graphql/validation/rules/UniqueTypeNames';
import {
UniqueEnumValueNames as UniqueEnumValueNamesFromGraphqlJs,
} from 'graphql/validation/rules/UniqueEnumValueNames';
import {
PossibleTypeExtensions as PossibleTypeExtensionsFromGraphqlJs,
} from 'graphql/validation/rules/PossibleTypeExtensions';
import {
UniqueFieldDefinitionNames as UniqueFieldDefinitionNamesFromGraphqlJs,
} from 'graphql/validation/rules/UniqueFieldDefinitionNames';
/**
* Then, we'll import our own validation rules to take the place of those that
* we'll be customizing, taking care to alias them all to the same name with
* "FromComposition" suffixes.
*/
import {
UniqueTypeNamesWithFields as UniqueTypeNamesWithFieldsFromComposition,
MatchingEnums as MatchingEnumsFromComposition,
PossibleTypeExtensions as PossibleTypeExtensionsFromComposition,
UniqueFieldDefinitionNames as UniqueFieldDefinitionsNamesFromComposition,
UniqueUnionTypes as UniqueUnionTypesFromComposition,
} from './validate/sdl';
const omit = [
UniqueDirectivesPerLocationRuleFromGraphqlJs,
UniqueTypeNamesFromGraphqlJs,
UniqueEnumValueNamesFromGraphqlJs,
PossibleTypeExtensionsFromGraphqlJs,
UniqueFieldDefinitionNamesFromGraphqlJs,
];
export const compositionRules = specifiedSDLRules
.filter(rule => !omit.includes(rule))
.concat([
UniqueFieldDefinitionsNamesFromComposition,
UniqueTypeNamesWithFieldsFromComposition,
MatchingEnumsFromComposition,
UniqueUnionTypesFromComposition,
PossibleTypeExtensionsFromComposition,
]);