module Patrol.Extra.Aeson where import qualified Data.Aeson as Aeson import qualified Data.Aeson.Key as Key import qualified Data.Aeson.Types as Aeson import qualified Data.Text as Text intoObject :: [Aeson.Pair] -> Aeson.Value intoObject :: [Pair] -> Value intoObject = [Pair] -> Value Aeson.object forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. (a -> Bool) -> [a] -> [a] filter (Bool -> Bool not forall b c a. (b -> c) -> (a -> b) -> a -> c . Value -> Bool isEmpty forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. (a, b) -> b snd) isEmpty :: Aeson.Value -> Bool isEmpty :: Value -> Bool isEmpty Value value = case Value value of Aeson.Array Array array -> forall (t :: * -> *) a. Foldable t => t a -> Bool null Array array Value Aeson.Null -> Bool True Aeson.Object Object object -> forall (t :: * -> *) a. Foldable t => t a -> Bool null Object object Aeson.String Text string -> Text -> Bool Text.null Text string Value _ -> Bool False pair :: (Aeson.ToJSON a) => String -> a -> Aeson.Pair pair :: forall a. ToJSON a => String -> a -> Pair pair = forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv (Aeson..=) forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> Key Key.fromString