From c248be279f957e3618479d632d2da2631ef76194 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Wed, 9 May 2018 12:11:53 +0100 Subject: [PATCH 1/2] Initial commit --- .eslintrc.json | 29 ++++++++ .travis.yml | 15 ++++ README.md | 2 +- bower.json | 21 ++++++ package.json | 16 ++++ src/Web/WebSocket/BinaryType.purs | 48 ++++++++++++ src/Web/WebSocket/Event/CloseEvent.js | 13 ++++ src/Web/WebSocket/Event/CloseEvent.purs | 20 +++++ src/Web/WebSocket/Event/EventTypes.purs | 15 ++++ src/Web/WebSocket/Event/MessageEvent.js | 13 ++++ src/Web/WebSocket/Event/MessageEvent.purs | 21 ++++++ src/Web/WebSocket/ReadyState.purs | 50 +++++++++++++ src/Web/WebSocket/WebSocket.js | 67 +++++++++++++++++ src/Web/WebSocket/WebSocket.purs | 91 +++++++++++++++++++++++ 14 files changed, 420 insertions(+), 1 deletion(-) create mode 100644 .eslintrc.json create mode 100644 .travis.yml create mode 100644 bower.json create mode 100644 package.json create mode 100644 src/Web/WebSocket/BinaryType.purs create mode 100644 src/Web/WebSocket/Event/CloseEvent.js create mode 100644 src/Web/WebSocket/Event/CloseEvent.purs create mode 100644 src/Web/WebSocket/Event/EventTypes.purs create mode 100644 src/Web/WebSocket/Event/MessageEvent.js create mode 100644 src/Web/WebSocket/Event/MessageEvent.purs create mode 100644 src/Web/WebSocket/ReadyState.purs create mode 100644 src/Web/WebSocket/WebSocket.js create mode 100644 src/Web/WebSocket/WebSocket.purs diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..cb9c786 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,29 @@ +{ + "parserOptions": { + "ecmaVersion": 5 + }, + "extends": "eslint:recommended", + "env": { + "commonjs": true, + "browser": true + }, + "rules": { + "strict": [2, "global"], + "block-scoped-var": 2, + "consistent-return": 2, + "eqeqeq": [2, "smart"], + "guard-for-in": 2, + "no-caller": 2, + "no-extend-native": 2, + "no-loop-func": 2, + "no-new": 2, + "no-param-reassign": 2, + "no-return-assign": 2, + "no-unused-expressions": 2, + "no-use-before-define": 2, + "radix": [2, "always"], + "indent": [2, 2], + "quotes": [2, "double"], + "semi": [2, "always"] + } +} diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..968390b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +language: node_js +dist: trusty +sudo: required +node_js: stable +install: + - npm install -g bower + - npm install + - bower install +script: + - npm run -s build +after_success: +- >- + test $TRAVIS_TAG && + echo $GITHUB_TOKEN | pulp login && + echo y | pulp publish --no-push diff --git a/README.md b/README.md index 4012bdb..9bcfeb2 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# purescript-web-socket \ No newline at end of file +# purescript-web-socket diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..aaa48d2 --- /dev/null +++ b/bower.json @@ -0,0 +1,21 @@ +{ + "name": "purescript-web-socket", + "homepage": "https://github.com/purescript-web/purescript-web-socket", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/purescript-web/purescript-web-socket.git" + }, + "ignore": [ + "**/.*", + "bower_components", + "node_modules", + "output", + "bower.json", + "package.json" + ], + "dependencies": { + "purescript-arraybuffer-types": "^2.0.0", + "purescript-web-file": "#compiler/0.12" + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..11acf56 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "private": true, + "scripts": { + "clean": "rimraf output && rimraf .pulp-cache", + "build": "eslint src && pulp build -- --censor-lib --strict", + "test": "pulp test --runtime phantomjs" + }, + "devDependencies": { + "eslint": "^3.19.0", + "phantomjs-prebuilt": "^2.1.14", + "pulp": "^11.0.0", + "purescript-psa": "^0.5.0", + "purescript": "^0.11.1", + "rimraf": "^2.6.1" + } +} diff --git a/src/Web/WebSocket/BinaryType.purs b/src/Web/WebSocket/BinaryType.purs new file mode 100644 index 0000000..fea402c --- /dev/null +++ b/src/Web/WebSocket/BinaryType.purs @@ -0,0 +1,48 @@ +module Web.WebSocket.BinaryType where + +import Prelude +import Data.Enum (Cardinality(..), class BoundedEnum, defaultPred, defaultSucc, class Enum) +import Data.Maybe (Maybe(..)) + +data BinaryType + = Blob + | ArrayBuffer + +derive instance eqBinaryType :: Eq BinaryType +derive instance ordBinaryType :: Ord BinaryType + +instance boundedBinaryType :: Bounded BinaryType where + bottom = Blob + top = ArrayBuffer + +instance enumBinaryType :: Enum BinaryType where + succ = defaultSucc toEnumBinaryType fromEnumBinaryType + pred = defaultPred toEnumBinaryType fromEnumBinaryType + +instance boundedEnumBinaryType :: BoundedEnum BinaryType where + cardinality = Cardinality 2 + toEnum = toEnumBinaryType + fromEnum = fromEnumBinaryType + +instance showBinaryType :: Show BinaryType where + show Blob = "Blob" + show ArrayBuffer = "ArrayBuffer" + +toEnumBinaryType :: Int -> Maybe BinaryType +toEnumBinaryType = + case _ of + 0 -> Just Blob + 1 -> Just ArrayBuffer + _ -> Nothing + +fromEnumBinaryType :: BinaryType -> Int +fromEnumBinaryType = + case _ of + Blob -> 0 + ArrayBuffer -> 1 + +printBinaryType :: BinaryType -> String +printBinaryType = + case _ of + Blob -> "blob" + ArrayBuffer -> "arraybuffer" diff --git a/src/Web/WebSocket/Event/CloseEvent.js b/src/Web/WebSocket/Event/CloseEvent.js new file mode 100644 index 0000000..88734db --- /dev/null +++ b/src/Web/WebSocket/Event/CloseEvent.js @@ -0,0 +1,13 @@ +"use strict"; + +exports.code = function (e) { + return e.code; +}; + +exports.reason = function (e) { + return e.reason; +}; + +exports.wasClean = function (e) { + return e.wasClean; +}; diff --git a/src/Web/WebSocket/Event/CloseEvent.purs b/src/Web/WebSocket/Event/CloseEvent.purs new file mode 100644 index 0000000..4b94e26 --- /dev/null +++ b/src/Web/WebSocket/Event/CloseEvent.purs @@ -0,0 +1,20 @@ +module Web.WebSocket.Event.CloseEvent where + +import Data.Maybe (Maybe) +import Unsafe.Coerce (unsafeCoerce) +import Web.Event.Event (Event) +import Web.Internal.FFI (unsafeReadProtoTagged) + +foreign import data CloseEvent :: Type + +fromEvent :: Event -> Maybe CloseEvent +fromEvent = unsafeReadProtoTagged "CloseEvent" + +toEvent :: CloseEvent -> Event +toEvent = unsafeCoerce + +foreign import code :: CloseEvent -> Int + +foreign import reason :: CloseEvent -> String + +foreign import wasClean :: CloseEvent -> Boolean diff --git a/src/Web/WebSocket/Event/EventTypes.purs b/src/Web/WebSocket/Event/EventTypes.purs new file mode 100644 index 0000000..8fc3d7a --- /dev/null +++ b/src/Web/WebSocket/Event/EventTypes.purs @@ -0,0 +1,15 @@ +module Web.WebSocket.Event.EventTypes where + +import Web.Event.Event (EventType(..)) + +onOpen :: EventType +onOpen = EventType "open" + +onMessage :: EventType +onMessage = EventType "message" + +onError :: EventType +onError = EventType "error" + +onClose :: EventType +onClose = EventType "close" diff --git a/src/Web/WebSocket/Event/MessageEvent.js b/src/Web/WebSocket/Event/MessageEvent.js new file mode 100644 index 0000000..62472b6 --- /dev/null +++ b/src/Web/WebSocket/Event/MessageEvent.js @@ -0,0 +1,13 @@ +"use strict"; + +exports.data_ = function (e) { + return e.data; +}; + +exports.origin = function (e) { + return e.origin; +}; + +exports.lastEventId = function (e) { + return e.lastEventId; +}; diff --git a/src/Web/WebSocket/Event/MessageEvent.purs b/src/Web/WebSocket/Event/MessageEvent.purs new file mode 100644 index 0000000..bbc397e --- /dev/null +++ b/src/Web/WebSocket/Event/MessageEvent.purs @@ -0,0 +1,21 @@ +module Web.WebSocket.Event.MessageEvent where + +import Data.Maybe (Maybe) +import Foreign (Foreign) +import Unsafe.Coerce (unsafeCoerce) +import Web.Event.Event (Event) +import Web.Internal.FFI (unsafeReadProtoTagged) + +foreign import data MessageEvent :: Type + +fromEvent :: Event -> Maybe MessageEvent +fromEvent = unsafeReadProtoTagged "MessageEvent" + +toEvent :: MessageEvent -> Event +toEvent = unsafeCoerce + +foreign import data_ :: MessageEvent -> Foreign + +foreign import origin :: MessageEvent -> String + +foreign import lastEventId :: MessageEvent -> String diff --git a/src/Web/WebSocket/ReadyState.purs b/src/Web/WebSocket/ReadyState.purs new file mode 100644 index 0000000..db34e9e --- /dev/null +++ b/src/Web/WebSocket/ReadyState.purs @@ -0,0 +1,50 @@ +module Web.WebSocket.ReadyState where + +import Prelude +import Data.Enum (Cardinality(..), class BoundedEnum, defaultPred, defaultSucc, class Enum) +import Data.Maybe (Maybe(..)) + +data ReadyState + = Connecting + | Open + | Closing + | Closed + +derive instance eqReadyState :: Eq ReadyState +derive instance ordReadyState :: Ord ReadyState + +instance boundedReadyState :: Bounded ReadyState where + bottom = Connecting + top = Closed + +instance enumReadyState :: Enum ReadyState where + succ = defaultSucc toEnumReadyState fromEnumReadyState + pred = defaultPred toEnumReadyState fromEnumReadyState + +instance boundedEnumReadyState :: BoundedEnum ReadyState where + cardinality = Cardinality 4 + toEnum = toEnumReadyState + fromEnum = fromEnumReadyState + +instance showReadyState :: Show ReadyState where + show Connecting = "Connecting" + show Open = "Open" + show Closing = "Closing" + show Closed = "Closed" + +toEnumReadyState :: Int -> Maybe ReadyState +toEnumReadyState = + case _ of + 0 -> Just Connecting + 1 -> Just Open + 2 -> Just Closing + 3 -> Just Closed + _ -> Nothing + +fromEnumReadyState :: ReadyState -> Int +fromEnumReadyState = + case _ of + Connecting -> 0 + Open -> 1 + Closing -> 2 + Closed -> 3 diff --git a/src/Web/WebSocket/WebSocket.js b/src/Web/WebSocket/WebSocket.js new file mode 100644 index 0000000..77405ab --- /dev/null +++ b/src/Web/WebSocket/WebSocket.js @@ -0,0 +1,67 @@ +"use strict"; + +exports.create = function (url) { + return function (protocols) { + return function () { + return new WebSocket(url, protocols); + }; + }; +}; + +exports.url = function (ws) { + return function () { + return ws.url; + }; +}; + +exports.readyStateImpl = function (ws) { + return function () { + return ws.readyState; + }; +}; + +exports.bufferedAmount = function (ws) { + return function () { + return ws.bufferedAmount; + }; +}; + +exports.extensions = function (ws) { + return function () { + return ws.extensions; + }; +}; + +exports.protocol = function (ws) { + return function () { + return ws.protocol; + }; +}; + +exports.close = function (ws) { + return function () { + return ws.close(); + }; +}; + +exports.getBinaryTypeImpl = function (ws) { + return function () { + return ws.binaryType; + }; +}; + +exports.setBinaryTypeImpl = function (ws) { + return function (bt) { + return function () { + ws.binaryType = bt; + }; + }; +}; + +exports.sendImpl = function (ws) { + return function (value) { + return function () { + ws.send(value); + }; + }; +}; diff --git a/src/Web/WebSocket/WebSocket.purs b/src/Web/WebSocket/WebSocket.purs new file mode 100644 index 0000000..3be1111 --- /dev/null +++ b/src/Web/WebSocket/WebSocket.purs @@ -0,0 +1,91 @@ +module Web.WebSocket.WebSocket + ( WebSocket + , fromEventTarget + , toEventTarget + , Protocol(..) + , create + , url + , readyState + , bufferedAmount + , extensions + , protocol + , close + , getBinaryType + , setBinaryType + , sendString + , sendBlob + , sendArrayBuffer + , sendArrayBufferView + ) where + +import Prelude + +import Data.ArrayBuffer.Types (ArrayBuffer, ArrayView) +import Data.Maybe (Maybe, fromJust) +import Data.Newtype (class Newtype) +import Effect (Effect) +import Partial.Unsafe (unsafePartial) +import Unsafe.Coerce (unsafeCoerce) +import Web.Event.EventTarget (EventTarget) +import Web.File.Blob (Blob) +import Web.Internal.FFI (unsafeReadProtoTagged) +import Web.WebSocket.BinaryType (BinaryType(..), printBinaryType) +import Web.WebSocket.ReadyState (ReadyState, toEnumReadyState) + +foreign import data WebSocket :: Type + +fromEventTarget :: EventTarget -> Maybe WebSocket +fromEventTarget = unsafeReadProtoTagged "WebSocket" + +toEventTarget :: WebSocket -> EventTarget +toEventTarget = unsafeCoerce + +newtype Protocol = Protocol String + +derive newtype instance eqProtocol :: Eq Protocol +derive newtype instance ordProtocol :: Ord Protocol +derive instance newtypeProtocol :: Newtype Protocol _ + +foreign import create :: String -> Array Protocol -> Effect WebSocket + +foreign import url :: WebSocket -> Effect String + +foreign import readyStateImpl :: WebSocket -> Effect Int + +readyState :: WebSocket -> Effect ReadyState +readyState ws = do + rs <- readyStateImpl ws + pure $ unsafePartial $ fromJust $ toEnumReadyState rs + +foreign import bufferedAmount :: WebSocket -> Effect Number + +foreign import extensions :: WebSocket -> Effect String +foreign import protocol :: WebSocket -> Effect String + +foreign import close :: WebSocket -> Effect Unit + +foreign import getBinaryTypeImpl :: WebSocket -> Effect String +foreign import setBinaryTypeImpl :: WebSocket -> String -> Effect Unit + +getBinaryType :: WebSocket -> Effect BinaryType +getBinaryType ws = unsafePartial do + getBinaryTypeImpl ws <#> case _ of + "blob" -> Blob + "arraybuffer" -> ArrayBuffer + +setBinaryType :: WebSocket -> BinaryType -> Effect Unit +setBinaryType ws = setBinaryTypeImpl ws <<< printBinaryType + +sendString :: WebSocket -> String -> Effect Unit +sendString = sendImpl + +sendBlob :: WebSocket -> Blob -> Effect Unit +sendBlob = sendImpl + +sendArrayBuffer :: WebSocket -> ArrayBuffer -> Effect Unit +sendArrayBuffer = sendImpl + +sendArrayBufferView :: forall t. WebSocket -> ArrayView t -> Effect Unit +sendArrayBufferView = sendImpl + +foreign import sendImpl :: forall a. WebSocket -> a -> Effect Unit From 6209420b103e5bed8928698c18dab119366e0b48 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Fri, 25 May 2018 15:32:52 +0100 Subject: [PATCH 2/2] Update dependencies --- .gitignore | 16 ++++++++-------- .travis.yml | 8 +++++++- README.md | 15 +++++++++++++++ bower.json | 2 +- package.json | 13 +++++-------- src/Web/{WebSocket => Socket}/BinaryType.purs | 2 +- .../{WebSocket => Socket}/Event/CloseEvent.js | 0 .../{WebSocket => Socket}/Event/CloseEvent.purs | 2 +- .../{WebSocket => Socket}/Event/EventTypes.purs | 2 +- .../{WebSocket => Socket}/Event/MessageEvent.js | 0 .../Event/MessageEvent.purs | 2 +- src/Web/{WebSocket => Socket}/ReadyState.purs | 2 +- src/Web/{WebSocket => Socket}/WebSocket.js | 0 src/Web/{WebSocket => Socket}/WebSocket.purs | 6 +++--- 14 files changed, 44 insertions(+), 26 deletions(-) rename src/Web/{WebSocket => Socket}/BinaryType.purs (96%) rename src/Web/{WebSocket => Socket}/Event/CloseEvent.js (100%) rename src/Web/{WebSocket => Socket}/Event/CloseEvent.purs (91%) rename src/Web/{WebSocket => Socket}/Event/EventTypes.purs (84%) rename src/Web/{WebSocket => Socket}/Event/MessageEvent.js (100%) rename src/Web/{WebSocket => Socket}/Event/MessageEvent.purs (91%) rename src/Web/{WebSocket => Socket}/ReadyState.purs (96%) rename src/Web/{WebSocket => Socket}/WebSocket.js (100%) rename src/Web/{WebSocket => Socket}/WebSocket.purs (93%) diff --git a/.gitignore b/.gitignore index 361cf52..709fd09 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ -# Dependencies -.psci_modules -bower_components -node_modules - -# Generated files -.psci -output +/.* +!/.gitignore +!/.eslintrc.json +!/.travis.yml +package-lock.json +/bower_components/ +/node_modules/ +/output/ diff --git a/.travis.yml b/.travis.yml index 968390b..37fead9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,11 +2,17 @@ language: node_js dist: trusty sudo: required node_js: stable +env: + - PATH=$HOME/purescript:$PATH install: + - TAG=$(wget -q -O - https://github.com/purescript/purescript/releases/latest --server-response --max-redirect 0 2>&1 | sed -n -e 's/.*Location:.*tag\///p') + - wget -O $HOME/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$TAG/linux64.tar.gz + - tar -xvf $HOME/purescript.tar.gz -C $HOME/ + - chmod a+x $HOME/purescript - npm install -g bower - npm install - - bower install script: + - bower install - npm run -s build after_success: - >- diff --git a/README.md b/README.md index 9bcfeb2..23e6293 100644 --- a/README.md +++ b/README.md @@ -1 +1,16 @@ # purescript-web-socket + +[![Latest release](http://img.shields.io/github/release/purescript-web/purescript-web-socket.svg)](https://github.com/purescript-web/purescript-web-socket/releases) +[![Build status](https://travis-ci.org/purescript-web/purescript-web-socket.svg?branch=master)](https://travis-ci.org/purescript-web/purescript-web-socket) + +Type definitions and low level interface implementations for the W3C WebSocket API. + +## Installation + +``` +bower install purescript-web-socket +``` + +## Documentation + +Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-web-socket). diff --git a/bower.json b/bower.json index aaa48d2..4cec920 100644 --- a/bower.json +++ b/bower.json @@ -16,6 +16,6 @@ ], "dependencies": { "purescript-arraybuffer-types": "^2.0.0", - "purescript-web-file": "#compiler/0.12" + "purescript-web-file": "^1.0.0" } } diff --git a/package.json b/package.json index 11acf56..02e36ea 100644 --- a/package.json +++ b/package.json @@ -2,15 +2,12 @@ "private": true, "scripts": { "clean": "rimraf output && rimraf .pulp-cache", - "build": "eslint src && pulp build -- --censor-lib --strict", - "test": "pulp test --runtime phantomjs" + "build": "eslint src && pulp build -- --censor-lib --strict" }, "devDependencies": { - "eslint": "^3.19.0", - "phantomjs-prebuilt": "^2.1.14", - "pulp": "^11.0.0", - "purescript-psa": "^0.5.0", - "purescript": "^0.11.1", - "rimraf": "^2.6.1" + "eslint": "^4.19.1", + "pulp": "^12.2.0", + "purescript-psa": "^0.6.0", + "rimraf": "^2.6.2" } } diff --git a/src/Web/WebSocket/BinaryType.purs b/src/Web/Socket/BinaryType.purs similarity index 96% rename from src/Web/WebSocket/BinaryType.purs rename to src/Web/Socket/BinaryType.purs index fea402c..b712b2c 100644 --- a/src/Web/WebSocket/BinaryType.purs +++ b/src/Web/Socket/BinaryType.purs @@ -1,4 +1,4 @@ -module Web.WebSocket.BinaryType where +module Web.Socket.BinaryType where import Prelude import Data.Enum (Cardinality(..), class BoundedEnum, defaultPred, defaultSucc, class Enum) diff --git a/src/Web/WebSocket/Event/CloseEvent.js b/src/Web/Socket/Event/CloseEvent.js similarity index 100% rename from src/Web/WebSocket/Event/CloseEvent.js rename to src/Web/Socket/Event/CloseEvent.js diff --git a/src/Web/WebSocket/Event/CloseEvent.purs b/src/Web/Socket/Event/CloseEvent.purs similarity index 91% rename from src/Web/WebSocket/Event/CloseEvent.purs rename to src/Web/Socket/Event/CloseEvent.purs index 4b94e26..5ca8879 100644 --- a/src/Web/WebSocket/Event/CloseEvent.purs +++ b/src/Web/Socket/Event/CloseEvent.purs @@ -1,4 +1,4 @@ -module Web.WebSocket.Event.CloseEvent where +module Web.Socket.Event.CloseEvent where import Data.Maybe (Maybe) import Unsafe.Coerce (unsafeCoerce) diff --git a/src/Web/WebSocket/Event/EventTypes.purs b/src/Web/Socket/Event/EventTypes.purs similarity index 84% rename from src/Web/WebSocket/Event/EventTypes.purs rename to src/Web/Socket/Event/EventTypes.purs index 8fc3d7a..5aec5df 100644 --- a/src/Web/WebSocket/Event/EventTypes.purs +++ b/src/Web/Socket/Event/EventTypes.purs @@ -1,4 +1,4 @@ -module Web.WebSocket.Event.EventTypes where +module Web.Socket.Event.EventTypes where import Web.Event.Event (EventType(..)) diff --git a/src/Web/WebSocket/Event/MessageEvent.js b/src/Web/Socket/Event/MessageEvent.js similarity index 100% rename from src/Web/WebSocket/Event/MessageEvent.js rename to src/Web/Socket/Event/MessageEvent.js diff --git a/src/Web/WebSocket/Event/MessageEvent.purs b/src/Web/Socket/Event/MessageEvent.purs similarity index 91% rename from src/Web/WebSocket/Event/MessageEvent.purs rename to src/Web/Socket/Event/MessageEvent.purs index bbc397e..bd7196e 100644 --- a/src/Web/WebSocket/Event/MessageEvent.purs +++ b/src/Web/Socket/Event/MessageEvent.purs @@ -1,4 +1,4 @@ -module Web.WebSocket.Event.MessageEvent where +module Web.Socket.Event.MessageEvent where import Data.Maybe (Maybe) import Foreign (Foreign) diff --git a/src/Web/WebSocket/ReadyState.purs b/src/Web/Socket/ReadyState.purs similarity index 96% rename from src/Web/WebSocket/ReadyState.purs rename to src/Web/Socket/ReadyState.purs index db34e9e..0a23a48 100644 --- a/src/Web/WebSocket/ReadyState.purs +++ b/src/Web/Socket/ReadyState.purs @@ -1,4 +1,4 @@ -module Web.WebSocket.ReadyState where +module Web.Socket.ReadyState where import Prelude import Data.Enum (Cardinality(..), class BoundedEnum, defaultPred, defaultSucc, class Enum) diff --git a/src/Web/WebSocket/WebSocket.js b/src/Web/Socket/WebSocket.js similarity index 100% rename from src/Web/WebSocket/WebSocket.js rename to src/Web/Socket/WebSocket.js diff --git a/src/Web/WebSocket/WebSocket.purs b/src/Web/Socket/WebSocket.purs similarity index 93% rename from src/Web/WebSocket/WebSocket.purs rename to src/Web/Socket/WebSocket.purs index 3be1111..0496363 100644 --- a/src/Web/WebSocket/WebSocket.purs +++ b/src/Web/Socket/WebSocket.purs @@ -1,4 +1,4 @@ -module Web.WebSocket.WebSocket +module Web.Socket.WebSocket ( WebSocket , fromEventTarget , toEventTarget @@ -29,8 +29,8 @@ import Unsafe.Coerce (unsafeCoerce) import Web.Event.EventTarget (EventTarget) import Web.File.Blob (Blob) import Web.Internal.FFI (unsafeReadProtoTagged) -import Web.WebSocket.BinaryType (BinaryType(..), printBinaryType) -import Web.WebSocket.ReadyState (ReadyState, toEnumReadyState) +import Web.Socket.BinaryType (BinaryType(..), printBinaryType) +import Web.Socket.ReadyState (ReadyState, toEnumReadyState) foreign import data WebSocket :: Type