1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | import { GraphQLError } from '../error/GraphQLError';
|
10 | import invariant from '../jsutils/invariant';
|
11 | var NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | export function assertValidName(name) {
|
17 | var error = isValidNameError(name);
|
18 |
|
19 | if (error) {
|
20 | throw error;
|
21 | }
|
22 |
|
23 | return name;
|
24 | }
|
25 |
|
26 |
|
27 |
|
28 |
|
29 | export function isValidNameError(name, node) {
|
30 | !(typeof name === 'string') ? invariant(0, 'Expected string') : void 0;
|
31 |
|
32 | if (name.length > 1 && name[0] === '_' && name[1] === '_') {
|
33 | return new GraphQLError("Name \"".concat(name, "\" must not begin with \"__\", which is reserved by ") + 'GraphQL introspection.', node);
|
34 | }
|
35 |
|
36 | if (!NAME_RX.test(name)) {
|
37 | return new GraphQLError("Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but \"".concat(name, "\" does not."), node);
|
38 | }
|
39 | } |
\ | No newline at end of file |