diff --git a/bower.json b/bower.json index 33653f7..e5cdb05 100644 --- a/bower.json +++ b/bower.json @@ -12,13 +12,11 @@ "output" ], "dependencies": { - "purescript-prelude": "^3.0.0", - "purescript-console": "^3.0.0", - "purescript-hyper": "^0.7.3" + "purescript-hyper": "httsp://github.com/lambdaterms-forks/hyper.git#33edf95c4e1db5a6f798e66199fad9b5643e0064" }, "devDependencies": { - "purescript-psci-support": "^3.0.0", - "purescript-spec": "^0.14.0", - "purescript-spec-discovery": "^0.6.0" + "purescript-psci-support": "^4.0.0", + "purescript-spec": "^3.0.0", + "purescript-spec-discovery": "https://github.com/owickstrom/purescript-spec-discovery.git#a1a8dfd5fadb3f00199d68d20af4bbf56a048c6e" } } diff --git a/src/Hyper/Drive.purs b/src/Hyper/Drive.purs index 2f5593c..4bac1b7 100644 --- a/src/Hyper/Drive.purs +++ b/src/Hyper/Drive.purs @@ -9,14 +9,14 @@ module Hyper.Drive ( Request(..) ) where import Prelude -import Data.StrMap as StrMap import Control.IxMonad (ibind) import Data.Bifunctor (class Bifunctor) import Data.Either (Either) import Data.HTTP.Method (CustomMethod, Method) import Data.Newtype (class Newtype) -import Data.StrMap (StrMap) import Data.Tuple (Tuple(..), curry) +import Foreign.Object as Object +import Foreign.Object (Object) import Hyper.Conn (Conn) import Hyper.Header (Header) import Hyper.Middleware (Middleware, lift') @@ -28,14 +28,14 @@ import Hyper.Status (Status, statusOK) newtype Request body components = Request { method :: Either Method CustomMethod , url :: String - , headers :: StrMap String + , headers :: Object String , body :: body , components :: components } newtype Response body = Response { status :: Status - , headers :: StrMap String + , headers :: Object String , body :: body } @@ -78,7 +78,7 @@ hyperdrive app = do } Response res <- lift' (app req) writeStatus res.status - StrMap.foldM (const (curry writeHeader)) unit res.headers + Object.foldM (const (curry writeHeader)) unit res.headers closeHeaders toResponse res.body >>= send end @@ -94,7 +94,7 @@ response response b = Response { status: statusOK - , headers: StrMap.empty + , headers: Object.empty , body: b } @@ -112,7 +112,7 @@ header -> Response body -> Response body header (Tuple k v) (Response res) = - Response (res { headers = StrMap.insert k v res.headers }) + Response (res { headers = Object.insert k v res.headers }) body :: forall a body diff --git a/test/Hyper/DriveSpec.purs b/test/Hyper/DriveSpec.purs index e29c327..f0bf411 100644 --- a/test/Hyper/DriveSpec.purs +++ b/test/Hyper/DriveSpec.purs @@ -1,11 +1,11 @@ module Hyper.DriveSpec where import Prelude -import Data.StrMap as StrMap import Data.Maybe (Maybe(..)) import Data.Monoid (mempty) import Data.Newtype (unwrap) import Data.Tuple (Tuple(..)) +import Foreign.Object as Object import Hyper.Drive (Response(..), hyperdrive) import Hyper.Middleware (evalMiddleware) import Hyper.Status (statusNotFound, statusOK) @@ -13,7 +13,7 @@ import Hyper.Test.TestServer (TestRequest(..), TestResponse(..), defaultRequest, import Test.Spec (Spec, describe, it) import Test.Spec.Assertions (shouldContain, shouldEqual) -spec :: Spec () Unit +spec :: Spec Unit spec = do let runHyperdrive app = { request: TestRequest $ defaultRequest { body = "Bonjour" } @@ -35,7 +35,7 @@ spec = do it "responds with the supplied headers" do conn <- runHyperdrive (const $ pure $ Response { status: statusOK - , headers: StrMap.singleton "foo" "bar" + , headers: Object.singleton "foo" "bar" , body: mempty }) testHeaders conn `shouldContain` Tuple "foo" "bar" diff --git a/test/Main.purs b/test/Main.purs index b52241a..e969f12 100644 --- a/test/Main.purs +++ b/test/Main.purs @@ -1,11 +1,10 @@ module Test.Main where import Prelude -import Control.Monad.Eff (Eff) -import Node.FS (FS) +import Effect (Effect) import Test.Spec.Discovery (discover) import Test.Spec.Reporter.Console (consoleReporter) -import Test.Spec.Runner (RunnerEffects, run) +import Test.Spec.Runner (run) -main :: Eff (RunnerEffects (fs :: FS)) Unit +main :: Effect Unit main = discover "Hyper\\..*Spec" >>= run [consoleReporter]