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