Skip to content

Commit bb401a3

Browse files
committed
Be stricter about types
1 parent ac213fa commit bb401a3

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

src/language/ast.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,7 @@ export interface SemanticNonNullTypeNode {
530530
/** Type Reference */
531531

532532
export type TypeNode = NamedTypeNode | ListTypeNode | NonNullTypeNode;
533+
export type SchemaOutputTypeNode = NamedTypeNode | ListTypeNode | NonNullTypeNode | SemanticNonNullTypeNode;
533534

534535
export interface NamedTypeNode {
535536
readonly kind: Kind.NAMED_TYPE;
@@ -540,7 +541,13 @@ export interface NamedTypeNode {
540541
export interface ListTypeNode {
541542
readonly kind: Kind.LIST_TYPE;
542543
readonly loc?: Location;
543-
readonly type: TypeNode | SemanticNonNullTypeNode;
544+
readonly type: TypeNode;
545+
}
546+
547+
export interface SchemaListTypeNode {
548+
readonly kind: Kind.LIST_TYPE;
549+
readonly loc?: Location;
550+
readonly type: SchemaOutputTypeNode;
544551
}
545552

546553
export interface NonNullTypeNode {
@@ -605,7 +612,7 @@ export interface FieldDefinitionNode {
605612
readonly description?: StringValueNode;
606613
readonly name: NameNode;
607614
readonly arguments?: ReadonlyArray<InputValueDefinitionNode>;
608-
readonly type: TypeNode | SemanticNonNullTypeNode;
615+
readonly type: SchemaOutputTypeNode;
609616
readonly directives?: ReadonlyArray<ConstDirectiveNode>;
610617
}
611618

src/utilities/extendSchema.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@ import type {
2424
ScalarTypeExtensionNode,
2525
SchemaDefinitionNode,
2626
SchemaExtensionNode,
27-
SemanticNonNullTypeNode,
27+
SchemaOutputTypeNode,
2828
TypeDefinitionNode,
29-
TypeNode,
3029
UnionTypeDefinitionNode,
3130
UnionTypeExtensionNode,
3231
} from '../language/ast';
@@ -433,7 +432,7 @@ export function extendSchemaImpl(
433432
}
434433

435434
function getWrappedType(
436-
node: TypeNode | SemanticNonNullTypeNode,
435+
node: SchemaOutputTypeNode,
437436
): GraphQLType {
438437
if (node.kind === Kind.LIST_TYPE) {
439438
return new GraphQLList(getWrappedType(node.type));

src/utilities/typeFromAST.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export function typeFromAST(
3939
): GraphQLType | undefined {
4040
switch (typeNode.kind) {
4141
case Kind.LIST_TYPE: {
42-
const innerType = typeFromAST(schema, typeNode.type as TypeNode);
42+
const innerType = typeFromAST(schema, typeNode.type);
4343
return innerType && new GraphQLList(innerType);
4444
}
4545
case Kind.NON_NULL_TYPE: {

0 commit comments

Comments
 (0)