module Hack2.Contrib.Middleware.UTF8Body (utf8_body) where import Prelude () import Air.Env import Air.Extra (u2b) import Air.Heavy (unescape_xml) import Hack2 import qualified Data.ByteString.Char8 as B import Hack2.Contrib.Utils (as_string) import Data.Maybe (fromMaybe) utf8_body :: Middleware utf8_body app = \env -> do r <- app env let raw_body = r.body return r {body = raw_body.as_string (unescape_xml > fromMaybe def > u2b)}