module Cardano.CLI.Json.Encode
( encodeJson
, encodeYaml
)
where
import Data.Aeson qualified as Aeson
import Data.Aeson.Encode.Pretty qualified as Aeson
import Data.ByteString.Lazy qualified as LBS
import Data.Yaml.Pretty qualified as Yaml
encodeJson :: Aeson.ToJSON a => a -> LBS.ByteString
encodeJson :: forall a. ToJSON a => a -> ByteString
encodeJson =
Config -> a -> ByteString
forall a. ToJSON a => Config -> a -> ByteString
Aeson.encodePretty' Config
jsonConfig
encodeYaml :: Aeson.ToJSON a => a -> LBS.ByteString
encodeYaml :: forall a. ToJSON a => a -> ByteString
encodeYaml =
StrictByteString -> ByteString
LBS.fromStrict (StrictByteString -> ByteString)
-> (a -> StrictByteString) -> a -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Config -> a -> StrictByteString
forall a. ToJSON a => Config -> a -> StrictByteString
Yaml.encodePretty Config
yamlConfig
jsonConfig :: Aeson.Config
jsonConfig :: Config
jsonConfig =
Config
Aeson.defConfig
{ Aeson.confCompare = compare
}
yamlConfig :: Yaml.Config
yamlConfig :: Config
yamlConfig =
(Text -> Text -> Ordering) -> Config -> Config
Yaml.setConfCompare Text -> Text -> Ordering
forall a. Ord a => a -> a -> Ordering
compare Config
Yaml.defConfig