wai-middleware-content-type 0.4.0 → 0.4.1
raw patch · 7 files changed
+22/−14 lines, 7 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Network.Wai.Middleware.ContentType.Types: instance GHC.Generics.Constructor Network.Wai.Middleware.ContentType.Types.C1_0FileExt
- Network.Wai.Middleware.ContentType.Types: instance GHC.Generics.Constructor Network.Wai.Middleware.ContentType.Types.C1_1FileExt
- Network.Wai.Middleware.ContentType.Types: instance GHC.Generics.Constructor Network.Wai.Middleware.ContentType.Types.C1_2FileExt
- Network.Wai.Middleware.ContentType.Types: instance GHC.Generics.Constructor Network.Wai.Middleware.ContentType.Types.C1_3FileExt
- Network.Wai.Middleware.ContentType.Types: instance GHC.Generics.Constructor Network.Wai.Middleware.ContentType.Types.C1_4FileExt
- Network.Wai.Middleware.ContentType.Types: instance GHC.Generics.Constructor Network.Wai.Middleware.ContentType.Types.C1_5FileExt
- Network.Wai.Middleware.ContentType.Types: instance GHC.Generics.Datatype Network.Wai.Middleware.ContentType.Types.D1FileExt
+ Network.Wai.Middleware.ContentType.Types: instance GHC.Base.Monad m => GHC.Base.Monoid (Network.Wai.Middleware.ContentType.Types.FileExtListenerT m ())
Files
- src/Network/Wai/Middleware/ContentType.hs +4/−4
- src/Network/Wai/Middleware/ContentType/ByteString.hs +0/−1
- src/Network/Wai/Middleware/ContentType/Clay.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Json.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Types.hs +7/−3
- test/Network/Wai/Middleware/ContentTypeSpec.hs +2/−2
- wai-middleware-content-type.cabal +7/−2
src/Network/Wai/Middleware/ContentType.hs view
@@ -55,9 +55,9 @@ -> Maybe FileExt -> FileExtMap -> Maybe Response-lookupFileExt mAcceptBS mFe map =+lookupFileExt mAcceptBS mFe m = getFirst- . foldMap (\fe -> First $ runResponseVia <$> HM.lookup fe map)+ . foldMap (\fe -> First $ runResponseVia <$> HM.lookup fe m) . findFE $ maybe allFileExts possibleFileExts mAcceptBS where@@ -69,9 +69,9 @@ fileExtsToMiddleware :: Monad m => FileExtListenerT m a -> MiddlewareT m fileExtsToMiddleware xs app req respond = do- map <- execFileExtListenerT xs+ m <- execFileExtListenerT xs let mAcceptHeader = lookup "Accept" (requestHeaders req) mFileExt = getFileExt (pathInfo req)- case lookupFileExt mAcceptHeader mFileExt map of+ case lookupFileExt mAcceptHeader mFileExt m of Nothing -> app req respond Just r -> respond r
src/Network/Wai/Middleware/ContentType/ByteString.hs view
@@ -5,7 +5,6 @@ import Network.Wai (Response, responseLBS) import qualified Data.ByteString.Lazy as LBS-import qualified Blaze.ByteString.Builder.ByteString as BU import qualified Data.HashMap.Lazy as HM
src/Network/Wai/Middleware/ContentType/Clay.hs view
@@ -26,7 +26,7 @@ (c,as,i) status200 [("Content-Type","text/css")]- (\(c,as,i) -> clayOnly c as i)+ (\(c',as',i') -> clayOnly c' as' i') {-# INLINEABLE clay #-}
src/Network/Wai/Middleware/ContentType/Json.hs view
@@ -6,7 +6,7 @@ import Network.Wai.Middleware.ContentType.Types import Network.Wai.Middleware.ContentType.ByteString-import Network.HTTP.Types (status200, Status, ResponseHeaders)+import Network.HTTP.Types (Status, ResponseHeaders) import Network.Wai (Response) import qualified Data.Aeson as A
src/Network/Wai/Middleware/ContentType/Types.hs view
@@ -170,6 +170,10 @@ , MonadMask, MonadLogger, MonadUrl b f, MFunctor ) +instance Monad m => Monoid (FileExtListenerT m ()) where+ mempty = FileExtListenerT $ put mempty+ mappend x y = x >> y+ deriving instance (MonadResource m, MonadBase IO m) => MonadResource (FileExtListenerT m) instance MonadTransControl FileExtListenerT where@@ -191,9 +195,9 @@ -> FileExtListenerT m a -> FileExtListenerT m a mapFileExtMap f (FileExtListenerT xs) = do- map <- get- (x,map') <- lift (runStateT xs (f map))- put map'+ m <- get+ (x,m') <- lift (runStateT xs (f m))+ put m' return x
test/Network/Wai/Middleware/ContentTypeSpec.hs view
@@ -162,8 +162,8 @@ fileExtsToMiddleware allExamples $ (\req respond -> respond (textOnly "Something went wrong" status406 [])) -allExamples :: FileExtListenerT IO ()-allExamples = do+allExamples :: FileExtListenerT Response IO ()+allExamples = mapResponse (\f -> f status200 []) $ do text "Text!" json ("Json!" :: T.Text) lucid (L.toHtmlRaw ("Html!" :: T.Text))
wai-middleware-content-type.cabal view
@@ -1,14 +1,19 @@ Name: wai-middleware-content-type-Version: 0.4.0+Version: 0.4.1 Author: Athan Clark <athan.clark@gmail.com> Maintainer: Athan Clark <athan.clark@gmail.com> License: BSD3 License-File: LICENSE-Synopsis: A simple WAI library for responding with content.+Synopsis: Route to different middlewares based on the incoming Accept header. -- Description: Cabal-Version: >= 1.10 Build-Type: Simple Category: Web+++Flag Example+ Description: Build a trivial example+ Default: False Library