Skip to content

Commit 9d20615

Browse files
committed
Refactor GraphQL*Type TS types to be more DRY
Motivation: 1. Makes it easier to understand the type hierarchy. 2. Adding a new type, were it ever to happen, would require fewer code changes.
1 parent cf6430e commit 9d20615

File tree

1 file changed

+5
-32
lines changed

1 file changed

+5
-32
lines changed

src/type/definition.ts

+5-32
Original file line numberDiff line numberDiff line change
@@ -50,23 +50,7 @@ import type { GraphQLSchema } from './schema';
5050
/**
5151
* These are all of the possible kinds of types.
5252
*/
53-
export type GraphQLType =
54-
| GraphQLScalarType
55-
| GraphQLObjectType
56-
| GraphQLInterfaceType
57-
| GraphQLUnionType
58-
| GraphQLEnumType
59-
| GraphQLInputObjectType
60-
| GraphQLList<GraphQLType>
61-
| GraphQLNonNull<
62-
| GraphQLScalarType
63-
| GraphQLObjectType
64-
| GraphQLInterfaceType
65-
| GraphQLUnionType
66-
| GraphQLEnumType
67-
| GraphQLInputObjectType
68-
| GraphQLList<GraphQLType>
69-
>;
53+
export type GraphQLType = GraphQLInputType | GraphQLOutputType;
7054

7155
export function isType(type: unknown): type is GraphQLType {
7256
return (
@@ -207,9 +191,7 @@ export function assertNonNullType(type: unknown): GraphQLNonNull<GraphQLType> {
207191
* These types may be used as input types for arguments and directives.
208192
*/
209193
export type GraphQLNullableInputType =
210-
| GraphQLScalarType
211-
| GraphQLEnumType
212-
| GraphQLInputObjectType
194+
| GraphQLNamedInputType
213195
| GraphQLList<GraphQLInputType>;
214196

215197
export type GraphQLInputType =
@@ -236,11 +218,7 @@ export function assertInputType(type: unknown): GraphQLInputType {
236218
* These types may be used as output types as the result of fields.
237219
*/
238220
export type GraphQLNullableOutputType =
239-
| GraphQLScalarType
240-
| GraphQLObjectType
241-
| GraphQLInterfaceType
242-
| GraphQLUnionType
243-
| GraphQLEnumType
221+
| GraphQLNamedOutputType
244222
| GraphQLList<GraphQLOutputType>;
245223

246224
export type GraphQLOutputType =
@@ -431,13 +409,8 @@ export function assertWrappingType(type: unknown): GraphQLWrappingType {
431409
* These types can all accept null as a value.
432410
*/
433411
export type GraphQLNullableType =
434-
| GraphQLScalarType
435-
| GraphQLObjectType
436-
| GraphQLInterfaceType
437-
| GraphQLUnionType
438-
| GraphQLEnumType
439-
| GraphQLInputObjectType
440-
| GraphQLList<GraphQLType>;
412+
| GraphQLNullableInputType
413+
| GraphQLNullableOutputType;
441414

442415
export function isNullableType(type: unknown): type is GraphQLNullableType {
443416
return isType(type) && !isNonNullType(type);

0 commit comments

Comments
 (0)