Skip to content
Snippets Groups Projects
Verified Commit 420c0c59 authored by jan.hamal.dvorak's avatar jan.hamal.dvorak
Browse files

Revert "Remove wrapActions and wrapRoutes"

Weird or not weird, they were needed.

This reverts commit f34d2ce3.
parent d658442d
No related branches found
No related tags found
No related merge requests found
...@@ -16,7 +16,9 @@ module Hikaru.Dispatch ...@@ -16,7 +16,9 @@ module Hikaru.Dispatch
-- ** Routes -- ** Routes
, route , route
, wrapRoute , wrapRoute
, wrapRoutes
, wrapAction , wrapAction
, wrapActions
-- ** Middleware -- ** Middleware
, middleware , middleware
...@@ -170,25 +172,42 @@ where ...@@ -170,25 +172,42 @@ where
in env { envRoutes = envRoutes env' <> envRoutes env } 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. -- 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: -- This can come in handy e.g. to tune cache control:
-- --
-- @ -- @
-- app :: Application -- app :: Application
-- app = 'dispatch' runAction $ do -- app = 'dispatch' runAction $ do
-- 'wrapAction' ('Hikaru.Action.defaultHeader' hCacheControl "no-cache" >>) $ do -- 'wrapRoutes' ('Hikaru.Action.defaultHeader' hCacheControl "no-cache" >>)
-- 'route' $ getRootR \<$ 'get' --
-- 'route' $ getHelloR \<$ 'get' <* 'seg' "hello" \<*\> 'arg' -- 'route' $ getRootR \<$ 'get'
-- 'route' $ getHelloR \<$ 'get' <* 'seg' "hello" \<*\> 'arg'
-- @ -- @
-- --
wrapAction :: (r -> r) -> Dispatch r Nested a -> Dispatch r l () wrapActions :: (r -> r) -> Dispatch r l ()
wrapAction wrapper disp = Dispatch do wrapActions wrapper = Dispatch do
modify \env -> modify \env -> env { envActionW = envActionW env . wrapper }
let env' = execState (unDispatch disp)
(env { envActionW = envActionW env . wrapper })
in env { envRoutes = envRoutes env' <> envRoutes env }
-- | -- |
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment