Skip to content

Commit 05f53e0

Browse files
authored
Add semantic introspection (#9533)
1 parent 0a7a516 commit 05f53e0

104 files changed

Lines changed: 7853 additions & 229 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/CookieCrumble/src/CookieCrumble.HotChocolate/Formatters/OperationResultSnapshotValueFormatter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ protected override void Format(IBufferWriter<byte> snapshot, OperationResult val
3030
writer.WriteNumber("variableIndex", value.VariableIndex.Value);
3131
}
3232

33-
if (value.Data.ValueKind is JsonValueKind.Object)
33+
if (value.Data.ValueKind is JsonValueKind.Object or JsonValueKind.Null)
3434
{
3535
writer.WritePropertyName("data");
3636
value.Data.WriteTo(writer);

src/HotChocolate/ApolloFederation/src/ApolloFederation/FederationTypeInterceptor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ private void RegisterImports()
274274
_schemaTypeCfg
275275
.GetLegacyConfiguration()
276276
.AddDirective(
277-
new LinkDirective(version.ToUrl(), federationTypes),
277+
new LinkDirective(version.ToUrl(), federationTypes.Order().ToArray()),
278278
_typeInspector);
279279

280280
foreach (var import in _imports)
@@ -287,7 +287,7 @@ private void RegisterImports()
287287
_schemaTypeCfg
288288
.GetLegacyConfiguration()
289289
.AddDirective(
290-
new LinkDirective(import.Key, import.Value),
290+
new LinkDirective(import.Key, import.Value.Order().ToArray()),
291291
_typeInspector);
292292
}
293293
}

src/HotChocolate/ApolloFederation/src/ApolloFederation/Types/Directives/LinkDescriptorExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public static IRequestExecutorBuilder AddLink(
114114
builder.ConfigureSchema(
115115
sb =>
116116
sb.AddSchemaConfiguration(
117-
d => d.Directive(new LinkDirective(url, imports?.ToHashSet()))));
117+
d => d.Directive(new LinkDirective(url, imports?.Distinct().Order().ToArray()))));
118118

119119
return builder;
120120
}

src/HotChocolate/ApolloFederation/src/ApolloFederation/Types/Directives/LinkDirective.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,17 @@ public sealed class LinkDirective
1919
/// <param name="import">
2020
/// Optional list of imported elements.
2121
/// </param>
22-
public LinkDirective(Uri url, IReadOnlySet<string>? import)
22+
public LinkDirective(Uri url, IReadOnlyList<string>? import)
2323
{
2424
Url = url;
25-
Import = import;
25+
var imports = import?.ToArray();
26+
27+
if (imports is not null)
28+
{
29+
Array.Sort(imports, StringComparer.Ordinal);
30+
}
31+
32+
Import = imports;
2633
}
2734

2835
/// <summary>
@@ -36,5 +43,5 @@ public LinkDirective(Uri url, IReadOnlySet<string>? import)
3643
/// Gets optional list of imported element names.
3744
/// </summary>
3845
[GraphQLDescription(FederationResources.LinkDirective_Import_Description)]
39-
public IReadOnlySet<string>? Import { get; }
46+
public IReadOnlyList<string>? Import { get; }
4047
}

src/HotChocolate/ApolloFederation/test/ApolloFederation.Tests/CertificationSchema/AnnotationBased/__snapshots__/CertificationTests.Schema_Snapshot.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
schema
2-
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@tag", "@key", "@provides", "@external", "FieldSet"]) {
2+
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@external", "@key", "@provides", "@tag", "FieldSet"]) {
33
query: Query
44
}
55

src/HotChocolate/ApolloFederation/test/ApolloFederation.Tests/CertificationSchema/AnnotationBased/__snapshots__/CertificationTests.Subgraph_SDL.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
schema
2-
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@tag", "@key", "@provides", "@external", "FieldSet"]) {
2+
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@external", "@key", "@provides", "@tag", "FieldSet"]) {
33
query: Query
44
}
55

src/HotChocolate/ApolloFederation/test/ApolloFederation.Tests/CertificationSchema/CodeFirst/__snapshots__/CertificationTests.Schema_Snapshot.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
schema
2-
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@key", "@provides", "@external", "@tag", "FieldSet"]) {
2+
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@external", "@key", "@provides", "@tag", "FieldSet"]) {
33
query: Query
44
}
55

src/HotChocolate/ApolloFederation/test/ApolloFederation.Tests/CertificationSchema/CodeFirst/__snapshots__/CertificationTests.Subgraph_SDL.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
schema
2-
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@key", "@provides", "@external", "@tag", "FieldSet"]) {
2+
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@external", "@key", "@provides", "@tag", "FieldSet"]) {
33
query: Query
44
}
55

src/HotChocolate/ApolloFederation/test/ApolloFederation.Tests/Directives/__snapshots__/ComposeDirectiveTests.ExportDirectiveUsingNameCodeFirst.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
schema
22
@composeDirective(name: "@custom")
3-
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@key", "@tag", "FieldSet", "@composeDirective"])
3+
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@composeDirective", "@key", "@tag", "FieldSet"])
44
@link(url: "https://specs.custom.dev/custom/v1.0", import: ["@custom"]) {
55
query: Query
66
}

src/HotChocolate/ApolloFederation/test/ApolloFederation.Tests/Directives/__snapshots__/ComposeDirectiveTests.ExportDirectiveUsingTypeCodeFirst.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
schema
22
@composeDirective(name: "@custom")
3-
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@key", "@tag", "FieldSet", "@composeDirective"])
3+
@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@composeDirective", "@key", "@tag", "FieldSet"])
44
@link(url: "https://specs.custom.dev/custom/v1.0", import: ["@custom"]) {
55
query: Query
66
}

0 commit comments

Comments
 (0)