Skip to content

Commit f370fc3

Browse files
committed
Small refactoring
1 parent 3828c20 commit f370fc3

File tree

2 files changed

+13
-38
lines changed

2 files changed

+13
-38
lines changed

src/utilities/buildASTSchema.js

Lines changed: 13 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ import type {
4747
} from '../type/definition';
4848

4949
import {
50-
assertNullableType,
5150
GraphQLScalarType,
5251
GraphQLObjectType,
5352
GraphQLInterfaceType,
@@ -92,31 +91,6 @@ export type BuildSchemaOptions = {
9291
commentDescriptions?: boolean,
9392
};
9493

95-
function buildWrappedType(
96-
innerType: GraphQLType,
97-
inputTypeNode: TypeNode,
98-
): GraphQLType {
99-
if (inputTypeNode.kind === Kind.LIST_TYPE) {
100-
return GraphQLList(buildWrappedType(innerType, inputTypeNode.type));
101-
}
102-
if (inputTypeNode.kind === Kind.NON_NULL_TYPE) {
103-
const wrappedType = buildWrappedType(innerType, inputTypeNode.type);
104-
return GraphQLNonNull(assertNullableType(wrappedType));
105-
}
106-
return innerType;
107-
}
108-
109-
function getNamedTypeNode(typeNode: TypeNode): NamedTypeNode {
110-
let namedType = typeNode;
111-
while (
112-
namedType.kind === Kind.LIST_TYPE ||
113-
namedType.kind === Kind.NON_NULL_TYPE
114-
) {
115-
namedType = namedType.type;
116-
}
117-
return namedType;
118-
}
119-
12094
/**
12195
* This takes the ast of a schema document produced by the parse function in
12296
* src/language/parser.js.
@@ -190,7 +164,6 @@ export function buildASTSchema(
190164
},
191165
);
192166

193-
const types = definitionBuilder.buildTypes(typeDefs);
194167
const directives = directiveDefs.map(def =>
195168
definitionBuilder.buildDirective(def),
196169
);
@@ -221,7 +194,7 @@ export function buildASTSchema(
221194
subscription: operationTypes.subscription
222195
? (definitionBuilder.buildType(operationTypes.subscription): any)
223196
: null,
224-
types,
197+
types: typeDefs.map(node => definitionBuilder.buildType(node)),
225198
directives,
226199
astNode: schemaDef,
227200
assumeValid: options && options.assumeValid,
@@ -271,9 +244,7 @@ export class ASTDefinitionBuilder {
271244
);
272245
}
273246

274-
buildTypes(
275-
nodes: $ReadOnlyArray<NamedTypeNode | TypeDefinitionNode>,
276-
): Array<GraphQLNamedType> {
247+
buildTypes(nodes: $ReadOnlyArray<NamedTypeNode>): Array<GraphQLNamedType> {
277248
return nodes.map(node => this.buildType(node));
278249
}
279250

@@ -293,8 +264,16 @@ export class ASTDefinitionBuilder {
293264
}
294265

295266
_buildWrappedType(typeNode: TypeNode): GraphQLType {
296-
const typeDef = this.buildType(getNamedTypeNode(typeNode));
297-
return buildWrappedType(typeDef, typeNode);
267+
if (typeNode.kind === Kind.LIST_TYPE) {
268+
return GraphQLList(this._buildWrappedType(typeNode.type));
269+
}
270+
if (typeNode.kind === Kind.NON_NULL_TYPE) {
271+
return GraphQLNonNull(
272+
// Note: GraphQLNonNull constructor validates this type
273+
(this._buildWrappedType(typeNode.type): any),
274+
);
275+
}
276+
return this.buildType(typeNode);
298277
}
299278

300279
buildDirective(directiveNode: DirectiveDefinitionNode): GraphQLDirective {
@@ -366,10 +345,9 @@ export class ASTDefinitionBuilder {
366345
}
367346

368347
_makeTypeDef(def: ObjectTypeDefinitionNode) {
369-
const typeName = def.name.value;
370348
const interfaces = def.interfaces;
371349
return new GraphQLObjectType({
372-
name: typeName,
350+
name: def.name.value,
373351
description: getDescription(def, this._options),
374352
fields: () => this._makeFieldDefMap(def),
375353
// Note: While this could make early assertions to get the correctly

src/utilities/extendSchema.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,9 +299,6 @@ export function extendSchema(
299299
extendTypeCache[name] = extendEnumType(type);
300300
} else if (isInputObjectType(type)) {
301301
extendTypeCache[name] = extendInputObjectType(type);
302-
} else {
303-
// This type is not yet extendable.
304-
extendTypeCache[name] = type;
305302
}
306303
}
307304
return (extendTypeCache[name]: any);

0 commit comments

Comments
 (0)