wai-transformers 0.0.4 → 0.0.5
raw patch · 2 files changed
+28/−3 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Network.Wai.Trans: hoistApplicationT :: (Monad m, Monad n) => (forall a. m a -> n a) -> (forall a. n a -> m a) -> ApplicationT m -> ApplicationT n
+ Network.Wai.Trans: hoistMiddlewareT :: (Monad m, Monad n) => (forall a. m a -> n a) -> (forall a. n a -> m a) -> MiddlewareT m -> MiddlewareT n
+ Network.Wai.Trans: readingRequest :: Monad m => (Request -> m ()) -> MiddlewareT m
- Network.Wai.Trans: catchMiddlewareT :: (MonadIO m, MonadCatch m, Exception e) => MiddlewareT m -> (e -> MiddlewareT m) -> MiddlewareT m
+ Network.Wai.Trans: catchMiddlewareT :: (MonadCatch m, Exception e) => MiddlewareT m -> (e -> MiddlewareT m) -> MiddlewareT m
Files
- src/Network/Wai/Trans.hs +27/−2
- wai-transformers.cabal +1/−1
src/Network/Wai/Trans.hs view
@@ -27,9 +27,13 @@ , liftMiddleware , runApplicationT , runMiddlewareT+ , hoistApplicationT+ , hoistMiddlewareT , -- * Exception catching catchApplicationT , catchMiddlewareT+ , -- * General Purpose+ readingRequest ) where @@ -55,17 +59,38 @@ runMiddlewareT :: MonadIO m => (forall a. m a -> IO a) -> MiddlewareT m -> Middleware runMiddlewareT run mid app = runApplicationT run (mid (liftApplication run app)) +hoistApplicationT :: ( Monad m+ , Monad n+ ) => (forall a. m a -> n a)+ -> (forall a. n a -> m a)+ -> ApplicationT m+ -> ApplicationT n+hoistApplicationT to from app req resp =+ to $ app req (from . resp) +hoistMiddlewareT :: ( Monad m+ , Monad n+ ) => (forall a. m a -> n a)+ -> (forall a. n a -> m a)+ -> MiddlewareT m+ -> MiddlewareT n+hoistMiddlewareT to from mid =+ hoistApplicationT to from . mid . hoistApplicationT from to++ catchApplicationT :: ( MonadCatch m , Exception e ) => ApplicationT m -> (e -> ApplicationT m) -> ApplicationT m catchApplicationT x f req respond = (x req respond) `catch` (\e -> f e req respond) -catchMiddlewareT :: ( MonadIO m- , MonadCatch m+catchMiddlewareT :: ( MonadCatch m , Exception e ) => MiddlewareT m -> (e -> MiddlewareT m) -> MiddlewareT m catchMiddlewareT x f app = (x app) `catchApplicationT` (\e -> f e app) +readingRequest :: Monad m => (Request -> m ()) -> MiddlewareT m+readingRequest f app req resp = do+ f req+ app req resp
wai-transformers.cabal view
@@ -1,5 +1,5 @@ Name: wai-transformers-Version: 0.0.4+Version: 0.0.5 Author: Athan Clark <athan.clark@gmail.com> Maintainer: Athan Clark <athan.clark@gmail.com> License: BSD3