summaryrefslogtreecommitdiffstats
path: root/src/Data/Aeson/Extends.hs
blob: 2905e60c3da4a91be01566395b41843b92e09e26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
module Data.Aeson.Extends (module Data.Aeson.Extends) where

import Data.Aeson as Data.Aeson.Extends
import Data.ByteString.Lazy qualified as LBS
import Data.Text.Encoding.Error qualified as TE
import Data.Text.Lazy.Encoding qualified as LT


eitherDecodeLenient' :: FromJSON a => LBS.ByteString -> Either String a
eitherDecodeLenient' s =
    either (const $ eitherDecode' $ lenientReencode s) id (eitherDecode' s)
  where
    lenientReencode = LT.encodeUtf8 . LT.decodeUtf8With TE.lenientDecode