Skip to content

Commit c526767

Browse files
committed
Fix typing for isNonNullType
= If a type is a non-null type, then the wrapped type must be nullable. = Introduces `GraphQLNullableInputType` and `GraphQLNullableOutputType` to properly represent the result when `isNonNullType` is called on parameters of type `GraphQLInputType` or `GraphQLOutputType`.
1 parent d9eda1f commit c526767

File tree

3 files changed

+20
-22
lines changed

3 files changed

+20
-22
lines changed

src/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ export type {
147147
GraphQLAbstractType,
148148
GraphQLWrappingType,
149149
GraphQLNullableType,
150+
GraphQLNullableInputType,
151+
GraphQLNullableOutputType,
150152
GraphQLNamedType,
151153
GraphQLNamedInputType,
152154
GraphQLNamedOutputType,

src/type/definition.ts

+16-22
Original file line numberDiff line numberDiff line change
@@ -183,16 +183,16 @@ export function assertListType(type: unknown): GraphQLList<GraphQLType> {
183183

184184
export function isNonNullType(
185185
type: GraphQLInputType,
186-
): type is GraphQLNonNull<GraphQLInputType>;
186+
): type is GraphQLNonNull<GraphQLNullableInputType>;
187187
export function isNonNullType(
188188
type: GraphQLOutputType,
189-
): type is GraphQLNonNull<GraphQLOutputType>;
189+
): type is GraphQLNonNull<GraphQLNullableOutputType>;
190190
export function isNonNullType(
191191
type: unknown,
192-
): type is GraphQLNonNull<GraphQLType>;
192+
): type is GraphQLNonNull<GraphQLNullableType>;
193193
export function isNonNullType(
194194
type: unknown,
195-
): type is GraphQLNonNull<GraphQLType> {
195+
): type is GraphQLNonNull<GraphQLNullableType> {
196196
return instanceOf(type, GraphQLNonNull);
197197
}
198198

@@ -206,17 +206,15 @@ export function assertNonNullType(type: unknown): GraphQLNonNull<GraphQLType> {
206206
/**
207207
* These types may be used as input types for arguments and directives.
208208
*/
209-
export type GraphQLInputType =
209+
export type GraphQLNullableInputType =
210210
| GraphQLScalarType
211211
| GraphQLEnumType
212212
| GraphQLInputObjectType
213-
| GraphQLList<GraphQLInputType>
214-
| GraphQLNonNull<
215-
| GraphQLScalarType
216-
| GraphQLEnumType
217-
| GraphQLInputObjectType
218-
| GraphQLList<GraphQLInputType>
219-
>;
213+
| GraphQLList<GraphQLInputType>;
214+
215+
export type GraphQLInputType =
216+
| GraphQLNullableInputType
217+
| GraphQLNonNull<GraphQLNullableInputType>;
220218

221219
export function isInputType(type: unknown): type is GraphQLInputType {
222220
return (
@@ -237,21 +235,17 @@ export function assertInputType(type: unknown): GraphQLInputType {
237235
/**
238236
* These types may be used as output types as the result of fields.
239237
*/
240-
export type GraphQLOutputType =
238+
export type GraphQLNullableOutputType =
241239
| GraphQLScalarType
242240
| GraphQLObjectType
243241
| GraphQLInterfaceType
244242
| GraphQLUnionType
245243
| GraphQLEnumType
246-
| GraphQLList<GraphQLOutputType>
247-
| GraphQLNonNull<
248-
| GraphQLScalarType
249-
| GraphQLObjectType
250-
| GraphQLInterfaceType
251-
| GraphQLUnionType
252-
| GraphQLEnumType
253-
| GraphQLList<GraphQLOutputType>
254-
>;
244+
| GraphQLList<GraphQLOutputType>;
245+
246+
export type GraphQLOutputType =
247+
| GraphQLNullableOutputType
248+
| GraphQLNonNull<GraphQLNullableOutputType>;
255249

256250
export function isOutputType(type: unknown): type is GraphQLOutputType {
257251
return (

src/type/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ export type {
7575
GraphQLAbstractType,
7676
GraphQLWrappingType,
7777
GraphQLNullableType,
78+
GraphQLNullableInputType,
79+
GraphQLNullableOutputType,
7880
GraphQLNamedType,
7981
GraphQLNamedInputType,
8082
GraphQLNamedOutputType,

0 commit comments

Comments
 (0)