{-# LANGUAGE
OverloadedStrings
#-}
module Network.Wai.Middleware.ContentType.Lucius 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 Text.Lucius (Css, renderCss)
import qualified Data.HashMap.Lazy as HM
lucius :: Monad m =>
Css
-> FileExtListenerT urlbase m ()
lucius :: forall (m :: * -> *) urlbase.
Monad m =>
Css -> FileExtListenerT urlbase m ()
lucius Css
i =
forall w (m :: * -> *). (Monoid w, MonadState w m) => w -> m ()
tell' forall a b. (a -> b) -> a -> b
$ forall k v. Hashable k => k -> v -> HashMap k v
HM.singleton FileExt
CT.Css forall a b. (a -> b) -> a -> b
$
forall a.
a
-> Status
-> ResponseHeaders
-> (a -> Status -> ResponseHeaders -> Response)
-> ResponseVia
ResponseVia
Css
i
Status
status200
[(HeaderName
"Content-Type",ByteString
"text/css")]
Css -> Status -> ResponseHeaders -> Response
luciusOnly
{-# INLINEABLE lucius #-}
luciusOnly :: Css -> Status -> ResponseHeaders -> Response
luciusOnly :: Css -> Status -> ResponseHeaders -> Response
luciusOnly Css
c =
Text -> Status -> ResponseHeaders -> Response
textOnly (Css -> Text
renderCss Css
c)