module Hack.Contrib.Middleware.UTF8Body (utf8_body) where

import MPS.Env
import Prelude ()
import MPS.Heavy
import Hack
import Data.ByteString.Lazy.Char8 (unpack)
import Data.ByteString.Lazy.UTF8 (fromString)

utf8_body :: Middleware
utf8_body app = \env -> do
  r <- app env
  let raw_body = r.body
  return r {body = raw_body.unpack.unescape_xml.fromString}