module Network.Wai.Middleware.ContentType.Lucius where
import Network.Wai.Middleware.ContentType.Types
import Network.Wai.Middleware.ContentType.Builder
import Network.HTTP.Types (RequestHeaders, Status, status200)
import Network.Wai.Trans
import Text.Lucius
import qualified Data.Text.Lazy.Encoding as LT
import Control.Monad.IO.Class (MonadIO)
lucius :: MonadIO m => Css -> FileExtListenerT (MiddlewareT m) m ()
lucius = luciusStatusHeaders status200 [("Content-Type", "text/css")]
luciusWith :: MonadIO m =>
(Response -> Response) -> Css
-> FileExtListenerT (MiddlewareT m) m ()
luciusWith f = luciusStatusHeadersWith f status200 [("Content-Type", "text/css")]
luciusStatus :: MonadIO m =>
Status -> Css
-> FileExtListenerT (MiddlewareT m) m ()
luciusStatus s = luciusStatusHeaders s [("Content-Type", "text/css")]
luciusStatusWith :: MonadIO m =>
(Response -> Response) -> Status -> Css
-> FileExtListenerT (MiddlewareT m) m ()
luciusStatusWith f s = luciusStatusHeadersWith f s [("Content-Type", "text/css")]
luciusHeaders :: MonadIO m =>
RequestHeaders -> Css
-> FileExtListenerT (MiddlewareT m) m ()
luciusHeaders = luciusStatusHeaders status200
luciusHeadersWith :: MonadIO m =>
(Response -> Response) -> RequestHeaders -> Css
-> FileExtListenerT (MiddlewareT m) m ()
luciusHeadersWith f = luciusStatusHeadersWith f status200
luciusStatusHeaders :: MonadIO m =>
Status -> RequestHeaders -> Css
-> FileExtListenerT (MiddlewareT m) m ()
luciusStatusHeaders = luciusStatusHeadersWith id
luciusStatusHeadersWith :: MonadIO m =>
(Response -> Response) -> Status -> RequestHeaders -> Css
-> FileExtListenerT (MiddlewareT m) m ()
luciusStatusHeadersWith f s hs =
builderStatusWith f Css s hs . LT.encodeUtf8Builder . renderCss
luciusOnly :: Css -> Response
luciusOnly = luciusOnlyStatusHeaders status200 [("Content-Type", "text/css")]
luciusOnlyStatus :: Status -> Css -> Response
luciusOnlyStatus s = luciusOnlyStatusHeaders s [("Content-Type", "text/css")]
luciusOnlyHeaders :: RequestHeaders -> Css -> Response
luciusOnlyHeaders = luciusOnlyStatusHeaders status200
luciusOnlyStatusHeaders :: Status -> RequestHeaders -> Css -> Response
luciusOnlyStatusHeaders s hs = builderOnlyStatus s hs . LT.encodeUtf8Builder . renderCss