From cd3b1ce6ee90e9c5f2ba191d3c891952a913bcad Mon Sep 17 00:00:00 2001 From: valber Date: Sun, 17 Mar 2024 22:37:26 +0100 Subject: [PATCH] .AspNetCore: using static logger serializer options and fixed typo: "Identation" -> Indentation --- .../Giraffe/HttpHandlers.fs | 18 +++++++----------- .../Serialization/JSON.fs | 9 +++++++++ .../StartupExtensions.fs | 1 - 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/FSharp.Data.GraphQL.Server.AspNetCore/Giraffe/HttpHandlers.fs b/src/FSharp.Data.GraphQL.Server.AspNetCore/Giraffe/HttpHandlers.fs index 0ceafc718..6d42334cd 100644 --- a/src/FSharp.Data.GraphQL.Server.AspNetCore/Giraffe/HttpHandlers.fs +++ b/src/FSharp.Data.GraphQL.Server.AspNetCore/Giraffe/HttpHandlers.fs @@ -20,9 +20,6 @@ open FSharp.Data.GraphQL.Server.AspNetCore type HttpHandler = HttpFunc -> HttpContext -> HttpFuncResult module HttpHandlers = - - let [] internal IdentedOptionsName = "Idented" - let rec private moduleType = getModuleType <@ moduleType @> let ofTaskIResult ctx (taskRes: Task) : HttpFuncResult = task { @@ -45,9 +42,8 @@ module HttpHandlers = let toResponse { DocumentId = documentId; Content = content; Metadata = metadata } = - let serializeIdented value = - let jsonSerializerOptions = options.Get(IdentedOptionsName).SerializerOptions - JsonSerializer.Serialize(value, jsonSerializerOptions) + let serializeIndented value = + JsonSerializer.Serialize(value, Json.loggerSerializerOptions) match content with | Direct(data, errs) -> @@ -58,7 +54,7 @@ module HttpHandlers = ) if logger.IsEnabled LogLevel.Trace then - logger.LogTrace($"GraphQL response data:{Environment.NewLine}:{{data}}", serializeIdented data) + logger.LogTrace($"GraphQL response data:{Environment.NewLine}:{{data}}", serializeIndented data) GQLResponse.Direct(documentId, data, errs) | Deferred(data, errs, deferred) -> @@ -80,7 +76,7 @@ module HttpHandlers = if logger.IsEnabled LogLevel.Trace then logger.LogTrace( $"GraphQL deferred data:{Environment.NewLine}{{data}}", - serializeIdented data + serializeIndented data ) | DeferredErrors(null, errors, path) -> logger.LogDebug( @@ -100,7 +96,7 @@ module HttpHandlers = logger.LogTrace( $"GraphQL deferred errors:{Environment.NewLine}{{errors}}{Environment.NewLine}GraphQL deferred data:{Environment.NewLine}{{data}}", errors, - serializeIdented data + serializeIndented data )) GQLResponse.Direct(documentId, data, errs) @@ -120,7 +116,7 @@ module HttpHandlers = if logger.IsEnabled LogLevel.Trace then logger.LogTrace( $"GraphQL subscription data:{Environment.NewLine}{{data}}", - serializeIdented data + serializeIndented data ) | SubscriptionErrors(null, errors) -> logger.LogDebug("Produced GraphQL subscription errors") @@ -134,7 +130,7 @@ module HttpHandlers = logger.LogTrace( $"GraphQL subscription errors:{Environment.NewLine}{{errors}}{Environment.NewLine}GraphQL deferred data:{Environment.NewLine}{{data}}", errors, - serializeIdented data + serializeIndented data )) GQLResponse.Stream documentId diff --git a/src/FSharp.Data.GraphQL.Server.AspNetCore/Serialization/JSON.fs b/src/FSharp.Data.GraphQL.Server.AspNetCore/Serialization/JSON.fs index 2d949f2ac..0f5330c70 100644 --- a/src/FSharp.Data.GraphQL.Server.AspNetCore/Serialization/JSON.fs +++ b/src/FSharp.Data.GraphQL.Server.AspNetCore/Serialization/JSON.fs @@ -36,6 +36,15 @@ let defaultJsonFSharpOptions = UnionTag, allowOverride = true) +let loggerSerializerOptions = + let options = JsonSerializerOptions() + options.PropertyNamingPolicy <- JsonNamingPolicy.CamelCase + options.PropertyNameCaseInsensitive <- true + let converters = options.Converters + converters.Add (new JsonStringEnumConverter ()) + defaultJsonFSharpOptions.AddToJsonSerializerOptions options + options + let configureDefaultSerializerOptions = configureSerializerOptions defaultJsonFSharpOptions let configureDefaultWSSerializerOptions = configureWSSerializerOptions defaultJsonFSharpOptions diff --git a/src/FSharp.Data.GraphQL.Server.AspNetCore/StartupExtensions.fs b/src/FSharp.Data.GraphQL.Server.AspNetCore/StartupExtensions.fs index d7f73db41..4bd531f82 100644 --- a/src/FSharp.Data.GraphQL.Server.AspNetCore/StartupExtensions.fs +++ b/src/FSharp.Data.GraphQL.Server.AspNetCore/StartupExtensions.fs @@ -57,7 +57,6 @@ module ServiceCollectionExtensions = member this.Create name = options } ) - .Configure>(Giraffe.HttpHandlers.IdentedOptionsName, (fun o -> o.SerializerOptions.WriteIndented <- true)) .AddSingleton>(fun sp -> { new IOptionsFactory with member this.Create name =