Skip to content

Commit cebd26d

Browse files
committed
feat(ts-client): support non-null interface
1 parent b85b50b commit cebd26d

File tree

5 files changed

+12
-7
lines changed

5 files changed

+12
-7
lines changed

src/Schema/Field.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ export type SomeField = Field<
2626
| Output.List<any>
2727
| Output.Nullable<any>
2828
| Output.Object$2<string, any>
29-
| Output.Union<string, [any, ...any[]]>,
29+
| Output.Union<string, [any, ...any[]]>
30+
| Output.Interface<string, Record<string, Field<any, Args<any> | null>>, [any, ...any[]]>,
3031
Args<any> | null
3132
>
3233

src/generator/__snapshots__/files.test.ts.snap

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ export namespace Root {
5353
input: $.Input.Nullable<InputObject.InputObject>
5454
}>
5555
>
56-
interface: $.Field<$.Output.Nullable<Interface.Interface>, null>
5756
id: $.Field<$.Output.Nullable<$Scalar.ID>, null>
5857
idNonNull: $.Field<$Scalar.ID, null>
5958
string: $.Field<$.Output.Nullable<$Scalar.String>, null>
@@ -129,6 +128,8 @@ export namespace Root {
129128
*/
130129
abcEnum: $.Field<$.Output.Nullable<Enum.ABCEnum>, null>
131130
lowerCaseUnion: $.Field<$.Output.Nullable<Union.lowerCaseUnion>, null>
131+
interface: $.Field<$.Output.Nullable<Interface.Interface>, null>
132+
interfaceNonNull: $.Field<Interface.Interface, null>
132133
unionFooBar: $.Field<$.Output.Nullable<Union.FooBarUnion>, null>
133134
unionObject: $.Field<$.Output.Nullable<Object.ObjectUnion>, null>
134135
unionFooBarNonNull: $.Field<Union.FooBarUnion, null>
@@ -373,7 +374,6 @@ export const Query = $.Object$(\`Query\`, {
373374
),
374375
dateArgNonNullListNonNull: $.field($.Output.Nullable($Scalar.Date), $.Args({ date: $.Input.List($Scalar.Date) })),
375376
dateArgInputObject: $.field($.Output.Nullable($Scalar.Date), $.Args({ input: $.Input.Nullable(InputObject) })),
376-
interface: $.field($.Output.Nullable(() => Interface)),
377377
id: $.field($.Output.Nullable($Scalar.ID)),
378378
idNonNull: $.field($Scalar.ID),
379379
string: $.field($.Output.Nullable($Scalar.String)),
@@ -424,6 +424,8 @@ export const Query = $.Object$(\`Query\`, {
424424
fooBarUnion: $.field($.Output.Nullable(() => FooBarUnion)),
425425
abcEnum: $.field($.Output.Nullable(ABCEnum)),
426426
lowerCaseUnion: $.field($.Output.Nullable(() => lowerCaseUnion)),
427+
interface: $.field($.Output.Nullable(() => Interface)),
428+
interfaceNonNull: $.field(() => Interface),
427429
unionFooBar: $.field($.Output.Nullable(() => FooBarUnion)),
428430
unionObject: $.field($.Output.Nullable(() => ObjectUnion)),
429431
unionFooBarNonNull: $.field(() => FooBarUnion),

tests/ts/_/schema/generated/SchemaBuildtime.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ export namespace Root {
5050
input: $.Input.Nullable<InputObject.InputObject>
5151
}>
5252
>
53-
interface: $.Field<$.Output.Nullable<Interface.Interface>, null>
5453
id: $.Field<$.Output.Nullable<$Scalar.ID>, null>
5554
idNonNull: $.Field<$Scalar.ID, null>
5655
string: $.Field<$.Output.Nullable<$Scalar.String>, null>
@@ -126,6 +125,8 @@ export namespace Root {
126125
*/
127126
abcEnum: $.Field<$.Output.Nullable<Enum.ABCEnum>, null>
128127
lowerCaseUnion: $.Field<$.Output.Nullable<Union.lowerCaseUnion>, null>
128+
interface: $.Field<$.Output.Nullable<Interface.Interface>, null>
129+
interfaceNonNull: $.Field<Interface.Interface, null>
129130
unionFooBar: $.Field<$.Output.Nullable<Union.FooBarUnion>, null>
130131
unionObject: $.Field<$.Output.Nullable<Object.ObjectUnion>, null>
131132
unionFooBarNonNull: $.Field<Union.FooBarUnion, null>

tests/ts/_/schema/generated/SchemaRuntime.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ export const Query = $.Object$(`Query`, {
9595
),
9696
dateArgNonNullListNonNull: $.field($.Output.Nullable($Scalar.Date), $.Args({ date: $.Input.List($Scalar.Date) })),
9797
dateArgInputObject: $.field($.Output.Nullable($Scalar.Date), $.Args({ input: $.Input.Nullable(InputObject) })),
98-
interface: $.field($.Output.Nullable(() => Interface)),
9998
id: $.field($.Output.Nullable($Scalar.ID)),
10099
idNonNull: $.field($Scalar.ID),
101100
string: $.field($.Output.Nullable($Scalar.String)),
@@ -146,6 +145,8 @@ export const Query = $.Object$(`Query`, {
146145
fooBarUnion: $.field($.Output.Nullable(() => FooBarUnion)),
147146
abcEnum: $.field($.Output.Nullable(ABCEnum)),
148147
lowerCaseUnion: $.field($.Output.Nullable(() => lowerCaseUnion)),
148+
interface: $.field($.Output.Nullable(() => Interface)),
149+
interfaceNonNull: $.field(() => Interface),
149150
unionFooBar: $.field($.Output.Nullable(() => FooBarUnion)),
150151
unionObject: $.field($.Output.Nullable(() => ObjectUnion)),
151152
unionFooBarNonNull: $.field(() => FooBarUnion),

tests/ts/_/schema/schema.graphql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ type Query {
1414
dateArgNonNullList(date: [Date]!): Date
1515
dateArgNonNullListNonNull(date: [Date!]!): Date
1616
dateArgInputObject(input: InputObject): Date
17-
interface: Interface
1817
id: ID
1918
idNonNull: ID!
2019
string: String
@@ -39,11 +38,12 @@ type Query {
3938
"""
4039
abcEnum: ABCEnum
4140
lowerCaseUnion: lowerCaseUnion
41+
interface: Interface
42+
interfaceNonNull: Interface!
4243
unionFooBar: FooBarUnion
4344
unionObject: ObjectUnion
4445
unionFooBarNonNull: FooBarUnion!
4546
unionObjectNonNull: ObjectUnion!
46-
4747
}
4848

4949
interface DateInterface1 {

0 commit comments

Comments
 (0)