Skip to content

Commit 022375d

Browse files
committed
Refactor ClientGenerator and ClientTemplate for improved readability and consistency; update package versions
1 parent 726b7d3 commit 022375d

File tree

10 files changed

+169
-177
lines changed

10 files changed

+169
-177
lines changed

Directory.Packages.props

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11
<Project>
2-
<PropertyGroup>
3-
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
4-
</PropertyGroup>
5-
<ItemGroup>
6-
<GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.7.115"/>
7-
</ItemGroup>
8-
<ItemGroup>
9-
<PackageVersion Include="BlazorMonaco" Version="3.3.0"/>
10-
<PackageVersion Include="ColorCode.HTML" Version="2.0.15"/>
11-
<PackageVersion Include="coverlet.collector" Version="6.0.4">
12-
<PrivateAssets>all</PrivateAssets>
13-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
14-
</PackageVersion>
15-
<PackageVersion Include="HotChocolate.AspNetCore" Version="15.1.10"/>
16-
<PackageVersion Include="HotChocolate.Data" Version="15.1.10"/>
17-
<PackageVersion Include="HotChocolate.Types.Scalars" Version="15.1.10"/>
18-
<PackageVersion Include="HotChocolate.Types.Analyzers" Version="15.1.10"/>
19-
<PackageVersion Include="Macross.Json.Extensions" Version="3.0.0"/>
20-
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.9"/>
21-
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.9"/>
22-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.9"/>
23-
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.9"/>
24-
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.9"/>
25-
<PackageVersion Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.9"/>
26-
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.9"/>
27-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.9"/>
28-
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.9"/>
29-
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.9"/>
30-
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.9"/>
31-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0"/>
32-
<PackageVersion Include="Moq" Version="4.20.72"/>
33-
<PackageVersion Include="Shouldly" Version="4.3.0"/>
34-
<PackageVersion Include="System.CodeDom" Version="8.0.0"/>
35-
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1"/>
36-
<PackageVersion Include="System.Text.Json" Version="9.0.9"/>
37-
<PackageVersion Include="TabBlazor" Version="0.8.1.1-alpha"/>
38-
<PackageVersion Include="Websocket.Client" Version="5.3.0"/>
39-
<PackageVersion Include="xunit" Version="2.9.3"/>
40-
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.2">
41-
<PrivateAssets>all</PrivateAssets>
42-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
43-
</PackageVersion>
44-
</ItemGroup>
2+
<PropertyGroup>
3+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
4+
</PropertyGroup>
5+
<ItemGroup>
6+
<GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.8.118" />
7+
</ItemGroup>
8+
<ItemGroup>
9+
<PackageVersion Include="BlazorMonaco" Version="3.3.0" />
10+
<PackageVersion Include="ColorCode.HTML" Version="2.0.15" />
11+
<PackageVersion Include="coverlet.collector" Version="6.0.4">
12+
<PrivateAssets>all</PrivateAssets>
13+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
14+
</PackageVersion>
15+
<PackageVersion Include="HotChocolate.AspNetCore" Version="15.1.10" />
16+
<PackageVersion Include="HotChocolate.Data" Version="15.1.10" />
17+
<PackageVersion Include="HotChocolate.Types.Scalars" Version="15.1.10" />
18+
<PackageVersion Include="HotChocolate.Types.Analyzers" Version="15.1.10" />
19+
<PackageVersion Include="Macross.Json.Extensions" Version="3.0.0" />
20+
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.9" />
21+
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.9" />
22+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.9" />
23+
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.9" />
24+
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.9" />
25+
<PackageVersion Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.9" />
26+
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.9" />
27+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.9" />
28+
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.9" />
29+
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.9" />
30+
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.9" />
31+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
32+
<PackageVersion Include="Moq" Version="4.20.72" />
33+
<PackageVersion Include="Shouldly" Version="4.3.0" />
34+
<PackageVersion Include="System.CodeDom" Version="9.0.9" />
35+
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
36+
<PackageVersion Include="System.Text.Json" Version="9.0.9" />
37+
<PackageVersion Include="TabBlazor" Version="0.8.1.1-alpha" />
38+
<PackageVersion Include="Websocket.Client" Version="5.3.0" />
39+
<PackageVersion Include="xunit" Version="2.9.3" />
40+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5">
41+
<PrivateAssets>all</PrivateAssets>
42+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
43+
</PackageVersion>
44+
</ItemGroup>
4545
</Project>

