From d9c4f9c5dffa204daa025a4c7b631e9cddf28c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Dang=C3=A5rden?= Date: Fri, 28 Mar 2025 11:39:19 +0100 Subject: [PATCH] Made Include Deprecated opt-in --- .../Components/GenerateClient.razor | 5 +- .../Components/GenerateClient.razor.cs | 18 +++- src/Linq2GraphQL.Client/GraphClient.cs | 18 +++- src/Linq2GraphQL.Generator/ClientGenerator.cs | 35 ++++---- src/Linq2GraphQL.Generator/General.cs | 87 +++++++++++++++++++ src/Linq2GraphQL.Generator/Program.cs | 12 ++- .../Properties/launchSettings.json | 2 +- .../Templates/Client/ClientTemplate.cs | 70 ++++++++------- .../Templates/Client/ClientTemplate.tt | 2 +- .../Templates/Client/ClientTemplate.tt.cs | 17 +--- .../Generated/Client/SampleClient.cs | 4 +- test/Linq2GraphQL.TestClient/ReadMe.txt | 2 +- 12 files changed, 190 insertions(+), 82 deletions(-) diff --git a/docs/Linq2GraphQL.Docs/Components/GenerateClient.razor b/docs/Linq2GraphQL.Docs/Components/GenerateClient.razor index 15c3e16f..5c254d78 100644 --- a/docs/Linq2GraphQL.Docs/Components/GenerateClient.razor +++ b/docs/Linq2GraphQL.Docs/Components/GenerateClient.razor @@ -31,7 +31,10 @@ - + + + + diff --git a/docs/Linq2GraphQL.Docs/Components/GenerateClient.razor.cs b/docs/Linq2GraphQL.Docs/Components/GenerateClient.razor.cs index 7fc35d75..fbcdf47f 100644 --- a/docs/Linq2GraphQL.Docs/Components/GenerateClient.razor.cs +++ b/docs/Linq2GraphQL.Docs/Components/GenerateClient.razor.cs @@ -52,8 +52,18 @@ protected override void OnInitialized() private async Task CopyIntrospection() { + string query; + if (options.IncludeDeprecated) + { + query = Generator.General.IntrospectionQueryIncludeDeprecated; + } + else + { + query = Generator.General.IntrospectionQuery; + } + - await tablerService.CopyToClipboard(Generator.General.IntrospectionQuery); + await tablerService.CopyToClipboard(query); await toastService.AddToastAsync(new ToastModel { Title = "Copy Complete", @@ -92,7 +102,7 @@ private async Task GenerateClientJson() try { isLoading = true; - var generator = new Generator.ClientGenerator(options.Namespace, options.ClientName, options.IncludeSubscriptions, EnumGeneratorStrategy.FailIfMissing, options.Nullable); + var generator = new Generator.ClientGenerator(options.Namespace, options.ClientName, options.IncludeSubscriptions, EnumGeneratorStrategy.FailIfMissing, options.Nullable, options.IncludeDeprecated); var entries = generator.Generate(options.Schema); await SaveEntriesAsync(entries); @@ -114,7 +124,7 @@ private async Task GenerateClientAsync() try { isLoading = true; - var generator = new ClientGenerator(options.Namespace, options.ClientName, options.IncludeSubscriptions, options.EnumGeneratorStrategy, options.Nullable); + var generator = new ClientGenerator(options.Namespace, options.ClientName, options.IncludeSubscriptions, options.EnumGeneratorStrategy, options.Nullable, options.IncludeDeprecated); var entries = await generator.GenerateAsync(new Uri(options.Url), options.Token); await SaveEntriesAsync(entries); } @@ -138,7 +148,7 @@ public class GenerateOptions public bool Nullable { get; set; } public string Url { get; set; } public string Token { get; set; } - + public bool IncludeDeprecated { get; set; } public EnumGeneratorStrategy EnumGeneratorStrategy { get; set; } public string Schema { get; set; } diff --git a/src/Linq2GraphQL.Client/GraphClient.cs b/src/Linq2GraphQL.Client/GraphClient.cs index 1dfff83b..d3e0e294 100644 --- a/src/Linq2GraphQL.Client/GraphClient.cs +++ b/src/Linq2GraphQL.Client/GraphClient.cs @@ -12,10 +12,12 @@ public class GraphClient { private readonly IMemoryCache cache; private readonly IOptions options; - - public GraphClient(HttpClient httpClient, IOptions options, IServiceProvider provider) + private readonly bool includeDeprecated; + + public GraphClient(HttpClient httpClient, IOptions options, IServiceProvider provider, bool includeDeprecated = false) { this.options = options; + this.includeDeprecated = includeDeprecated; if (options.Value.UseSafeMode) { cache = provider.GetRequiredService(); @@ -73,7 +75,17 @@ public async Task GetSchemaForSafeModeAsync() { var executor = new QueryExecutor(this); - var graphRequest = new GraphQLRequest { Query = Helpers.SchemaQueryIncludeDeprecated }; + string query; + if (includeDeprecated) + { + query = Helpers.SchemaQueryIncludeDeprecated; + } + else + { + query = Helpers.SchemaQuery; + } + + var graphRequest = new GraphQLRequest { Query = query }; return await executor.ExecuteRequestAsync("__schema", graphRequest); }); } diff --git a/src/Linq2GraphQL.Generator/ClientGenerator.cs b/src/Linq2GraphQL.Generator/ClientGenerator.cs index b619f422..804e282b 100644 --- a/src/Linq2GraphQL.Generator/ClientGenerator.cs +++ b/src/Linq2GraphQL.Generator/ClientGenerator.cs @@ -10,25 +10,11 @@ namespace Linq2GraphQL.Generator { - public class ClientGenerator + public class ClientGenerator(string namespaceName, string clientName, bool includeSubscriptions, + EnumGeneratorStrategy enumGeneratorStrategy, bool nullable, bool includeDeprecated) { - private readonly string namespaceName; - private readonly string clientName; - private readonly bool includeSubscriptions; - private readonly EnumGeneratorStrategy enumGeneratorStrategy; - private readonly bool nullable; private readonly List entries = new(); - public ClientGenerator(string namespaceName, string clientName, bool includeSubscriptions, - EnumGeneratorStrategy enumGeneratorStrategy, bool nullable) - { - this.namespaceName = namespaceName; - this.clientName = clientName; - this.includeSubscriptions = includeSubscriptions; - this.enumGeneratorStrategy = enumGeneratorStrategy; - this.nullable = nullable; - } - private void AddFile(string directory, string fileName, string content) { var infoText = $@"//--------------------------------------------------------------------- @@ -55,7 +41,18 @@ public async Task> GenerateAsync(Uri uri, string authToken = nul } httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("Linq2GraphQL", "1.0")); - using var response = await httpClient.PostAsJsonAsync(uri, new { query = General.IntrospectionQuery }); + + string query = ""; + if (includeDeprecated) + { + query = General.IntrospectionQueryIncludeDeprecated; + } + else + { + query = General.IntrospectionQuery; + } + + using var response = await httpClient.PostAsJsonAsync(uri, new { query = query }); if (!response.IsSuccessStatusCode) { throw new Exception( @@ -72,7 +69,7 @@ public List Generate(string schemaJson) { entries.Clear(); - GeneratorSettings.Current = new GeneratorSettings { Nullable = this.nullable }; + GeneratorSettings.Current = new GeneratorSettings { Nullable = nullable }; var rootSchema = JsonSerializer.Deserialize(schemaJson, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); @@ -175,7 +172,7 @@ public List Generate(string schemaJson) Console.WriteLine("Generate Client..."); - var templateText = new ClientTemplate(namespaceName, clientName, queryType, mutationType, subscriptionType) + var templateText = new ClientTemplate(namespaceName, clientName, queryType, mutationType, subscriptionType, includeDeprecated) .TransformText(); var fileName = clientName + ".cs"; AddFile(clientDirName, fileName, templateText); diff --git a/src/Linq2GraphQL.Generator/General.cs b/src/Linq2GraphQL.Generator/General.cs index 0f944806..e9f596ab 100644 --- a/src/Linq2GraphQL.Generator/General.cs +++ b/src/Linq2GraphQL.Generator/General.cs @@ -36,6 +36,93 @@ fragment BaseType on __Type { ...OfTypeReqursive } +query Into { + __schema { + types { + ...BaseType + + interfaces { + name + } + enumValues { + name + description + isDeprecated + deprecationReason + } + + fields { + name + description + isDeprecated + deprecationReason + type { + ...BaseType + } + + args { + name + description + type { + ...BaseType + } + } + } + inputFields { + name + description + isDeprecated + deprecationReason + type { + ...BaseType + } + } + } + queryType { + name + } + mutationType { + name + } + subscriptionType { + name + } + } +} +"; + + public const string IntrospectionQueryIncludeDeprecated = @"fragment OfTypeFields on __Type { + name + kind +} + +fragment OfTypeReqursive on __Type { + ...OfTypeFields + ofType { + ...OfTypeFields + ofType { + ...OfTypeFields + ofType { + ...OfTypeFields + ofType { + ...OfTypeFields + ofType { + ...OfTypeFields + } + } + } + } + } +} + +fragment BaseType on __Type { + name + description + kind + + ...OfTypeReqursive +} + query Into { __schema { types { diff --git a/src/Linq2GraphQL.Generator/Program.cs b/src/Linq2GraphQL.Generator/Program.cs index f0a2a1af..0a6871b1 100644 --- a/src/Linq2GraphQL.Generator/Program.cs +++ b/src/Linq2GraphQL.Generator/Program.cs @@ -23,6 +23,8 @@ private static async Task Main(string[] args) var nullable = new Option(new[] { "--nullable", "-nu" }, "Nullable client"); + var includeDeprecated = new Option(new[] { "--deprecated", "-d" }, "Include Deprecated as Obsolete"); + var rootCommand = new RootCommand("Generate GraphQL client") { uriArgument, @@ -32,7 +34,8 @@ private static async Task Main(string[] args) authToken, includeSubscriptions, enumStrategy, - nullable + nullable, + includeDeprecated }; rootCommand.SetHandler(async context => @@ -46,9 +49,10 @@ private static async Task Main(string[] args) var includeSubscriptionsValue = result.GetValueForOption(includeSubscriptions); var enumStrategyValue = result.GetValueForOption(enumStrategy); var nullableValue = result.GetValueForOption(nullable); + var deprecatedValue = result.GetValueForOption(includeDeprecated); await GenerateClientAsync(uriValue, outputFolderValue, namespaceValue, clientNameValue, - includeSubscriptionsValue, authTokenValue, enumStrategyValue, nullableValue); + includeSubscriptionsValue, authTokenValue, enumStrategyValue, nullableValue, deprecatedValue); } ); @@ -58,13 +62,13 @@ await GenerateClientAsync(uriValue, outputFolderValue, namespaceValue, clientNam } private static async Task GenerateClientAsync(Uri uri, string outputFolder, string namespaceName, string name, - bool includeSubscriptions, string authToken, string enumStrategy, bool nullable) + bool includeSubscriptions, string authToken, string enumStrategy, bool nullable, bool includeDeprecated) { var enumStrat = enumStrategy != null && enumStrategy.Equals("AddUnknownOption", StringComparison.InvariantCultureIgnoreCase) ? EnumGeneratorStrategy.AddUnknownOption : EnumGeneratorStrategy.FailIfMissing; - var generator = new ClientGenerator(namespaceName, name, includeSubscriptions, enumStrat, nullable); + var generator = new ClientGenerator(namespaceName, name, includeSubscriptions, enumStrat, nullable, includeDeprecated); var entries = await generator.GenerateAsync(uri, authToken); var outputPath = Path.GetFullPath(outputFolder, Environment.CurrentDirectory); diff --git a/src/Linq2GraphQL.Generator/Properties/launchSettings.json b/src/Linq2GraphQL.Generator/Properties/launchSettings.json index 60320b12..f1dfb782 100644 --- a/src/Linq2GraphQL.Generator/Properties/launchSettings.json +++ b/src/Linq2GraphQL.Generator/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "Linq2GraphQL.Generator": { "commandName": "Project", - "commandLineArgs": "https://localhost:7184/graphql/ -c=\"SampleClient\" -n=\"Linq2GraphQL.TestClient\" -o=\"C:\\Code\\Github\\Linq2GraphQL.Client\\test\\Linq2GraphQL.TestClient\\Generated\" -s=true" + "commandLineArgs": "https://localhost:7184/graphql/ -c=\"SampleClient\" -n=\"Linq2GraphQL.TestClient\" -o=\"C:\\Code\\Github\\Linq2GraphQL.Client\\test\\Linq2GraphQL.TestClient\\Generated\" -s=true -d=true" } } } \ No newline at end of file diff --git a/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.cs b/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.cs index 34442f50..d177b0f2 100644 --- a/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.cs +++ b/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.cs @@ -1,7 +1,7 @@ // ------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version: 16.0.0.0 +// Runtime Version: 17.0.0.0 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -15,8 +15,8 @@ namespace Linq2GraphQL.Generator.Templates.Client /// Class to produce the template output /// - #line 1 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "16.0.0.0")] + #line 1 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")] public partial class ClientTemplate : ClientTemplateBase { #line hidden @@ -25,152 +25,162 @@ public partial class ClientTemplate : ClientTemplateBase /// public virtual string TransformText() { - this.Write("using Linq2GraphQL.Client;\r\nusing Microsoft.Extensions.Caching.Memory;\r\nusing Microsoft.Extensions.DependencyInjection;\r\nusing Microsoft.Extensions.Options;\r\n\r\nnamespace "); + this.Write("using Linq2GraphQL.Client;\r\nusing Microsoft.Extensions.Caching.Memory;\r\nusing Mic" + + "rosoft.Extensions.DependencyInjection;\r\nusing Microsoft.Extensions.Options;\r\n\r\nn" + + "amespace "); - #line 8 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 8 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(namespaceName)); #line default #line hidden this.Write(";\r\n\r\npublic class "); - #line 10 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 10 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(name)); #line default #line hidden - this.Write("\r\n{\r\n public "); + this.Write("\r\n{ \r\n public "); - #line 12 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 12 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(name)); #line default #line hidden this.Write("(HttpClient httpClient, [FromKeyedServices(\""); - #line 12 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 12 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(name)); #line default #line hidden - this.Write("\")]IOptions options, IServiceProvider provider)\r\n {\r\n var client = new GraphClient(httpClient, options, provider);\r\n"); + this.Write("\")]IOptions options, IServiceProvider provider)\r\n {\r\n " + + " var client = new GraphClient(httpClient, options, provider, "); - #line 15 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 14 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(includeDeprecated.ToString().ToLower())); + + #line default + #line hidden + this.Write(");\r\n"); + + #line 15 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" if (includeQuery) { #line default #line hidden this.Write(" Query = new "); - #line 16 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 16 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(GetMehodName(queryType))); #line default #line hidden this.Write("(client);\r\n"); - #line 17 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 17 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" } #line default #line hidden - #line 18 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 18 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" if (includeMutation) { #line default #line hidden this.Write(" Mutation = new "); - #line 19 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 19 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(GetMehodName(mutationType))); #line default #line hidden this.Write("(client);\r\n"); - #line 20 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 20 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" } #line default #line hidden - #line 21 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 21 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" if (includeSubscriptions) { #line default #line hidden this.Write(" Subscription = new "); - #line 22 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 22 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(GetMehodName(subscriptionType))); #line default #line hidden this.Write("(client); \r\n"); - #line 23 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 23 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" } #line default #line hidden this.Write(" }\r\n\r\n"); - #line 26 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 26 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" if (includeQuery) { #line default #line hidden this.Write(" public "); - #line 27 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 27 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(GetMehodName(queryType))); #line default #line hidden this.Write(" Query { get; private set; }\r\n"); - #line 28 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 28 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" } #line default #line hidden - #line 29 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 29 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" if (includeMutation) { #line default #line hidden this.Write(" public "); - #line 30 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 30 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(GetMehodName(mutationType))); #line default #line hidden this.Write(" Mutation { get; private set; }\r\n"); - #line 31 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 31 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" } #line default #line hidden - #line 32 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 32 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" if (includeSubscriptions) { #line default #line hidden this.Write(" public "); - #line 33 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 33 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(GetMehodName(subscriptionType))); #line default #line hidden this.Write(" Subscription { get; private set; }\r\n"); - #line 34 "C:\Code\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" + #line 34 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Client\ClientTemplate.tt" } #line default @@ -186,7 +196,7 @@ public virtual string TransformText() /// /// Base class for this transformation /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")] public class ClientTemplateBase { #region Fields @@ -201,7 +211,7 @@ public class ClientTemplateBase /// /// The string builder that generation-time code is using to assemble generated output /// - protected System.Text.StringBuilder GenerationEnvironment + public System.Text.StringBuilder GenerationEnvironment { get { diff --git a/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.tt b/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.tt index edfa576d..f509badd 100644 --- a/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.tt +++ b/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.tt @@ -11,7 +11,7 @@ public class <#= name #> { public <#= name #>(HttpClient httpClient, [FromKeyedServices("<#= name #>")]IOptions options, IServiceProvider provider) { - var client = new GraphClient(httpClient, options, provider); + var client = new GraphClient(httpClient, options, provider, <#= includeDeprecated.ToString().ToLower() #>); <# if (includeQuery) { #> Query = new <#= GetMehodName(queryType) #>(client); <# }#> diff --git a/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.tt.cs b/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.tt.cs index 16a698b3..60a822c0 100644 --- a/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.tt.cs +++ b/src/Linq2GraphQL.Generator/Templates/Client/ClientTemplate.tt.cs @@ -1,25 +1,10 @@ namespace Linq2GraphQL.Generator.Templates.Client; -public partial class ClientTemplate +public partial class ClientTemplate(string namespaceName, string name, GraphqlType queryType, GraphqlType mutationType, GraphqlType subscriptionType, bool includeDeprecated) { - private readonly string name; - private readonly GraphqlType queryType; - private readonly GraphqlType mutationType; - private readonly GraphqlType subscriptionType; - private bool includeQuery => queryType != null; private bool includeMutation => mutationType != null; private bool includeSubscriptions => subscriptionType != null; - private readonly string namespaceName; - - public ClientTemplate(string namespaceName, string name, GraphqlType queryType, GraphqlType mutationType, GraphqlType subscriptionType) - { - this.namespaceName = namespaceName; - this.name = name; - this.queryType = queryType; - this.mutationType = mutationType; - this.subscriptionType = subscriptionType; - } private string GetMehodName(GraphqlType graphqlType) { diff --git a/test/Linq2GraphQL.TestClient/Generated/Client/SampleClient.cs b/test/Linq2GraphQL.TestClient/Generated/Client/SampleClient.cs index b07b0bec..ff453cb4 100644 --- a/test/Linq2GraphQL.TestClient/Generated/Client/SampleClient.cs +++ b/test/Linq2GraphQL.TestClient/Generated/Client/SampleClient.cs @@ -13,10 +13,10 @@ namespace Linq2GraphQL.TestClient; public class SampleClient -{ +{ public SampleClient(HttpClient httpClient, [FromKeyedServices("SampleClient")]IOptions options, IServiceProvider provider) { - var client = new GraphClient(httpClient, options, provider); + var client = new GraphClient(httpClient, options, provider, true); Query = new QueryMethods(client); Mutation = new MutationMethods(client); Subscription = new SubscriptionMethods(client); diff --git a/test/Linq2GraphQL.TestClient/ReadMe.txt b/test/Linq2GraphQL.TestClient/ReadMe.txt index 8f5d9191..07e77ccb 100644 --- a/test/Linq2GraphQL.TestClient/ReadMe.txt +++ b/test/Linq2GraphQL.TestClient/ReadMe.txt @@ -7,4 +7,4 @@ dotnet tool update Linq2GraphQL.Generator -g --prerelease Linq2GraphQL https://localhost:7184/graphql/ -c="SampleClient" -n="Linq2GraphQL.TestClient" -o="Generated" -s=true *Generate local -https://localhost:7184/graphql/ -c="SampleClient" -n="Linq2GraphQL.TestClient" -o="C:\Code\Github\Linq2GraphQL.Client\test\Linq2GraphQL.TestClient\Generated" -s=true +https://localhost:7184/graphql/ -c="SampleClient" -n="Linq2GraphQL.TestClient" -o="C:\Code\Github\Linq2GraphQL.Client\test\Linq2GraphQL.TestClient\Generated" -s=true -d=true