Skip to content
This repository was archived by the owner on Dec 8, 2021. It is now read-only.

Commit 17cdb85

Browse files
committed
fix(gg): dedupe nullable on optional non-array interface
1 parent 6b66923 commit 17cdb85

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

packages/graphqlgen/src/generators/common.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,10 +261,10 @@ export const printFieldLikeType = (
261261

262262
if (field.type.isArray) {
263263
rendering = array(rendering, { innerUnion: false })
264-
}
265264

266-
if (!field.type.isArrayRequired) {
267-
rendering = nullable(rendering)
265+
if (!field.type.isArrayRequired) {
266+
rendering = nullable(rendering)
267+
}
268268
}
269269

270270
// We do not have to handle defaults becuase graphql only

packages/graphqlgen/tests/fixtures/interface/schema.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
type Query {
22
media(first: Int): [Media]
3+
mediaItem(id: Int!): Media
34
}
45

56
interface Unused {

packages/graphqlgen/tests/typescript/__snapshots__/basic.test.ts.snap

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,10 @@ export namespace QueryResolvers {
350350
first?: number | null;
351351
}
352352

353+
export interface ArgsMediaItem {
354+
id: number;
355+
}
356+
353357
export type MediaResolver = (
354358
parent: undefined,
355359
args: ArgsMedia,
@@ -360,6 +364,13 @@ export namespace QueryResolvers {
360364
| null
361365
| Promise<Array<Image | Video | null> | null>;
362366

367+
export type MediaItemResolver = (
368+
parent: undefined,
369+
args: ArgsMediaItem,
370+
ctx: Context,
371+
info: GraphQLResolveInfo
372+
) => Image | Video | null | Promise<Image | Video | null>;
373+
363374
export interface Type {
364375
media: (
365376
parent: undefined,
@@ -370,6 +381,13 @@ export namespace QueryResolvers {
370381
| Array<Image | Video | null>
371382
| null
372383
| Promise<Array<Image | Video | null> | null>;
384+
385+
mediaItem: (
386+
parent: undefined,
387+
args: ArgsMediaItem,
388+
ctx: Context,
389+
info: GraphQLResolveInfo
390+
) => Image | Video | null | Promise<Image | Video | null>;
373391
}
374392
}
375393

@@ -615,6 +633,9 @@ export const Query: QueryResolvers.Type = {
615633
...QueryResolvers.defaultResolvers,
616634
media: (parent, args, ctx) => {
617635
throw new Error(\\"Resolver not implemented\\");
636+
},
637+
mediaItem: (parent, args, ctx) => {
638+
throw new Error(\\"Resolver not implemented\\");
618639
}
619640
};
620641
",

0 commit comments

Comments
 (0)