|
7 | 7 | * @flow strict
|
8 | 8 | */
|
9 | 9 |
|
| 10 | +import invariant from '../jsutils/invariant'; |
10 | 11 | import keyMap from '../jsutils/keyMap';
|
11 | 12 | import keyValMap from '../jsutils/keyValMap';
|
12 | 13 | import type { ObjMap } from '../jsutils/ObjMap';
|
@@ -113,24 +114,25 @@ export type BuildSchemaOptions = {
|
113 | 114 | *
|
114 | 115 | */
|
115 | 116 | export function buildASTSchema(
|
116 |
| - ast: DocumentNode, |
| 117 | + documentAST: DocumentNode, |
117 | 118 | options?: BuildSchemaOptions,
|
118 | 119 | ): GraphQLSchema {
|
119 |
| - if (!ast || ast.kind !== Kind.DOCUMENT) { |
120 |
| - throw new Error('Must provide a document ast.'); |
121 |
| - } |
| 120 | + invariant( |
| 121 | + documentAST && documentAST.kind === Kind.DOCUMENT, |
| 122 | + 'Must provide valid Document AST', |
| 123 | + ); |
122 | 124 |
|
123 | 125 | if (!options || !(options.assumeValid || options.assumeValidSDL)) {
|
124 |
| - assertValidSDL(ast); |
| 126 | + assertValidSDL(documentAST); |
125 | 127 | }
|
126 | 128 |
|
127 | 129 | let schemaDef: ?SchemaDefinitionNode;
|
128 | 130 |
|
129 | 131 | const typeDefs: Array<TypeDefinitionNode> = [];
|
130 | 132 | const nodeMap: ObjMap<TypeDefinitionNode> = Object.create(null);
|
131 | 133 | const directiveDefs: Array<DirectiveDefinitionNode> = [];
|
132 |
| - for (let i = 0; i < ast.definitions.length; i++) { |
133 |
| - const d = ast.definitions[i]; |
| 134 | + for (let i = 0; i < documentAST.definitions.length; i++) { |
| 135 | + const d = documentAST.definitions[i]; |
134 | 136 | switch (d.kind) {
|
135 | 137 | case Kind.SCHEMA_DEFINITION:
|
136 | 138 | schemaDef = d;
|
|
0 commit comments