Files
loop/src/AesonHelp.hs
T
2024-12-24 12:50:00 +00:00

25 lines
650 B
Haskell

module AesonHelp where
import Data.Aeson (ToJSON)
import qualified Data.Aeson.Encode.Pretty as AEP
import Data.ByteString.Lazy.Char8 (unpack)
import Data.Maybe
getPretty :: ToJSON a => a -> [String]
getPretty = lines . unpack . AEP.encodePretty' (AEP.Config (AEP.Spaces 2) compare AEP.Generic False)
prettyShort :: ToJSON a => a -> [String]
prettyShort = mapMaybe cullPretty . getPretty
cullPretty :: String -> Maybe String
cullPretty s = case dropWhile (== ' ') s of
']' : _ -> Nothing
'[' : _ -> Nothing
'}' : _ -> Nothing
'{' : _ -> Nothing
_ -> Just $ filter f s
where
f '_' = False
f '"' = False
f _ = True