module Network.Wai.Middleware.ContentType.Cassius where
import Network.Wai.Middleware.ContentType.Types as FE
import Network.Wai.Middleware.ContentType.ByteString
import Network.HTTP.Types (RequestHeaders, Status, status200)
import Network.Wai.Trans
import Text.Cassius
import qualified Data.Text.Lazy.Encoding as LT
import Control.Monad.IO.Class (MonadIO)
cassius :: MonadIO m => Css -> FileExtListenerT (MiddlewareT m) m ()
cassius = cassiusStatusHeaders status200 [("Content-Type", "cassius/css")]
cassiusWith :: MonadIO m =>
(Response -> Response) -> Css
-> FileExtListenerT (MiddlewareT m) m ()
cassiusWith f = cassiusStatusHeadersWith f status200 [("Content-Type", "cassius/css")]
cassiusStatus :: MonadIO m =>
Status -> Css
-> FileExtListenerT (MiddlewareT m) m ()
cassiusStatus s = cassiusStatusHeaders s [("Content-Type", "cassius/css")]
cassiusStatusWith :: MonadIO m =>
(Response -> Response) -> Status -> Css
-> FileExtListenerT (MiddlewareT m) m ()
cassiusStatusWith f s = cassiusStatusHeadersWith f s [("Content-Type", "cassius/css")]
cassiusHeaders :: MonadIO m =>
RequestHeaders -> Css
-> FileExtListenerT (MiddlewareT m) m ()
cassiusHeaders = cassiusStatusHeaders status200
cassiusHeadersWith :: MonadIO m =>
(Response -> Response) -> RequestHeaders -> Css
-> FileExtListenerT (MiddlewareT m) m ()
cassiusHeadersWith f = cassiusStatusHeadersWith f status200
cassiusStatusHeaders :: MonadIO m =>
Status -> RequestHeaders -> Css
-> FileExtListenerT (MiddlewareT m) m ()
cassiusStatusHeaders = cassiusStatusHeadersWith id
cassiusStatusHeadersWith :: MonadIO m =>
(Response -> Response) -> Status -> RequestHeaders -> Css
-> FileExtListenerT (MiddlewareT m) m ()
cassiusStatusHeadersWith f s hs i =
bytestringStatusWith f Css s hs $ LT.encodeUtf8 $ renderCss i
cassiusOnly :: Css -> Response
cassiusOnly = cassiusOnlyStatusHeaders status200 [("Content-Type", "cassius/css")]
cassiusOnlyStatus :: Status -> Css -> Response
cassiusOnlyStatus s = cassiusOnlyStatusHeaders s [("Content-Type", "cassius/css")]
cassiusOnlyHeaders :: RequestHeaders -> Css -> Response
cassiusOnlyHeaders = cassiusOnlyStatusHeaders status200
cassiusOnlyStatusHeaders :: Status -> RequestHeaders -> Css -> Response
cassiusOnlyStatusHeaders s hs i = bytestringOnlyStatus s hs $ LT.encodeUtf8 $ renderCss i