src/Linq2GraphQL.Client/Exceptions/GraphQueryExecutionException.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class GraphQueryError
3232

3333
[JsonPropertyName("locations")] public ErrorLocation[] Locations { get; set; }
3434

35-
[JsonPropertyName("path")] public List<string> Path { get; set; }
35+
[JsonPropertyName("path")] public List<object> Path { get; set; }
3636
}
3737

3838
public class ErrorLocation

src/Linq2GraphQL.Client/QueryExecutor.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,22 @@ namespace Linq2GraphQL.Client;
55

66
public class QueryExecutor<T>
77
{
8-
private const string errorPropertyName = "errors";
9-
private const string dataPropertyName = "data";
10-
private const string extensionsPropertyName = "extensions";
11-
8+
private const string ErrorPropertyName = "errors";
9+
private const string DataPropertyName = "data";
10+
private const string ExtensionsPropertyName = "extensions";
11+
1212
private readonly GraphClient client;
1313

1414
internal QueryExecutor(GraphClient client)
1515
{
1616
this.client = client;
1717
}
1818

19-
internal async Task<T> ExecuteRequestAsync(string name, GraphQLRequest graphRequest, CancellationToken cancellationToken = default)
19+
internal async Task<T> ExecuteRequestAsync(string name, GraphQLRequest graphRequest,
20+
CancellationToken cancellationToken = default)
2021
{
21-
using var response = await client.HttpClient.PostAsJsonAsync("", graphRequest, client.SerializerOptions, cancellationToken: cancellationToken);
22+
using var response = await client.HttpClient.PostAsJsonAsync("", graphRequest, client.SerializerOptions,
23+
cancellationToken: cancellationToken);
2224

2325
if (!response.IsSuccessStatusCode)
2426
{
@@ -34,16 +36,15 @@ internal async Task<T> ExecuteRequestAsync(string name, GraphQLRequest graphRequ
3436
public T ProcessResponse(string con, string name, GraphQLRequest request)
3537
{
3638
var document = JsonDocument.Parse(con);
37-
var hasError = document.RootElement.TryGetProperty(errorPropertyName, out var errorElement);
38-
var hasExtensions = document.RootElement.TryGetProperty(extensionsPropertyName, out var extensionsElement);
39+
var hasError = document.RootElement.TryGetProperty(ErrorPropertyName, out var errorElement);
3940

4041
if (hasError)
4142
{
4243
var errors = errorElement.Deserialize<List<GraphQueryError>>(client.SerializerOptions);
4344
throw new GraphQueryExecutionException(errors, request.Query, request.Variables);
4445
}
4546

46-
document.RootElement.TryGetProperty(dataPropertyName, out var dataElement);
47+
document.RootElement.TryGetProperty(DataPropertyName, out var dataElement);
4748
dataElement.TryGetProperty(name, out var resultElement);
4849

4950
if (resultElement.ValueKind == JsonValueKind.Null)
@@ -52,6 +53,5 @@ public T ProcessResponse(string con, string name, GraphQLRequest request)
5253
}
5354

5455
return resultElement.Deserialize<T>(client.SerializerOptions);
55-
5656
}
57-
}
57+
}

src/Linq2GraphQL.Generator/ClientGenerator.cs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,13 @@
1010

1111
namespace Linq2GraphQL.Generator
1212
{
13-
public class ClientGenerator(string namespaceName, string clientName, bool includeSubscriptions,
14-
EnumGeneratorStrategy enumGeneratorStrategy, bool nullable, bool includeDeprecated)
13+
public class ClientGenerator(
14+
string namespaceName,
15+
string clientName,
16+
bool includeSubscriptions,
17+
EnumGeneratorStrategy enumGeneratorStrategy,
18+
bool nullable,
19+
bool includeDeprecated)
1520
{
1621
private readonly List<FileEntry> entries = new();
1722

@@ -52,7 +57,7 @@ public async Task<List<FileEntry>> GenerateAsync(Uri uri, string authToken = nul
5257
query = General.IntrospectionQuery;
5358
}
5459

55-
using var response = await httpClient.PostAsJsonAsync(uri, new { query = query });
60+
using var response = await httpClient.PostAsJsonAsync(uri, new { query = query });
5661
if (!response.IsSuccessStatusCode)
5762
{
5863
throw new Exception(
@@ -105,8 +110,10 @@ public List<FileEntry> Generate(string schemaJson)
105110
Console.WriteLine("Generate Interfaces");
106111

107112
var classInterfacesList = schema.GetClassTypes()?.Where(e => e.HasInterfaces)
108-
?.SelectMany(i => i.Interfaces?.ToDictionary(e => i.Name, e => e.Name))?.ToList() ?? new List<KeyValuePair<string, string>>();
109-
113+
?.SelectMany(i => i.Interfaces?.ToDictionary(e => i.Name, e => e.Name))
114+
?.ToList() ??
115+
new List<KeyValuePair<string, string>>();
116+
110117
var interfaces = schema.GetInterfaces();
111118
if (interfaces != null)
112119
{
@@ -149,7 +156,6 @@ public List<FileEntry> Generate(string schemaJson)
149156
}
150157

151158

152-
153159
Console.WriteLine("Generate Enums...");
154160
foreach (var enumType in schema.GetEnums())
155161
{
@@ -172,18 +178,19 @@ public List<FileEntry> Generate(string schemaJson)
172178
{
173179
var scalarText = new ScalarTemplate(scalar, namespaceName).TransformText();
174180
AddFile("Scalars", scalar.FileName, scalarText);
175-
176181
}
177182

178183

179184
Console.WriteLine("Generate Client Interface...");
180-
var clientInterfaceText = new IClientTemplate(namespaceName, clientName, queryType, mutationType, subscriptionType, includeDeprecated)
185+
var clientInterfaceText = new IClientTemplate(namespaceName, clientName, queryType, mutationType,
186+
subscriptionType, includeDeprecated)
181187
.TransformText();
182188
var interfaceFileName = "I" + clientName + ".cs";
183189
AddFile("Interfaces", interfaceFileName, clientInterfaceText);
184190

185191
Console.WriteLine("Generate Client...");
186-
var templateText = new ClientTemplate(namespaceName, clientName, queryType, mutationType, subscriptionType, includeDeprecated)
192+
var templateText = new ClientTemplate(namespaceName, clientName, queryType, mutationType, subscriptionType,
193+
includeDeprecated, nullable: nullable)
187194
.TransformText();
188195
var fileName = clientName + ".cs";
189196
AddFile(clientDirName, fileName, templateText);

src/Linq2GraphQL.Generator/Properties/launchSettings.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"profiles": {
33
"Linq2GraphQL.Generator": {
44
"commandName": "Project",
5-
"commandLineArgs": "https://localhost:7184/graphql/ -c=\"SampleClient\" -n=\"Linq2GraphQL.TestClient\" -o=\"C:\\Code\\Linq2GraphQL.Client\\test\\Linq2GraphQL.TestClient\\Generated\" -s=true -d=true"
6-
// "commandLineArgs": "https://localhost:50741/graphql/ -c=\"SampleNullableClient\" -n=\"Linq2GraphQL.TestClientNullable\" -o=\"C:\\Code\\Linq2GraphQL.Client\\test\\Linq2GraphQL.TestClientNullable\\Generated\" -s=true -d=true -nu=true"
5+
// "commandLineArgs": "https://localhost:7184/graphql/ -c=\"SampleClient\" -n=\"Linq2GraphQL.TestClient\" -o=\"C:\\Code\\Linq2GraphQL.Client\\test\\Linq2GraphQL.TestClient\\Generated\" -s=true -d=true"
6+
"commandLineArgs": "https://localhost:50741/graphql/ -c=\"SampleNullableClient\" -n=\"Linq2GraphQL.TestClientNullable\" -o=\"C:\\Code\\Linq2GraphQL.Client\\test\\Linq2GraphQL.TestClientNullable\\Generated\" -s=true -d=true -nu=true"
77
}
88
}
99
}

0 commit comments

Comments
 (0)