wai-middleware-content-type 0.0.0 → 0.0.1
raw patch · 14 files changed
+34/−21 lines, 14 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.Base.Applicative m => GHC.Base.Applicative (Network.Wai.Middleware.ContentType.Types.FileExtListenerT r m)
- Network.Wai.Middleware.ContentType.Types: instance GHC.Base.Monad m => Control.Monad.Writer.Class.MonadWriter (Network.Wai.Middleware.ContentType.Types.FileExts r) (Network.Wai.Middleware.ContentType.Types.FileExtListenerT r m)
+ Network.Wai.Middleware.ContentType.Types: instance GHC.Base.Monad m => Control.Monad.State.Class.MonadState (Network.Wai.Middleware.ContentType.Types.FileExts r) (Network.Wai.Middleware.ContentType.Types.FileExtListenerT r m)
+ Network.Wai.Middleware.ContentType.Types: instance GHC.Base.Monad m => GHC.Base.Applicative (Network.Wai.Middleware.ContentType.Types.FileExtListenerT r m)
+ Network.Wai.Middleware.ContentType.Types: tell :: (Monoid w, MonadState w m) => w -> m ()
- Network.Wai.Middleware.ContentType.Types: FileExtListenerT :: WriterT (FileExts r) m a -> FileExtListenerT r m a
+ Network.Wai.Middleware.ContentType.Types: FileExtListenerT :: StateT (FileExts r) m a -> FileExtListenerT r m a
- Network.Wai.Middleware.ContentType.Types: [runFileExtListenerT] :: FileExtListenerT r m a -> WriterT (FileExts r) m a
+ Network.Wai.Middleware.ContentType.Types: [runFileExtListenerT] :: FileExtListenerT r m a -> StateT (FileExts r) m a
Files
- src/Network/Wai/Middleware/ContentType.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Blaze.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Builder.hs +1/−1
- src/Network/Wai/Middleware/ContentType/ByteString.hs +2/−3
- src/Network/Wai/Middleware/ContentType/Cassius.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Clay.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Json.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Julius.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Lucid.hs +3/−2
- src/Network/Wai/Middleware/ContentType/Lucius.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Middleware.hs +0/−1
- src/Network/Wai/Middleware/ContentType/Text.hs +1/−1
- src/Network/Wai/Middleware/ContentType/Types.hs +19/−5
- wai-middleware-content-type.cabal +1/−1
src/Network/Wai/Middleware/ContentType.hs view
@@ -9,7 +9,7 @@ , possibleFileExts ) where -import Network.Wai.Middleware.ContentType.Types as X+import Network.Wai.Middleware.ContentType.Types as X hiding (tell) import Network.Wai.Middleware.ContentType.Blaze as X import Network.Wai.Middleware.ContentType.Builder as X import Network.Wai.Middleware.ContentType.ByteString as X
src/Network/Wai/Middleware/ContentType/Blaze.hs view
@@ -11,8 +11,8 @@ import Network.Wai.Trans import qualified Text.Blaze.Html as H import qualified Text.Blaze.Html.Renderer.Text as H+import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Writer -- | Uses @Html@ as the key in the map, and @"text/html"@ as the content type.
src/Network/Wai/Middleware/ContentType/Builder.hs view
@@ -8,8 +8,8 @@ import qualified Data.ByteString.Builder as BU import qualified Data.Map as Map+import Control.Monad.IO.Class -import Control.Monad.Writer -- | A builder is ambiguous, therefore we require @RequestHeaders@ and a @FileExt@ to be explicitly
src/Network/Wai/Middleware/ContentType/ByteString.hs view
@@ -10,9 +10,8 @@ import qualified Data.ByteString.Lazy as B import Data.Map--import Control.Monad.IO.Class (liftIO)-import Control.Monad.Writer+import Control.Monad.Trans (lift)+import Control.Monad.IO.Class -- * Lifted @MiddlewareT@
src/Network/Wai/Middleware/ContentType/Cassius.hs view
@@ -9,8 +9,8 @@ import Text.Cassius import qualified Data.Text.Lazy.Encoding as LT+import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Writer -- | Uses @cassius@ as the key in the map, and @"cassius/plain"@ as the content type.
src/Network/Wai/Middleware/ContentType/Clay.hs view
@@ -10,8 +10,8 @@ import Clay.Render import Clay.Stylesheet import qualified Data.Text.Lazy.Encoding as LT+import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Writer -- | Uses @Text@ as the key in the map, and @"text/css"@ as the content type.
src/Network/Wai/Middleware/ContentType/Json.hs view
@@ -8,8 +8,8 @@ import Network.Wai.Trans import qualified Data.Aeson as A+import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Writer
src/Network/Wai/Middleware/ContentType/Julius.hs view
@@ -9,8 +9,8 @@ import Text.Julius import qualified Data.Text.Lazy.Encoding as LT+import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Writer -- | Uses @julius@ as the key in the map, and @"application/javascript"@ as the content type.
src/Network/Wai/Middleware/ContentType/Lucid.hs view
@@ -8,8 +8,9 @@ import Network.Wai.Trans import qualified Lucid.Base as L+import Control.Monad.Trans+import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Writer -- | Uses the @Html@ key in the map, and @"text/html"@ as the content type.@@ -70,4 +71,4 @@ lucidOnlyStatusHeaders :: Monad m => Status -> RequestHeaders -> L.HtmlT m () -> m Response-lucidOnlyStatusHeaders s hs i = liftM (bytestringOnlyStatus s hs) $ L.renderBST i+lucidOnlyStatusHeaders s hs i = bytestringOnlyStatus s hs <$> L.renderBST i
src/Network/Wai/Middleware/ContentType/Lucius.hs view
@@ -9,8 +9,8 @@ import Text.Lucius import qualified Data.Text.Lazy.Encoding as LT+import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Writer -- | Uses @lucius@ as the key in the map, and @"lucius/css"@ as the content type.
src/Network/Wai/Middleware/ContentType/Middleware.hs view
@@ -3,7 +3,6 @@ import Network.Wai.Middleware.ContentType.Types import Network.Wai.Trans import qualified Data.Map as Map-import Control.Monad.Writer -- | Lifts a @MiddlewareT@ directly as a response to a file extension.
src/Network/Wai/Middleware/ContentType/Text.hs view
@@ -9,8 +9,8 @@ import qualified Data.Text.Lazy as LT import qualified Data.Text.Lazy.Encoding as LT+import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Writer -- | Uses @Text@ as the key in the map, and @"text/plain"@ as the content type.
src/Network/Wai/Middleware/ContentType/Types.hs view
@@ -8,16 +8,30 @@ , MultiParamTypeClasses #-} -module Network.Wai.Middleware.ContentType.Types where+module Network.Wai.Middleware.ContentType.Types+ ( FileExt (..)+ , getFileExt+ , toExt+ , FileExts (..)+ , FileExtListenerT (..)+ , execFileExtListenerT+ , tell+ ) where import Network.Wai import qualified Data.Text as T import Data.Map import Data.Maybe (fromMaybe)+import Data.Monoid import Control.Monad.Trans-import Control.Monad.Writer+import Control.Monad.State +tell :: (Monoid w, MonadState w m) => w -> m ()+tell x = do+ xs <- get+ put $ xs <> x+ -- | Supported file extensions data FileExt = Html | Css@@ -50,8 +64,8 @@ deriving (Show, Eq, Monoid, Functor, Foldable, Traversable) newtype FileExtListenerT r m a =- FileExtListenerT { runFileExtListenerT :: WriterT (FileExts r) m a }- deriving (Functor, Applicative, Monad, MonadIO, MonadTrans, MonadWriter (FileExts r))+ FileExtListenerT { runFileExtListenerT :: StateT (FileExts r) m a }+ deriving (Functor, Applicative, Monad, MonadIO, MonadTrans, MonadState (FileExts r)) execFileExtListenerT :: Monad m => FileExtListenerT r m a -> m (FileExts r)-execFileExtListenerT = execWriterT . runFileExtListenerT+execFileExtListenerT xs = execStateT (runFileExtListenerT xs) mempty
wai-middleware-content-type.cabal view
@@ -1,5 +1,5 @@ Name: wai-middleware-content-type-Version: 0.0.0+Version: 0.0.1 Author: Athan Clark <athan.clark@gmail.com> Maintainer: Athan Clark <athan.clark@gmail.com> License: BSD3