on master help sign in
Merge pull request #697 from mschristiansen/rewrite-root
eb298a8Michael Snoyman
wai-extra/ChangeLog.md+4
@@ -1,3 +1,7 @@
1+## 3.0.23.0
2+
3+* Add rewriteRoot middleware [#697](https://github.com/yesodweb/wai/pull/697).
4+
1## 3.0.22.1
5## 3.0.22.1
2
6
3* Drop dependency on blaze-builder, requiring streaming-commons >= 0.2
7* Drop dependency on blaze-builder, requiring streaming-commons >= 0.2
wai-extra/Network/Wai/Middleware/Rewrite.hs+16
@@ -27,6 +27,7 @@ module Network.Wai.Middleware.Rewrite
27 -- ** Recommended functions
27 -- ** Recommended functions
28 , rewriteWithQueries
28 , rewriteWithQueries
29 , rewritePureWithQueries
29 , rewritePureWithQueries
30+ , rewriteRoot
30
31
31 -- ** Deprecated
32 -- ** Deprecated
32 , rewrite
33 , rewrite
@@ -263,6 +264,21 @@ rewritePureWithQueries :: (PathsAndQueries -> H.RequestHeaders -> PathsAndQuerie
263 -> Middleware
264 -> Middleware
264rewritePureWithQueries convert app req = app $ rewriteRequestPure convert req
265rewritePureWithQueries convert app req = app $ rewriteRequestPure convert req
265
266
267+-- | Rewrite root requests (/) to a specified path
268+--
269+-- Note that /index.html/ in example below should already be a valid route.
270+--
271+-- @
272+-- rewriteRoot "index.html" :: Middleware
273+-- @
274+--
275+-- @since 3.0.23.0
276+rewriteRoot :: Text -> Middleware
277+rewriteRoot root = rewritePureWithQueries onlyRoot
278+ where
279+ onlyRoot ([], q) _ = ([root], q)
280+ onlyRoot paths _ = paths
281+
266--------------------------------------------------
282--------------------------------------------------
267-- * Modifying 'Request's directly
283-- * Modifying 'Request's directly
268--------------------------------------------------
284--------------------------------------------------
wai-extra/wai-extra.cabal+1−1
@@ -1,5 +1,5 @@
1Name: wai-extra
1Name: wai-extra
2−Version: 3.0.22.1
2+Version: 3.0.23.0
3Synopsis: Provides some basic WAI handlers and middleware.
3Synopsis: Provides some basic WAI handlers and middleware.
4description:
4description:
5 Provides basic WAI handler and middleware functionality:
5 Provides basic WAI handler and middleware functionality: