{-# LANGUAGE
OverloadedStrings
#-}
module Network.Wai.Middleware.ContentType.Text where
import Network.Wai.Middleware.ContentType.Types (FileExtListenerT, tell', FileExt (Text), ResponseVia (..))
import Network.HTTP.Types (status200, Status, ResponseHeaders)
import Network.Wai (Response, responseBuilder)
import qualified Data.Text.Lazy as LT
import qualified Data.Text.Lazy.Encoding as LT
import qualified Data.HashMap.Lazy as HM
text :: Monad m =>
LT.Text
-> FileExtListenerT urlbase m ()
text :: forall (m :: * -> *) urlbase.
Monad m =>
Text -> FileExtListenerT urlbase m ()
text Text
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
Text forall a b. (a -> b) -> a -> b
$
forall a.
a
-> Status
-> ResponseHeaders
-> (a -> Status -> ResponseHeaders -> Response)
-> ResponseVia
ResponseVia
Text
i
Status
status200
[(HeaderName
"Content-Type", ByteString
"text/plain")]
Text -> Status -> ResponseHeaders -> Response
textOnly
{-# INLINEABLE text #-}
textOnly :: LT.Text -> Status -> ResponseHeaders -> Response
textOnly :: Text -> Status -> ResponseHeaders -> Response
textOnly Text
t Status
s ResponseHeaders
hs =
Status -> ResponseHeaders -> Builder -> Response
responseBuilder Status
s ResponseHeaders
hs (Text -> Builder
LT.encodeUtf8Builder Text
t)