From dbfe4631542cb4aa5fede156c9fd19571c6d183c Mon Sep 17 00:00:00 2001 From: Robert Klotzner Date: Mon, 20 Jun 2016 13:14:11 +0200 Subject: [PATCH 1/3] Make it work with psc-0.9.1 It depends on some PRs to other packages which are not yet merged. --- bower.json | 12 ++++++------ src/WebSocket.purs | 44 ++++++++++++++++++++++---------------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/bower.json b/bower.json index 12386f5..7c15619 100644 --- a/bower.json +++ b/bower.json @@ -22,13 +22,13 @@ "purescript" ], "dependencies": { - "purescript-generics": "~0.7.0", - "purescript-eff": "~0.1.2", - "purescript-var": "~0.1.0", - "purescript-dom": "~0.2.9", - "purescript-exceptions": "^0.3.4" + "purescript-generics": "~1.0.0", + "purescript-eff": "~1.0.0", + "purescript-var": "~0.2.0", + "purescript-dom": "~1.0.0", + "purescript-exceptions": "^1.0.0" }, "devDependencies": { - "purescript-console": "~0.1.0" + "purescript-console": "~1.0.0" } } diff --git a/src/WebSocket.purs b/src/WebSocket.purs index 84b6f65..3cc06c7 100644 --- a/src/WebSocket.purs +++ b/src/WebSocket.purs @@ -22,26 +22,24 @@ module WebSocket , BinaryType(..) ) where -import Prelude (class Ord, compare, class Eq, eq, class Bounded, class Show, - Unit, (<$>), map, (<<<), ($)) - -import Control.Monad.Eff (Eff()) +import Control.Monad.Eff (Eff) import Control.Monad.Eff.Exception (EXCEPTION) -import Control.Monad.Eff.Var (Var(), GettableVar(), SettableVar(), makeVar, - makeGettableVar, makeSettableVar) -import Data.Function (runFn2, Fn2()) -import Data.Functor.Invariant (imap) -import Data.Functor.Contravariant (cmap) -import DOM.Event.EventTarget (eventListener, EventListener()) -import DOM.Event.Types (Event(), MessageEvent(), CloseEvent()) -import Data.Maybe (Maybe(..), fromMaybe) -import Data.Generic (class Generic, gShow, gEq, gCompare) -import Data.Enum (class Enum, defaultSucc, defaultPred, toEnum, Cardinality(..)) -import Unsafe.Coerce (unsafeCoerce) +import Control.Monad.Eff.Var (Var, GettableVar, SettableVar, makeVar, makeGettableVar, makeSettableVar) +import DOM.Event.EventTarget (eventListener, EventListener) +import DOM.Event.Types (Event) +import DOM.Websocket.Event.Types (CloseEvent, MessageEvent) import Data.Either (Either(..)) +import Data.Enum (class BoundedEnum, class Enum, defaultSucc, defaultPred, toEnum, Cardinality(..)) import Data.Foreign (toForeign, unsafeFromForeign) import Data.Foreign.Index (prop) -import Data.Nullable (toNullable, Nullable()) +import Data.Function.Uncurried (runFn2, Fn2) +import Data.Functor.Contravariant (cmap) +import Data.Functor.Invariant (imap) +import Data.Generic (class Generic, gShow, gEq, gCompare) +import Data.Maybe (Maybe(..), fromMaybe) +import Data.Nullable (toNullable, Nullable) +import Prelude (class Ord, compare, class Eq, eq, class Bounded, class Show, Unit, (<$>), map, (<<<), ($)) +import Unsafe.Coerce (unsafeCoerce) foreign import specViolation :: forall a. String -> a @@ -99,13 +97,13 @@ coerceEvent :: forall a. Event -> a coerceEvent = unsafeCoerce enhanceConnection :: ConnectionImpl -> Connection -enhanceConnection c = Connection +enhanceConnection c = Connection $ { binaryType: imap toBinaryType fromBinaryType $ makeVar c.getBinaryType c.setBinaryType , bufferedAmount: makeGettableVar c.getBufferedAmount - , onclose: cmap (eventListener <<< (`map` coerceEvent)) (makeSettableVar c.setOnclose) - , onerror: cmap (eventListener <<< (`map` coerceEvent)) (makeSettableVar c.setOnerror) - , onmessage: cmap (eventListener <<< (`map` coerceEvent)) (makeSettableVar c.setOnmessage) - , onopen: cmap (eventListener <<< (`map` coerceEvent)) (makeSettableVar c.setOnopen) + , onclose: cmap (eventListener <<< (_ `map` coerceEvent)) (makeSettableVar c.setOnclose) + , onerror: cmap (eventListener <<< (_ `map` coerceEvent)) (makeSettableVar c.setOnerror) + , onmessage: cmap (eventListener <<< (_ `map` coerceEvent)) (makeSettableVar c.setOnmessage) + , onopen: cmap (eventListener <<< (_ `map` coerceEvent)) (makeSettableVar c.setOnopen) , protocol: makeVar c.getProtocol c.setProtocol , readyState: unsafeReadyState <$> makeGettableVar c.getReadyState , url: makeGettableVar c.getUrl @@ -214,10 +212,12 @@ instance boundedReadyState :: Bounded ReadyState where bottom = Connecting top = Closed -instance enumReadyState :: Enum ReadyState where +instance boundedEnumReadyState :: BoundedEnum ReadyState where cardinality = Cardinality 4 toEnum = toEnumReadyState fromEnum = fromEnumReadyState + +instance enumReadyState :: Enum ReadyState where succ = defaultSucc toEnumReadyState fromEnumReadyState pred = defaultPred toEnumReadyState fromEnumReadyState From cd7a6ef5a7e06eba7b54dc515dbb3dd842f8a457 Mon Sep 17 00:00:00 2001 From: Robert Klotzner Date: Mon, 20 Jun 2016 13:18:02 +0200 Subject: [PATCH 2/3] Bumped versions in .travis.yaml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index abbcba2..ba97556 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ sudo: false node_js: - 5.6 install: -- npm install purescript@0.8.5 bower pulp@8.2.1 purescript-psa -g +- npm install purescript@0.9.1 bower pulp@9.0.1 purescript-psa -g - bower install script: - pulp build --censor-lib && pulp docs From 5acffe00bbb0800882023d33b775d65498dc0e7f Mon Sep 17 00:00:00 2001 From: Robert Klotzner Date: Wed, 22 Jun 2016 11:41:52 +0200 Subject: [PATCH 3/3] Updated purescript-dom dep --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 7c15619..93515ab 100644 --- a/bower.json +++ b/bower.json @@ -25,7 +25,7 @@ "purescript-generics": "~1.0.0", "purescript-eff": "~1.0.0", "purescript-var": "~0.2.0", - "purescript-dom": "~1.0.0", + "purescript-dom": "~1.1.0", "purescript-exceptions": "^1.0.0" }, "devDependencies": {