on master help sign in
Merge pull request #697 from mschristiansen/rewrite-root

Add rewriteRoot middleware

commiteb298a8bafbe1934333188334160623f463f13d0 authorMichael Snoyman <michael@snoyman.com> dateWed 11 Jul 2018, 14:26 (8 years ago) parentb29e27078c0c06
3 files changed+21−1
wai-extra/ChangeLog.md+4 wai-extra/Network/Wai/Middleware/Rewrite.hs+16 wai-extra/wai-extra.cabal+1−1
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+
15## 3.0.22.1
26
37* 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
2727 -- ** Recommended functions
2828 , rewriteWithQueries
2929 , rewritePureWithQueries
30+ , rewriteRoot
3031
3132 -- ** Deprecated
3233 , rewrite
@@ -263,6 +264,21 @@ rewritePureWithQueries :: (PathsAndQueries -> H.RequestHeaders -> PathsAndQuerie
263264 -> Middleware
264265rewritePureWithQueries convert app req = app $ rewriteRequestPure convert req
265266
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+
266282--------------------------------------------------
267283-- * Modifying 'Request's directly
268284--------------------------------------------------
wai-extra/wai-extra.cabal+1−1
@@ -1,5 +1,5 @@
11Name: wai-extra
2−Version: 3.0.22.1
2+Version: 3.0.23.0
33Synopsis: Provides some basic WAI handlers and middleware.
44description:
55 Provides basic WAI handler and middleware functionality: