Merge pull request #449 from sp-tarkov/fix-converters

Remove extra method on Func, add options to converters
This commit is contained in:
Chomp
2025-07-04 22:10:41 +01:00
committed by GitHub
3 changed files with 6 additions and 9 deletions
@@ -18,10 +18,7 @@ namespace SPTarkov.Server.Core.Utils.Json.Converters;
public class BaseInteractionRequestDataConverter : JsonConverter<BaseInteractionRequestData>
{
private static Dictionary<
string,
Func<string, JsonSerializerOptions, BaseInteractionRequestData?>
> _modHandlers = [];
private static Dictionary<string, Func<string, BaseInteractionRequestData?>> _modHandlers = [];
public override BaseInteractionRequestData? Read(
ref Utf8JsonReader reader,
@@ -250,7 +247,7 @@ public class BaseInteractionRequestDataConverter : JsonConverter<BaseInteraction
default:
if (_modHandlers.TryGetValue(action, out var handler))
{
return handler(jsonText, options);
return handler(jsonText);
}
throw new Exception(
$"Unhandled action type {action}, make sure the BaseInteractionRequestDataConverter has the deserialization for this action handled."
@@ -260,7 +257,7 @@ public class BaseInteractionRequestDataConverter : JsonConverter<BaseInteraction
public static void RegisterModDataHandler(
string action,
Func<string, JsonSerializerOptions, BaseInteractionRequestData?> handler
Func<string, BaseInteractionRequestData?> handler
)
{
if (!_modHandlers.TryAdd(action, handler))
@@ -22,9 +22,9 @@ public class BaseSptLoggerReferenceConverter : JsonConverter<BaseSptLoggerRefere
switch (typeElement.GetString())
{
case "File":
return jsonDocument.Deserialize<FileSptLoggerReference>();
return jsonDocument.Deserialize<FileSptLoggerReference>(options);
case "Console":
return jsonDocument.Deserialize<ConsoleSptLoggerReference>();
return jsonDocument.Deserialize<ConsoleSptLoggerReference>(options);
default:
throw new Exception(
$"The logger type '{typeElement.GetString()}' does not exist."
@@ -39,7 +39,7 @@ public class StringToObjectFactoryConverter : JsonConverterFactory
using (var jsonDocument = JsonDocument.ParseValue(ref reader))
{
var jsonText = jsonDocument.RootElement.GetRawText();
return JsonSerializer.Deserialize<T>(jsonText);
return JsonSerializer.Deserialize<T>(jsonText, options);
}
}