diff options
Diffstat (limited to 'Omni/Ava/Web.hs')
| -rw-r--r-- | Omni/Ava/Web.hs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Omni/Ava/Web.hs b/Omni/Ava/Web.hs index c1eaa48..25c3352 100644 --- a/Omni/Ava/Web.hs +++ b/Omni/Ava/Web.hs @@ -15,6 +15,7 @@ -- : dep lucid -- : dep http-types -- : dep aeson +-- : dep aeson-pretty -- : dep text -- : dep bytestring -- : dep sqlite-simple @@ -28,7 +29,10 @@ where import Alpha import qualified Data.Aeson as Aeson +import qualified Data.Aeson.Encode.Pretty as AesonPretty +import qualified Data.ByteString.Lazy as BL import qualified Data.Text as Text +import qualified Data.Text.Encoding as TE import qualified Database.SQLite.Simple as SQL import qualified Lucid import qualified Network.Wai.Handler.Warp as Warp @@ -107,7 +111,7 @@ instance Lucid.ToHtml TracePage where Lucid.button_ [Lucid.class_ "copy-btn", Lucid.data_ "target" "input-content"] "Copy" Lucid.div_ [Lucid.class_ "section-content", Lucid.id_ "input-content"] <| Lucid.pre_ - <| Lucid.toHtml (Trace.trcInput rec) + <| Lucid.toHtml (prettyJson (Trace.trcInput rec)) Lucid.div_ [Lucid.class_ "section", Lucid.id_ "output-section"] <| do Lucid.div_ [Lucid.class_ "section-header"] <| do @@ -115,7 +119,7 @@ instance Lucid.ToHtml TracePage where Lucid.button_ [Lucid.class_ "copy-btn", Lucid.data_ "target" "output-content"] "Copy" Lucid.div_ [Lucid.class_ "section-content", Lucid.id_ "output-content"] <| Lucid.pre_ - <| Lucid.toHtml (Trace.trcOutput rec) + <| Lucid.toHtml (prettyJson (Trace.trcOutput rec)) Lucid.p_ [Lucid.class_ "footer"] <| Lucid.toHtml ("Trace ID: " <> Trace.trcId rec) @@ -166,3 +170,9 @@ traceScript = " });", "});" ] + +prettyJson :: Text -> Text +prettyJson t = + case Aeson.decode (BL.fromStrict (TE.encodeUtf8 t)) :: Maybe Aeson.Value of + Nothing -> t + Just v -> TE.decodeUtf8 (BL.toStrict (AesonPretty.encodePretty v)) |
