hack-2009.4.23: src/Hack/Contrib/ContentSize.hs
module Hack.Contrib.ContentSize where
import Hack
import Hack.Utils
import Prelude hiding ((.), (^), (>))
import MPS
import Hack.Constants
import Data.Maybe (isNothing)
content_size :: MiddleWare
content_size app = \env -> do
response <- app env
if should_size response
then response.set_header "Content-Length" (response.body.bytesize.show) .return
else response .return
where
should_size response =
[ response.header "Content-Length" .isNothing
, response.header "Transfer-Encoding" .isNothing
, not $ status_with_no_entity_body.has(response.status)
] .and