engine-io-wai 1.0.7 → 1.0.8
raw patch · 3 files changed
+29/−24 lines, 3 filesdep ~basedep ~websocketsPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, websockets
API changes (from Hackage documentation)
- Network.EngineIO.Wai: WaiMonad :: EitherT Response (ReaderT Request IO) a -> WaiMonad a
+ Network.EngineIO.Wai: WaiMonad :: ExceptT Response (ReaderT Request IO) a -> WaiMonad a
- Network.EngineIO.Wai: [runWaiMonad] :: WaiMonad a -> EitherT Response (ReaderT Request IO) a
+ Network.EngineIO.Wai: [runWaiMonad] :: WaiMonad a -> ExceptT Response (ReaderT Request IO) a
Files
- Changelog.md +5/−0
- engine-io-wai.cabal +3/−3
- src/Network/EngineIO/Wai.hs +21/−21
Changelog.md view
@@ -1,3 +1,8 @@+## 1.0.8++* Replace EitherT with ExceptT+* Increased the upper-bound of `base` to < 4.11.+ ## 1.0.7 * Update dependencies
engine-io-wai.cabal view
@@ -1,5 +1,5 @@ name: engine-io-wai-version: 1.0.7+version: 1.0.8 synopsis: An @engine-io@ @ServerAPI@ that is compatible with @Wai@ homepage: http://github.com/ocharles/engine.io license: BSD3@@ -21,14 +21,14 @@ Network.EngineIO.Wai build-depends:- base >=4.6 && <4.10,+ base >=4.6 && <4.11, engine-io >= 1.2 && < 1.3, http-types >= 0.8 && < 0.10, unordered-containers >= 0.2 && < 0.3, wai >= 3.0 && < 3.3, text >= 1.1 && < 1.3, bytestring >= 0.9 && <0.11,- websockets >= 0.8 && < 0.11,+ websockets >= 0.8 && < 0.13, wai-websockets >= 3 && < 3.1, mtl >= 2 && < 2.3, either >= 4,
src/Network/EngineIO/Wai.hs view
@@ -1,6 +1,6 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-} module Network.EngineIO.Wai (@@ -10,36 +10,36 @@ ) where -import Network.Wai-import Control.Applicative (Applicative)-import Control.Monad.Reader-import Control.Monad.Error.Class-import Control.Monad.Trans.Either-import Control.Arrow (second)-import Data.Maybe (maybeToList)-import Data.ByteString.Lazy (toStrict)-import Data.Attoparsec.ByteString (parseOnly)-import Network.HTTP.Types.Header (hContentType)+import Control.Applicative (Applicative)+import Control.Arrow (second)+import Control.Monad.Error.Class+import Control.Monad.Except+import Control.Monad.Reader+import Data.Attoparsec.ByteString (parseOnly)+import Data.ByteString.Lazy (toStrict)+import Data.Maybe (maybeToList)+import Network.HTTP.Types.Header (hContentType)+import Network.Wai -import Network.HTTP.Types.Status as ST-import Network.HTTP.Types.URI as URI-import qualified Data.ByteString as BS-import qualified Network.EngineIO as EIO-import qualified Data.HashMap.Strict as HashMap-import qualified Network.Wai as WAI+import qualified Data.ByteString as BS+import qualified Data.HashMap.Strict as HashMap+import qualified Network.EngineIO as EIO+import Network.HTTP.Types.Status as ST+import Network.HTTP.Types.URI as URI+import qualified Network.Wai as WAI import qualified Network.Wai.Handler.WebSockets as WaiWS-import qualified Network.WebSockets as WS+import qualified Network.WebSockets as WS newtype WaiMonad a = WaiMonad {- runWaiMonad :: EitherT Response (ReaderT Request IO) a+ runWaiMonad :: ExceptT Response (ReaderT Request IO) a } deriving (Monad, Functor, Applicative, MonadReader Request, MonadError Response, MonadIO) toWaiApplication :: WaiMonad a -> Application toWaiApplication sHandler req respond = do- socket <- runReaderT (runEitherT (runWaiMonad sHandler)) req+ socket <- runReaderT (runExceptT (runWaiMonad sHandler)) req respond $ case socket of Left response -> response Right _ -> responseLBS status200 [("Content-Type", "text/html")] ""