Copyright | (c) 2015 Athan Clark |
---|---|
License | BSD-3 |
Maintainer | athan.clark@gmail.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell2010 |
Import this module to use all the application end-point combinators:
import Network.Wai.Middleware.ContentType import qualified Data.Text as T import qualified Lucid as L myApp :: MonadIO m => MiddlewareT myApp = fileExtsToMiddleware $ do text "Text!" json ("Json!" :: T.Text) lucid (L.toHtmlRaw ("Html!" :: T.Text))
If you would like to embed a MiddlewareT
as a response to
a particular supported file extension / content type, import
Network.Wai.Middleware.ContentType.Middleware:
import Network.Wai.Middleware.ContentType import Network.Wai.Middleware.ContentType.Middleware myApp = fileExtsToMiddleware $ middleware Css myMiddleware
- fileExtsToMiddleware :: MonadIO m => FileExtListenerT (MiddlewareT m) m () -> MiddlewareT m
- lookupResponse :: MonadIO m => Maybe AcceptHeader -> Maybe FileExt -> FileExtListenerT (MiddlewareT m) m () -> m (Maybe (MiddlewareT m))
- possibleFileExts :: Maybe FileExt -> AcceptHeader -> [FileExt]
- allFileExts :: [FileExt]
- type AcceptHeader = ByteString
- module Network.Wai.Middleware.ContentType.Types
- module Network.Wai.Middleware.ContentType.Blaze
- module Network.Wai.Middleware.ContentType.Builder
- module Network.Wai.Middleware.ContentType.ByteString
- module Network.Wai.Middleware.ContentType.Cassius
- module Network.Wai.Middleware.ContentType.Clay
- module Network.Wai.Middleware.ContentType.Json
- module Network.Wai.Middleware.ContentType.Julius
- module Network.Wai.Middleware.ContentType.Lucid
- module Network.Wai.Middleware.ContentType.Lucius
- module Network.Wai.Middleware.ContentType.Text
- module Network.Wai.Middleware.ContentType.Pandoc
Utilities
fileExtsToMiddleware :: MonadIO m => FileExtListenerT (MiddlewareT m) m () -> MiddlewareT m Source
Turn a map of content types to middlewares, into a middleware.
lookupResponse :: MonadIO m => Maybe AcceptHeader -> Maybe FileExt -> FileExtListenerT (MiddlewareT m) m () -> m (Maybe (MiddlewareT m)) Source
Given an HTTP Accept
header and a content type to base lookups off of, and
a map of responses, find a response.
possibleFileExts :: Maybe FileExt -> AcceptHeader -> [FileExt] Source
Takes a file extension and an Accept
header, and returns the other
file types handleable, in order of prescedence.
allFileExts :: [FileExt] Source
All file extensions, in the order of preference
type AcceptHeader = ByteString Source