hw-polysemy-0.3.1.0: core/HaskellWorks/Polysemy/Data/Aeson.hs
module HaskellWorks.Polysemy.Data.Aeson
( aesonDecode,
) where
import qualified Data.Aeson as Aeson
import qualified HaskellWorks.Polysemy.Data.ByteString.Lazy as LBS
import HaskellWorks.Polysemy.Prelude
import Polysemy
import Polysemy.Error
import Data.Aeson (FromJSON)
import HaskellWorks.Polysemy.Error.Types.JsonDecodeError
aesonDecode :: forall a r. ()
=> Member (Error JsonDecodeError) r
=> FromJSON a
=> LBS.ByteString
-> Sem r a
aesonDecode bs =
fromEither (Aeson.eitherDecode bs)
& mapError newJsonDecodeError