| Copyright | Michael Snoyman |
|---|---|
| License | BSD3 |
| Maintainer | Michael Snoyman <michael@snoyman.com> |
| Stability | Unstable |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| 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.