Skip to content

Commit bce300f

Browse files
Use invariants instead of throwing Errors (#1457)
1 parent 1ac0bf8 commit bce300f

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/utilities/buildASTSchema.js

+9-7
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* @flow strict
88
*/
99

10+
import invariant from '../jsutils/invariant';
1011
import keyMap from '../jsutils/keyMap';
1112
import keyValMap from '../jsutils/keyValMap';
1213
import type { ObjMap } from '../jsutils/ObjMap';
@@ -113,24 +114,25 @@ export type BuildSchemaOptions = {
113114
*
114115
*/
115116
export function buildASTSchema(
116-
ast: DocumentNode,
117+
documentAST: DocumentNode,
117118
options?: BuildSchemaOptions,
118119
): 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+
);
122124

123125
if (!options || !(options.assumeValid || options.assumeValidSDL)) {
124-
assertValidSDL(ast);
126+
assertValidSDL(documentAST);
125127
}
126128

127129
let schemaDef: ?SchemaDefinitionNode;
128130

129131
const typeDefs: Array<TypeDefinitionNode> = [];
130132
const nodeMap: ObjMap<TypeDefinitionNode> = Object.create(null);
131133
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];
134136
switch (d.kind) {
135137
case Kind.SCHEMA_DEFINITION:
136138
schemaDef = d;

0 commit comments

Comments
 (0)