diff --git a/lib/Hikaru/Dispatch.hs b/lib/Hikaru/Dispatch.hs index f749b55ca0f48a5b66b2bd935a27207a91cf79d0..75dcb432d1ab9003ad484032f4c9fbbaaf9f7815 100644 --- a/lib/Hikaru/Dispatch.hs +++ b/lib/Hikaru/Dispatch.hs @@ -16,9 +16,7 @@ module Hikaru.Dispatch -- ** Routes , route , wrapRoute - , wrapRoutes , wrapAction - , wrapActions -- ** Middleware , middleware @@ -172,42 +170,25 @@ where in env { envRoutes = envRoutes env' <> envRoutes env } - -- | - -- Wrap all /following/ routes with a route transformer. - -- - wrapRoutes :: (Route r -> Route r) -> Dispatch r l () - wrapRoutes wrapper = Dispatch do - modify \env -> env { envRouteW = envRouteW env . wrapper } - - -- | -- Wrap all nested actions with an action transformer. -- - wrapAction :: (r -> r) -> Dispatch r Nested a -> Dispatch r l () - wrapAction wrapper disp = Dispatch do - modify \env -> - let env' = execState (unDispatch disp) - (env { envActionW = envActionW env . wrapper }) - in env { envRoutes = envRoutes env' <> envRoutes env } - - - -- | - -- Wrap all /following/ actions with an action transformer. - -- -- This can come in handy e.g. to tune cache control: -- -- @ -- app :: Application -- app = 'dispatch' runAction $ do - -- 'wrapRoutes' ('Hikaru.Action.defaultHeader' hCacheControl "no-cache" >>) - -- - -- 'route' $ getRootR \<$ 'get' - -- 'route' $ getHelloR \<$ 'get' <* 'seg' "hello" \<*\> 'arg' + -- 'wrapAction' ('Hikaru.Action.defaultHeader' hCacheControl "no-cache" >>) $ do + -- 'route' $ getRootR \<$ 'get' + -- 'route' $ getHelloR \<$ 'get' <* 'seg' "hello" \<*\> 'arg' -- @ -- - wrapActions :: (r -> r) -> Dispatch r l () - wrapActions wrapper = Dispatch do - modify \env -> env { envActionW = envActionW env . wrapper } + wrapAction :: (r -> r) -> Dispatch r Nested a -> Dispatch r l () + wrapAction wrapper disp = Dispatch do + modify \env -> + let env' = execState (unDispatch disp) + (env { envActionW = envActionW env . wrapper }) + in env { envRoutes = envRoutes env' <> envRoutes env } -- |