{-# 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 urlbase m ()
clay :: forall (m :: * -> *) urlbase.
Monad m =>
Config -> [App] -> Css -> FileExtListenerT urlbase m ()
clay Config
c [App]
as 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
(Config
c,[App]
as,Css
i)
Status
status200
[(HeaderName
"Content-Type",ByteString
"text/css")]
(\(Config
c',[App]
as',Css
i') -> Config -> [App] -> Css -> Status -> ResponseHeaders -> Response
clayOnly Config
c' [App]
as' Css
i')
{-# INLINEABLE clay #-}
clayOnly :: Config -> [App] -> Css -> Status -> ResponseHeaders -> Response
clayOnly :: Config -> [App] -> Css -> Status -> ResponseHeaders -> Response
clayOnly Config
c [App]
as Css
css =
Text -> Status -> ResponseHeaders -> Response
textOnly (Config -> [App] -> Css -> Text
renderWith Config
c [App]
as Css
css)