Skip to content

Commit 515804f

Browse files
Put JsonSerializerOptions as a config (#229)
1 parent dc56940 commit 515804f

3 files changed

Lines changed: 8 additions & 6 deletions

File tree

src/Typesense/Setup/Config.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Text.Json;
34

45
namespace Typesense.Setup;
56

67
public record Config
78
{
89
public IReadOnlyCollection<Node> Nodes { get; set; }
910
public string ApiKey { get; set; }
11+
public JsonSerializerOptions? JsonSerializerOptions { get; set; }
1012

1113
[Obsolete("Use multi-arity constructor instead.")]
1214
public Config()
@@ -20,4 +22,4 @@ public Config(IReadOnlyCollection<Node> nodes, string apiKey)
2022
Nodes = nodes;
2123
ApiKey = apiKey;
2224
}
23-
}
25+
}

src/Typesense/Setup/TypesenseExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ public static IServiceCollection AddTypesenseClient(this IServiceCollection serv
3838
return httpClientBuilder.Services
3939
.Configure(config);
4040
}
41-
}
41+
}

src/Typesense/TypesenseClient.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class TypesenseClient : ITypesenseClient
3434
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
3535
};
3636

37-
public TypesenseClient(IOptions<Config> config, HttpClient httpClient, JsonSerializerOptions? customJsonSerializerOptions = null)
37+
public TypesenseClient(IOptions<Config> config, HttpClient httpClient)
3838
{
3939
ArgumentNullException.ThrowIfNull(config);
4040
ArgumentNullException.ThrowIfNull(httpClient);
@@ -43,14 +43,14 @@ public TypesenseClient(IOptions<Config> config, HttpClient httpClient, JsonSeria
4343
httpClient.BaseAddress = new Uri($"{node.Protocol}://{node.Host}:{node.Port}");
4444
httpClient.DefaultRequestHeaders.Add("X-TYPESENSE-API-KEY", config.Value.ApiKey);
4545
_httpClient = httpClient;
46-
if (customJsonSerializerOptions is not null)
46+
if (config.Value.JsonSerializerOptions is not null)
4747
{
48-
_jsonNameCaseInsensitiveTrue = new JsonSerializerOptions(customJsonSerializerOptions)
48+
_jsonNameCaseInsensitiveTrue = new JsonSerializerOptions(config.Value.JsonSerializerOptions)
4949
{
5050
PropertyNameCaseInsensitive = true
5151
};
5252

53-
_jsonOptionsCamelCaseIgnoreWritingNull = new JsonSerializerOptions(customJsonSerializerOptions)
53+
_jsonOptionsCamelCaseIgnoreWritingNull = new JsonSerializerOptions(config.Value.JsonSerializerOptions)
5454
{
5555
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
5656
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull

0 commit comments

Comments
 (0)