Skip to content

Commit da8d7c4

Browse files
committed
[federation] Fix handling of list items in builder.selection
1 parent 5706d80 commit da8d7c4

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

.changeset/lovely-carrots-sneeze.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pothos/plugin-federation": patch
3+
---
4+
5+
Fix handling of list items in builder.selection

packages/plugin-federation/src/types.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,16 @@ export type ShapeFromExternalFields<Fields extends FieldMap> = {
4242
: unknown;
4343
};
4444

45+
type NonNullableNonList<T> = NonNullable<T> extends Array<infer U>
46+
? NonNullable<U>
47+
: NonNullable<T>;
48+
4549
export type SelectionFromShape<Shape, Space extends string = ''> = {} extends Required<Shape>
4650
? ''
4751
: {
48-
[K in keyof Shape]: Omit<Shape, K> extends infer R
49-
? NonNullable<Shape[K]> extends object
50-
? `${Space}${K & string} { ${NonNullable<Shape[K]> extends infer T
52+
[K in keyof Shape]-?: Omit<Shape, K> extends infer R
53+
? NonNullableNonList<Shape[K]> extends object
54+
? `${Space}${K & string} { ${NonNullableNonList<Shape[K]> extends infer T
5155
? SelectionFromShape<T>
5256
: never} }${SelectionFromShape<R, ' '>}`
5357
: `${Space}${K & string}${SelectionFromShape<R, ' '>}`

0 commit comments

Comments
 (0)