strelka-wai 0.4 → 1
raw patch · 2 files changed
+16/−9 lines, 2 filesdep +strelka-coredep −strelkadep ~bytestringPVP ok
version bump matches the API change (PVP)
Dependencies added: strelka-core
Dependencies removed: strelka
Dependency ranges changed: bytestring
API changes (from Hackage documentation)
Files
- library/Strelka/WAI.hs +13/−6
- strelka-wai.cabal +3/−3
library/Strelka/WAI.hs view
@@ -8,10 +8,10 @@ import BasePrelude import Data.Text (Text) import System.IO (stderr)-import qualified Strelka.RequestParser as A-import qualified Strelka.ResponseBuilder as B-import qualified Strelka.Executor as C-import qualified Strelka.Model as F+import qualified Strelka.Core.RequestParser as A+import qualified Strelka.Core.ResponseBuilder as B+import qualified Strelka.Core.Executor as C+import qualified Strelka.Core.Model as F import qualified Network.Wai as D import qualified Network.Wai.Handler.Warp as E import qualified Network.HTTP.Types as G@@ -21,10 +21,14 @@ import qualified Data.Text.IO as K +-- |+-- Given a port number, a base monad executor and a route specification, starts the Warp server. strelkaServer :: Monad m => Int -> (forall a. m a -> IO (Either Text a)) -> A.RequestParser m B.ResponseBuilder -> IO () strelkaServer port runBase route = E.run port (strelkaApplication runBase route) +-- |+-- Given a base monad executor and a route specification, produces a WAI application. strelkaApplication :: Monad m => (forall a. m a -> IO (Either Text a)) -> A.RequestParser m B.ResponseBuilder -> D.Application strelkaApplication runBase route = \request responseHandler ->@@ -34,9 +38,12 @@ Left msg -> do K.hPutStrLn stderr msg- responseHandler (waiResponse (B.run B.internalErrorStatus))+ responseHandler (waiResponse internalErrorResponse) Right response -> responseHandler (waiResponse response)+ where+ internalErrorResponse =+ F.Response (F.Status 500) [] (F.OutputStream (const (const (pure ())))) strelkaRequest :: D.Request -> F.Request strelkaRequest waiRequest =@@ -45,7 +52,7 @@ method = F.Method (H.foldCase (D.requestMethod waiRequest)) path =- F.Path (D.rawPathInfo waiRequest)+ fmap F.PathSegment (D.pathInfo waiRequest) query = J.fromList (map row (D.queryString waiRequest)) where
strelka-wai.cabal view
@@ -1,7 +1,7 @@ name: strelka-wai version:- 0.4+ 1 synopsis: WAI compatibility layer for "strelka" homepage:@@ -45,11 +45,11 @@ wai >= 3.2 && < 4, warp >= 3.2 && < 4, http-types >= 0.9 && < 0.10,- strelka == 0.4.*,+ strelka-core == 0.1.*, -- unordered-containers == 0.2.*, case-insensitive >= 1 && < 2, text == 1.*,- bytestring == 0.10.*,+ bytestring >= 0.10.2 && < 0.11, base-prelude < 2, base < 5