packages feed

waiz 0.0.1.0 → 0.0.2.0

raw patch · 3 files changed

+47/−16 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Network.Wai.Optics.Response: applicationResponse :: Setter' Application Response
+ Network.Wai.Optics.Response: getResponseHeaders :: GetResponse s => Getter s ResponseHeaders
+ Network.Wai.Optics.Response: getResponseStatus :: GetResponse s => Getter s Status
- Network.Wai.Optics.Response: responseHeaders :: Getter Response ResponseHeaders
+ Network.Wai.Optics.Response: responseHeaders :: HasResponse s => Lens' s ResponseHeaders
- Network.Wai.Optics.Response: responseStatus :: Getter Response Status
+ Network.Wai.Optics.Response: responseStatus :: HasResponse s => Lens' s Status

Files

changelog view
@@ -1,3 +1,11 @@+0.0.2.0++* Upgrade responseStatus and responseHeaders from Getter to Lens' on+  HasResponse, using mapResponseStatus / mapResponseHeaders for the setter+* Add getResponseStatus and getResponseHeaders getters to GetResponse+* Add applicationResponse :: Setter' Application Response, using+  modifyResponse under the hood+ 0.0.1.0  * Initial release
src/Network/Wai/Optics/Response.hs view
@@ -30,18 +30,17 @@   ReviewResponseRaw (..),   AsResponseRaw (..), -  -- * Getters-  responseStatus,-  responseHeaders,+  -- * Setters+  applicationResponse, ) where -import Control.Category (id)-import Control.Lens (Getter, Lens', Prism', Review, lens, prism', review, to, unto, view)+import Control.Category (id, (.))+import Control.Lens (Getter, Lens', Prism', Review, Setter', lens, prism', review, sets, to, unto, view) import Data.ByteString (ByteString) import Data.ByteString.Builder (Builder) import Data.Maybe (Maybe (..)) import Network.HTTP.Types (ResponseHeaders, Status)-import Network.Wai (Response, StreamingBody)+import Network.Wai (Application, Response, StreamingBody) import qualified Network.Wai as Wai import Network.Wai.Internal (   FilePart,@@ -53,10 +52,22 @@ class GetResponse s where   -- | A 'Getter' to obtain a 'Response'.   getResponse :: Getter s Response+  -- | A 'Getter' on the 'Status'.+  getResponseStatus :: Getter s Status+  getResponseStatus = getResponse . getResponseStatus+  {-# INLINE getResponseStatus #-}+  -- | A 'Getter' on the 'ResponseHeaders'.+  getResponseHeaders :: Getter s ResponseHeaders+  getResponseHeaders = getResponse . getResponseHeaders+  {-# INLINE getResponseHeaders #-}  instance GetResponse Response where   getResponse = id   {-# INLINE getResponse #-}+  getResponseStatus = to Wai.responseStatus+  {-# INLINE getResponseStatus #-}+  getResponseHeaders = to Wai.responseHeaders+  {-# INLINE getResponseHeaders #-}  -- | Type class for values with a lens into a 'Response'. class (GetResponse s) => HasResponse s where@@ -70,9 +81,23 @@   response = lens (view getResponse) (flip setResponse)   {-# INLINE response #-} +  -- | A 'Lens'' on the 'Status'.+  responseStatus :: Lens' s Status+  responseStatus = response . responseStatus+  {-# INLINE responseStatus #-}++  -- | A 'Lens'' on the 'ResponseHeaders'.+  responseHeaders :: Lens' s ResponseHeaders+  responseHeaders = response . responseHeaders+  {-# INLINE responseHeaders #-}+ instance HasResponse Response where   setResponse = const   {-# INLINE setResponse #-}+  responseStatus = lens Wai.responseStatus (\r s -> Wai.mapResponseStatus (const s) r)+  {-# INLINE responseStatus #-}+  responseHeaders = lens Wai.responseHeaders (\r h -> Wai.mapResponseHeaders (const h) r)+  {-# INLINE responseHeaders #-}  -- | Type class for values that can be constructed from a 'Response'. class ReviewResponse t where@@ -99,15 +124,13 @@   matchResponse = Just   {-# INLINE matchResponse #-} --- | A 'Getter' on the 'Status' of a 'Response'.-responseStatus :: Getter Response Status-responseStatus = to Wai.responseStatus-{-# INLINE responseStatus #-}---- | A 'Getter' on the 'ResponseHeaders' of a 'Response'.-responseHeaders :: Getter Response ResponseHeaders-responseHeaders = to Wai.responseHeaders-{-# INLINE responseHeaders #-}+-- | A 'Setter'' on the 'Response' within an 'Application'.+--+-- Uses 'Wai.modifyResponse' under the hood. Allows modifying the response+-- that an 'Application' produces without manually threading the CPS callback.+applicationResponse :: Setter' Application Response+applicationResponse = sets Wai.modifyResponse+{-# INLINE applicationResponse #-}  -- ** ResponseFile 
waiz.cabal view
@@ -1,5 +1,5 @@ name:               waiz-version:            0.0.1.0+version:            0.0.2.0 license:            BSD3 license-file:       LICENCE author:             Tony Morris <tmorris@tmorris.net>