From a340de9da84372a1331cab2a1d1e4d7a7e4422e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Domeradzki?= Date: Fri, 8 Aug 2025 01:02:50 +0200 Subject: [PATCH] Top commit of all time This is how you avoid doing breaking changes, kids --- ArchiSteamFarm/Helpers/Json/JsonUtilities.cs | 24 +++++++++++++------- ArchiSteamFarm/IPC/ArchiKestrel.cs | 4 ++-- ArchiSteamFarm/Web/WebBrowser.cs | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/ArchiSteamFarm/Helpers/Json/JsonUtilities.cs b/ArchiSteamFarm/Helpers/Json/JsonUtilities.cs index d5750a537..2fe9a6b38 100644 --- a/ArchiSteamFarm/Helpers/Json/JsonUtilities.cs +++ b/ArchiSteamFarm/Helpers/Json/JsonUtilities.cs @@ -39,33 +39,41 @@ namespace ArchiSteamFarm.Helpers.Json; public static class JsonUtilities { [PublicAPI] - public static readonly JsonSerializerOptions DefaultJsonSerialierOptions = CreateDefaultJsonSerializerOptions(); + public static readonly JsonSerializerOptions DefaultJsonSerializerOptions = CreateDefaultJsonSerializerOptions(); [PublicAPI] - public static readonly JsonSerializerOptions IndentedJsonSerialierOptions = CreateDefaultJsonSerializerOptions(true); + public static readonly JsonSerializerOptions IndentedJsonSerializerOptions = CreateDefaultJsonSerializerOptions(true); + + // TODO: Remove me in the future + [Obsolete($"Use {nameof(DefaultJsonSerializerOptions)} instead of this typo, thanks")] + public static JsonSerializerOptions DefaultJsonSerialierOptions => DefaultJsonSerializerOptions; + + // TODO: Remove me in the future + [Obsolete($"Use {nameof(IndentedJsonSerializerOptions)} instead of this typo, thanks")] + public static JsonSerializerOptions IndentedJsonSerialierOptions => IndentedJsonSerializerOptions; [PublicAPI] [UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2026:RequiresUnreferencedCode", Justification = "We don't care about trimmed assemblies, as we need it to work only with the known (used) ones")] public static JsonElement ToJsonElement(this T obj) where T : notnull { ArgumentNullException.ThrowIfNull(obj); - return JsonSerializer.SerializeToElement(obj, DefaultJsonSerialierOptions); + return JsonSerializer.SerializeToElement(obj, DefaultJsonSerializerOptions); } [PublicAPI] [UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2026:RequiresUnreferencedCode", Justification = "We don't care about trimmed assemblies, as we need it to work only with the known (used) ones")] - public static T? ToJsonObject(this JsonElement jsonElement) => jsonElement.Deserialize(DefaultJsonSerialierOptions); + public static T? ToJsonObject(this JsonElement jsonElement) => jsonElement.Deserialize(DefaultJsonSerializerOptions); [PublicAPI] [UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2026:RequiresUnreferencedCode", Justification = "We don't care about trimmed assemblies, as we need it to work only with the known (used) ones")] - public static T? ToJsonObject(this JsonNode jsonNode) => jsonNode.Deserialize(DefaultJsonSerialierOptions); + public static T? ToJsonObject(this JsonNode jsonNode) => jsonNode.Deserialize(DefaultJsonSerializerOptions); [PublicAPI] [UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2026:RequiresUnreferencedCode", Justification = "We don't care about trimmed assemblies, as we need it to work only with the known (used) ones")] public static async ValueTask ToJsonObject(this Stream stream, CancellationToken cancellationToken = default) { ArgumentNullException.ThrowIfNull(stream); - return await JsonSerializer.DeserializeAsync(stream, DefaultJsonSerialierOptions, cancellationToken).ConfigureAwait(false); + return await JsonSerializer.DeserializeAsync(stream, DefaultJsonSerializerOptions, cancellationToken).ConfigureAwait(false); } [PublicAPI] @@ -73,12 +81,12 @@ public static class JsonUtilities { public static T? ToJsonObject([StringSyntax(StringSyntaxAttribute.Json)] this string json) { ArgumentException.ThrowIfNullOrEmpty(json); - return JsonSerializer.Deserialize(json, DefaultJsonSerialierOptions); + return JsonSerializer.Deserialize(json, DefaultJsonSerializerOptions); } [PublicAPI] [UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2026:RequiresUnreferencedCode", Justification = "We don't care about trimmed assemblies, as we need it to work only with the known (used) ones")] - public static string ToJsonText(this T obj, bool writeIndented = false) => JsonSerializer.Serialize(obj, writeIndented ? IndentedJsonSerialierOptions : DefaultJsonSerialierOptions); + public static string ToJsonText(this T obj, bool writeIndented = false) => JsonSerializer.Serialize(obj, writeIndented ? IndentedJsonSerializerOptions : DefaultJsonSerializerOptions); private static void ApplyCustomModifiers(JsonTypeInfo jsonTypeInfo) { ArgumentNullException.ThrowIfNull(jsonTypeInfo); diff --git a/ArchiSteamFarm/IPC/ArchiKestrel.cs b/ArchiSteamFarm/IPC/ArchiKestrel.cs index f4358c2fd..93e5efee5 100644 --- a/ArchiSteamFarm/IPC/ArchiKestrel.cs +++ b/ArchiSteamFarm/IPC/ArchiKestrel.cs @@ -356,7 +356,7 @@ internal static class ArchiKestrel { } services.ConfigureHttpJsonOptions(static options => { - JsonSerializerOptions jsonSerializerOptions = Debugging.IsUserDebugging ? JsonUtilities.IndentedJsonSerialierOptions : JsonUtilities.DefaultJsonSerialierOptions; + JsonSerializerOptions jsonSerializerOptions = Debugging.IsUserDebugging ? JsonUtilities.IndentedJsonSerializerOptions : JsonUtilities.DefaultJsonSerializerOptions; options.SerializerOptions.PropertyNamingPolicy = jsonSerializerOptions.PropertyNamingPolicy; options.SerializerOptions.TypeInfoResolver = jsonSerializerOptions.TypeInfoResolver; @@ -381,7 +381,7 @@ internal static class ArchiKestrel { // Modify default JSON options mvc.AddJsonOptions(static options => { - JsonSerializerOptions jsonSerializerOptions = Debugging.IsUserDebugging ? JsonUtilities.IndentedJsonSerialierOptions : JsonUtilities.DefaultJsonSerialierOptions; + JsonSerializerOptions jsonSerializerOptions = Debugging.IsUserDebugging ? JsonUtilities.IndentedJsonSerializerOptions : JsonUtilities.DefaultJsonSerializerOptions; options.JsonSerializerOptions.PropertyNamingPolicy = jsonSerializerOptions.PropertyNamingPolicy; options.JsonSerializerOptions.TypeInfoResolver = jsonSerializerOptions.TypeInfoResolver; diff --git a/ArchiSteamFarm/Web/WebBrowser.cs b/ArchiSteamFarm/Web/WebBrowser.cs index 32af5793d..01e90a21f 100644 --- a/ArchiSteamFarm/Web/WebBrowser.cs +++ b/ArchiSteamFarm/Web/WebBrowser.cs @@ -753,7 +753,7 @@ public sealed class WebBrowser : IDisposable { break; default: - requestMessage.Content = JsonContent.Create(data, options: JsonUtilities.DefaultJsonSerialierOptions); + requestMessage.Content = JsonContent.Create(data, options: JsonUtilities.DefaultJsonSerializerOptions); break; }