{-# LANGUAGE
OverloadedStrings
#-}
module Network.Wai.Middleware.ContentType.Clay where
import Network.Wai.Middleware.ContentType.Types as CT
import Network.Wai.Middleware.ContentType.Text (textOnly)
import Network.HTTP.Types (status200, Status, ResponseHeaders)
import Network.Wai (Response)
import Clay.Render (Config, renderWith)
import Clay.Stylesheet (Css, App)
import qualified Data.HashMap.Lazy as HM
clay :: Monad m =>
Config -> [App] -> Css
-> FileExtListenerT m ()
clay c as i =
tell' $ HM.singleton CT.Css $
ResponseVia
(c,as,i)
status200
[("Content-Type","text/css")]
(\(c',as',i') -> clayOnly c' as' i')
{-# INLINEABLE clay #-}
clayOnly :: Config -> [App] -> Css -> Status -> ResponseHeaders -> Response
clayOnly c as css =
textOnly (renderWith c as css)