| Copyright | Michael Snoyman | 
|---|---|
| License | BSD3 | 
| Maintainer | Michael Snoyman <michael@snoyman.com> | 
| Stability | Unstable | 
| Portability | portable | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Network.Wai.Middleware.Select
Contents
Description
Dynamically choose between Middlewares
It's useful when you want some Middlewares applied selectively.
Example: do not log health check calls:
import Network.Wai
import Network.Wai.Middleware.HealthCheckEndpoint
import Network.Wai.Middleware.RequestLogger
app' :: Application
app' =
  selectMiddleware (selectMiddlewareExceptRawPathInfo "/_healthz" logStdout)
    $ healthCheck appSince: 3.1.10
Synopsis
- newtype MiddlewareSelection = MiddlewareSelection {}
 - selectMiddleware :: MiddlewareSelection -> Middleware
 - selectMiddlewareOn :: (Request -> Bool) -> Middleware -> MiddlewareSelection
 - selectMiddlewareOnRawPathInfo :: ByteString -> Middleware -> MiddlewareSelection
 - selectMiddlewareExceptRawPathInfo :: ByteString -> Middleware -> MiddlewareSelection
 - passthroughMiddleware :: Middleware
 
Middleware selection
newtype MiddlewareSelection Source #
Relevant Middleware for a given Request.
Constructors
| MiddlewareSelection | |
Fields  | |
Instances
| Monoid MiddlewareSelection Source # | |
Defined in Network.Wai.Middleware.Select Methods mempty :: MiddlewareSelection # mappend :: MiddlewareSelection -> MiddlewareSelection -> MiddlewareSelection #  | |
| Semigroup MiddlewareSelection Source # | |
Defined in Network.Wai.Middleware.Select Methods (<>) :: MiddlewareSelection -> MiddlewareSelection -> MiddlewareSelection # sconcat :: NonEmpty MiddlewareSelection -> MiddlewareSelection # stimes :: Integral b => b -> MiddlewareSelection -> MiddlewareSelection #  | |
selectMiddleware :: MiddlewareSelection -> Middleware Source #
Create the Middleware dynamically applying MiddlewareSelection.
Helpers
selectMiddlewareOn :: (Request -> Bool) -> Middleware -> MiddlewareSelection Source #
Use the Middleware when the predicate holds.
selectMiddlewareOnRawPathInfo :: ByteString -> Middleware -> MiddlewareSelection Source #
Use the Middleware for the given rawPathInfo.
selectMiddlewareExceptRawPathInfo :: ByteString -> Middleware -> MiddlewareSelection Source #
Use the Middleware for all rawPathInfo except then given one.