{-# 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 -- * Lifted Combinators clay :: Monad m => Config -> [App] -> Css -> FileExtListenerT urlbase 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 #-} -- * Data Only clayOnly :: Config -> [App] -> Css -> Status -> ResponseHeaders -> Response clayOnly c as css = textOnly (renderWith c as css)