Skip to content

Commit 49e7737

Browse files
wip
1 parent a34816b commit 49e7737

File tree

3 files changed

+594
-26
lines changed

3 files changed

+594
-26
lines changed

src/HotChocolate/Fusion-vnext/src/Fusion.Utilities/Rewriters/InlineFragmentOperationRewriterNew.cs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,21 @@
55

66
namespace HotChocolate.Fusion.Rewriters;
77

8-
public sealed class InlineFragmentOperationRewriterNew(ISchemaDefinition schema)
8+
public sealed class InlineFragmentOperationRewriterNew(
9+
ISchemaDefinition schema,
10+
#pragma warning disable CS9113 // Parameter is unread.
11+
bool removeStaticallyExcludedSelections = false)
12+
#pragma warning restore CS9113 // Parameter is unread.
913
{
14+
private static readonly FieldNode s_typeNameField =
15+
new FieldNode(
16+
null,
17+
new NameNode(IntrospectionFieldNames.TypeName),
18+
null,
19+
[new DirectiveNode("fusion__empty")],
20+
ImmutableArray<ArgumentNode>.Empty,
21+
null);
22+
1023
public DocumentNode RewriteDocument(DocumentNode document, string? operationName = null)
1124
{
1225
var operation = document.GetOperation(operationName);
@@ -68,6 +81,11 @@ private SelectionSetNode RewriteSelections(Context context)
6881
{
6982
var newInlineFragmentNode = RewriteInlineFragment(inlineFragmentNode, context);
7083

84+
if (newInlineFragmentNode.SelectionSet.Selections.Count == 0)
85+
{
86+
continue;
87+
}
88+
7189
if (context.Conditionals.TryGetValue(newInlineFragmentNode, out var conditional))
7290
{
7391
conditionals ??=
@@ -116,6 +134,11 @@ private SelectionSetNode RewriteSelections(Context context)
116134
}
117135
}
118136

137+
if (selections.Count == 0)
138+
{
139+
selections.Add(s_typeNameField);
140+
}
141+
119142
return new SelectionSetNode(selections);
120143
}
121144

0 commit comments

Comments
 (0)