Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit aa2f317

Browse files
authored
Merge pull request #141 from gabejohnson/eff->effect
Remove `Eff` in favor of `Effect`
2 parents 13e7a35 + 28d510d commit aa2f317

File tree

79 files changed

+999
-1126
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+999
-1126
lines changed

bower.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "purescript-dom",
33
"homepage": "https://github.com/purescript-web/purescript-dom",
4-
"description": "PureScript type definitions and effect for interacting with the DOM",
4+
"description": "PureScript type definitions for interacting with the DOM",
55
"keywords": [
66
"purescript"
77
],
@@ -30,7 +30,8 @@
3030
"purescript-media-types": "^3.0.0",
3131
"purescript-nullable": "^3.0.0",
3232
"purescript-prelude": "^3.0.0",
33-
"purescript-unsafe-coerce": "^3.0.0"
33+
"purescript-unsafe-coerce": "^3.0.0",
34+
"purescript-effect": "^0.1.0"
3435
},
3536
"devDependencies": {
3637
"purescript-test-unit": "^11.0.0",

src/DOM.purs

-7
This file was deleted.

src/DOM/Event/Event.purs

+4-14
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@ module DOM.Event.Event
44
) where
55

66
import Prelude
7-
import Control.Monad.Eff (Eff)
7+
import Control.Monad.Effect (Effect)
88
import Data.Enum (toEnum)
99
import Data.Maybe (fromJust)
10-
import DOM (DOM)
1110
import DOM.Event.EventPhase (EventPhase)
1211
import DOM.Event.Types (Event, EventType)
1312
import DOM.Event.Types (Event) as T
@@ -32,17 +31,11 @@ foreign import eventPhaseIndex :: Event -> Int
3231

3332
-- | Prevents the event from bubbling up to futher event listeners. Other event
3433
-- | listeners on the current target will still fire.
35-
foreign import stopPropagation
36-
:: forall eff
37-
. Event
38-
-> Eff (dom :: DOM | eff) Unit
34+
foreign import stopPropagation :: Event -> Effect Unit
3935

4036
-- | Prevents all other listeners for the event from being called. This includes
4137
-- | event listeners added to the current target after the current listener.
42-
foreign import stopImmediatePropagation
43-
:: forall eff
44-
. Event
45-
-> Eff (dom :: DOM | eff) Unit
38+
foreign import stopImmediatePropagation :: Event -> Effect Unit
4639

4740
-- | Indicates whether the event will bubble up through the DOM or not.
4841
foreign import bubbles :: Event -> Boolean
@@ -51,10 +44,7 @@ foreign import bubbles :: Event -> Boolean
5144
foreign import cancelable :: Event -> Boolean
5245

5346
-- | Cancels the event if it can be cancelled.
54-
foreign import preventDefault
55-
:: forall eff
56-
. Event
57-
-> Eff (dom :: DOM | eff) Unit
47+
foreign import preventDefault :: Event -> Effect Unit
5848

5949
-- | Indicates whether `preventDefault` was called on the event.
6050
foreign import defaultPrevented :: Event -> Boolean

src/DOM/Event/EventTarget.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
exports.eventListener = function (fn) {
44
return function (event) {
5-
return fn(event)();
5+
return fn(event);
66
};
77
};
88

src/DOM/Event/EventTarget.purs

+15-20
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,39 @@
11
module DOM.Event.EventTarget where
22

33
import Prelude
4-
import Control.Monad.Eff (kind Effect, Eff)
5-
import Control.Monad.Eff.Exception (EXCEPTION)
6-
import DOM (DOM)
4+
import Control.Monad.Effect (Effect)
75
import DOM.Event.Types (EventTarget, Event, EventType)
86

97
-- | A boxed function that can be used as an event listener. This is necessary
10-
-- | due to the underlying implementation of Eff functions.
11-
foreign import data EventListener :: # Effect -> Type
8+
-- | due to the underlying implementation of Effect functions.
9+
foreign import data EventListener :: Type
1210

13-
-- | Creates an EventListener from a normal PureScript Eff function.
11+
-- | Creates an EventListener from a normal PureScript Effect function.
1412
foreign import eventListener
15-
:: forall eff a
16-
. (Event -> Eff eff a)
17-
-> EventListener eff
13+
:: forall a
14+
. (Event -> Effect a)
15+
-> Effect EventListener
1816

1917
-- | Adds a listener to an event target. The boolean argument indicates whether
2018
-- | the listener should be added for the "capture" phase.
2119
foreign import addEventListener
22-
:: forall eff
23-
. EventType
24-
-> EventListener (dom :: DOM | eff)
20+
:: EventType
21+
-> EventListener
2522
-> Boolean
2623
-> EventTarget
27-
-> Eff (dom :: DOM | eff) Unit
24+
-> Effect Unit
2825

2926
-- | Removes a listener to an event target. The boolean argument indicates
3027
-- | whether the listener should be removed for the "capture" phase.
3128
foreign import removeEventListener
32-
:: forall eff
33-
. EventType
34-
-> EventListener (dom :: DOM | eff)
29+
:: EventType
30+
-> EventListener
3531
-> Boolean
3632
-> EventTarget
37-
-> Eff (dom :: DOM | eff) Unit
33+
-> Effect Unit
3834

3935
-- | Dispatches an event from an event target.
4036
foreign import dispatchEvent
41-
:: forall eff
42-
. Event
37+
:: Event
4338
-> EventTarget
44-
-> Eff (dom :: DOM, err :: EXCEPTION | eff) Boolean
39+
-> Effect Boolean

src/DOM/Event/KeyboardEvent.purs

+3-5
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,10 @@ module DOM.Event.KeyboardEvent
3232
) where
3333

3434
import Prelude
35-
import Control.Monad.Eff (Eff)
35+
import Control.Monad.Effect (Effect)
3636
import Data.Enum (class BoundedEnum, class Enum, Cardinality(..), defaultPred, defaultSucc, toEnum)
3737
import Data.Foreign (F, toForeign)
3838
import Data.Maybe (Maybe(..), fromJust)
39-
import DOM (DOM)
4039
import DOM.Event.Types (Event, KeyboardEvent, readKeyboardEvent)
4140
import DOM.Event.Types (KeyboardEvent, keyboardEventToEvent, readKeyboardEvent) as T
4241

@@ -108,7 +107,6 @@ foreign import repeat :: KeyboardEvent -> Boolean
108107
foreign import isComposing :: KeyboardEvent -> Boolean
109108

110109
foreign import getModifierState
111-
:: forall eff
112-
. String
110+
:: String
113111
-> KeyboardEvent
114-
-> Eff (dom :: DOM | eff) Boolean
112+
-> Effect Boolean

src/DOM/Event/MouseEvent.purs

+3-5
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@ module DOM.Event.MouseEvent
1818
) where
1919

2020
import Prelude
21-
import Control.Monad.Eff (Eff)
21+
import Control.Monad.Effect (Effect)
2222
import Data.Foreign (F, toForeign)
2323
import Data.Maybe (Maybe)
2424
import Data.Nullable (Nullable, toMaybe)
25-
import DOM (DOM)
2625
import DOM.Event.Types (Event, EventTarget, MouseEvent, readMouseEvent)
2726
import DOM.Event.Types (MouseEvent, mouseEventToEvent, readMouseEvent) as T
2827

@@ -59,7 +58,6 @@ relatedTarget = toMaybe <$> _relatedTarget
5958
foreign import buttons :: MouseEvent -> Int
6059

6160
foreign import getModifierState
62-
:: forall eff
63-
. String
61+
:: String
6462
-> MouseEvent
65-
-> Eff (dom :: DOM | eff) Boolean
63+
-> Effect Boolean

src/DOM/File/FileReader.purs

+10-11
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,30 @@ module DOM.File.FileReader
99
) where
1010

1111
import Prelude
12-
import Control.Monad.Eff (Eff)
13-
import DOM (DOM)
12+
import Control.Monad.Effect (Effect)
1413
import DOM.File.FileReader.ReadyState (toEnumReadyState, ReadyState)
1514
import DOM.File.Types (Blob, FileReader)
1615
import Data.Foreign (Foreign)
1716
import Data.Maybe (fromJust)
1817
import Partial.Unsafe (unsafePartial)
1918

20-
foreign import fileReader :: forall eff. Eff (dom :: DOM | eff) FileReader
19+
foreign import fileReader :: Effect FileReader
2120

22-
foreign import error :: forall eff. FileReader -> Eff (dom :: DOM | eff) Foreign
21+
foreign import error :: FileReader -> Effect Foreign
2322

24-
foreign import readyStateImpl :: forall eff. FileReader -> Eff (dom :: DOM | eff) Int
23+
foreign import readyStateImpl :: FileReader -> Effect Int
2524

26-
readyState :: forall eff. FileReader -> Eff (dom :: DOM | eff) ReadyState
25+
readyState :: FileReader -> Effect ReadyState
2726
readyState fr = do
2827
rs <- readyStateImpl fr
2928
pure $ unsafePartial $ fromJust $ toEnumReadyState rs
3029

31-
foreign import result :: forall eff. FileReader -> Eff (dom :: DOM | eff) Foreign
30+
foreign import result :: FileReader -> Effect Foreign
3231

33-
foreign import abort :: FileReader -> forall eff. Eff (dom :: DOM | eff) Unit
32+
foreign import abort :: FileReader -> Effect Unit
3433

35-
foreign import readAsText :: Blob -> FileReader -> forall eff. Eff (dom :: DOM | eff) Unit
34+
foreign import readAsText :: Blob -> FileReader -> Effect Unit
3635

37-
foreign import readAsArrayBuffer :: Blob -> FileReader -> forall eff. Eff (dom :: DOM | eff) Unit
36+
foreign import readAsArrayBuffer :: Blob -> FileReader -> Effect Unit
3837

39-
foreign import readAsDataURL :: Blob -> FileReader -> forall eff. Eff (dom :: DOM | eff) Unit
38+
foreign import readAsDataURL :: Blob -> FileReader -> Effect Unit

src/DOM/HTML.purs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
module DOM.HTML where
22

3-
import Control.Monad.Eff (Eff)
4-
import DOM (DOM)
3+
import Control.Monad.Effect (Effect)
54
import DOM.HTML.Types (Window)
65

7-
foreign import window :: forall eff. Eff (dom :: DOM | eff) Window
6+
foreign import window :: Effect Window

src/DOM/HTML/Document.purs

+7-8
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,25 @@ module DOM.HTML.Document
77

88
import Prelude
99

10-
import Control.Monad.Eff (Eff)
11-
import DOM (DOM)
10+
import Control.Monad.Effect (Effect)
1211
import DOM.HTML.Document.ReadyState (ReadyState(..)) as Exports
1312
import DOM.HTML.Document.ReadyState (ReadyState, parseReadyState)
1413
import DOM.HTML.Types (HTMLElement, HTMLDocument)
1514
import Data.Maybe (Maybe, fromJust)
1615
import Data.Nullable (Nullable, toMaybe)
1716
import Partial.Unsafe (unsafePartial)
1817

19-
foreign import _body :: forall eff. HTMLDocument -> Eff (dom :: DOM | eff) (Nullable HTMLElement)
18+
foreign import _body :: HTMLDocument -> Effect (Nullable HTMLElement)
2019

21-
body :: forall eff. HTMLDocument -> Eff (dom :: DOM | eff) (Maybe HTMLElement)
20+
body :: HTMLDocument -> Effect (Maybe HTMLElement)
2221
body = map toMaybe <<< _body
2322

24-
foreign import _readyState :: forall eff. HTMLDocument -> Eff (dom :: DOM | eff) String
23+
foreign import _readyState :: HTMLDocument -> Effect String
2524

26-
readyState :: forall eff. HTMLDocument -> Eff (dom :: DOM | eff) ReadyState
25+
readyState :: HTMLDocument -> Effect ReadyState
2726
readyState = map (unsafePartial fromJust <<< parseReadyState) <<< _readyState
2827

29-
foreign import _activeElement :: forall eff. HTMLDocument -> Eff (dom :: DOM | eff) (Nullable HTMLElement)
28+
foreign import _activeElement :: HTMLDocument -> Effect (Nullable HTMLElement)
3029

31-
activeElement :: forall eff. HTMLDocument -> Eff (dom :: DOM | eff) (Maybe HTMLElement)
30+
activeElement :: HTMLDocument -> Effect (Maybe HTMLElement)
3231
activeElement = map toMaybe <<< _activeElement

src/DOM/HTML/Event/DataTransfer.purs

+12-16
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ module DOM.HTML.Event.DataTransfer
1111

1212
import Prelude
1313

14-
import Control.Monad.Eff (Eff)
15-
import DOM (DOM)
14+
import Control.Monad.Effect (Effect)
1615
import DOM.File.Types (FileList)
1716
import Data.Maybe (Maybe)
1817
import Data.MediaType (MediaType(..))
@@ -37,46 +36,43 @@ foreign import _files :: DataTransfer -> Nullable FileList
3736
foreign import types :: DataTransfer -> Array String
3837

3938
foreign import getDataImpl
40-
:: forall eff
41-
. String
39+
:: String
4240
-> DataTransfer
43-
-> Eff (dom :: DOM | eff) String
41+
-> Effect String
4442

4543
-- | Retrieves the data for a given media type, or an empty string if data for
4644
-- | that type does not exist or the data transfer object contains no data.
4745
getData
48-
:: forall eff. MediaType -> DataTransfer -> Eff (dom :: DOM | eff) String
46+
:: MediaType -> DataTransfer -> Effect String
4947
getData (MediaType format) dt = getDataImpl format dt
5048

5149
foreign import setDataImpl
52-
:: forall eff
53-
. String
50+
:: String
5451
-> String
5552
-> DataTransfer
56-
-> Eff (dom :: DOM | eff) Unit
53+
-> Effect Unit
5754

5855
-- | Sets the data transfer object's data for a given media format.
5956
-- |
6057
-- | Example:
6158
-- |
6259
-- | setData textPlain "Foo" dataTransfer
6360
setData
64-
:: forall eff
65-
. MediaType
61+
:: MediaType
6662
-> String
6763
-> DataTransfer
68-
-> Eff (dom :: DOM | eff) Unit
64+
-> Effect Unit
6965
setData (MediaType format) dat dt = setDataImpl format dat dt
7066

71-
foreign import dropEffectImpl :: forall eff. DataTransfer -> Eff (dom :: DOM | eff) String
67+
foreign import dropEffectImpl :: DataTransfer -> Effect String
7268

7369
data DropEffect = Copy | Link | Move | None
7470

7571
derive instance eqDropEffect :: Eq DropEffect
7672
derive instance ordDropEffect :: Ord DropEffect
7773

7874
--| Gets the data transfer object's drop effect.
79-
dropEffect :: forall eff. DataTransfer -> Eff (dom :: DOM | eff) DropEffect
75+
dropEffect :: DataTransfer -> Effect DropEffect
8076
dropEffect dt = do
8177
de <- dropEffectImpl dt
8278
pure $ unsafePartial $ case de of
@@ -86,10 +82,10 @@ dropEffect dt = do
8682
"none" -> None
8783
_ -> crashWith "Impossible according to https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/dropEffect"
8884

89-
foreign import setDropEffectImpl :: forall eff. String -> DataTransfer -> Eff (dom :: DOM | eff) Unit
85+
foreign import setDropEffectImpl :: String -> DataTransfer -> Effect Unit
9086

9187
--| Sets the data transfer object's drop effect.
92-
setDropEffect :: forall eff. DropEffect -> DataTransfer -> Eff (dom :: DOM | eff) Unit
88+
setDropEffect :: DropEffect -> DataTransfer -> Effect Unit
9389
setDropEffect de = setDropEffectImpl case de of
9490
Copy -> "copy"
9591
Link -> "link"

src/DOM/HTML/HTMLAnchorElement.purs

+16-17
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,30 @@ module DOM.HTML.HTMLAnchorElement where
22

33
import Prelude (Unit)
44

5-
import Control.Monad.Eff (Eff)
5+
import Control.Monad.Effect (Effect)
66

7-
import DOM (DOM)
87
import DOM.HTML.Types (HTMLAnchorElement)
98
import DOM.Node.Types (DOMTokenList)
109

11-
foreign import target :: forall eff. HTMLAnchorElement -> Eff (dom :: DOM | eff) String
12-
foreign import setTarget :: forall eff. String -> HTMLAnchorElement -> Eff (dom :: DOM | eff) Unit
10+
foreign import target :: HTMLAnchorElement -> Effect String
11+
foreign import setTarget :: String -> HTMLAnchorElement -> Effect Unit
1312

14-
foreign import download :: forall eff. HTMLAnchorElement -> Eff (dom :: DOM | eff) String
15-
foreign import setDownload :: forall eff. String -> HTMLAnchorElement -> Eff (dom :: DOM | eff) Unit
13+
foreign import download :: HTMLAnchorElement -> Effect String
14+
foreign import setDownload :: String -> HTMLAnchorElement -> Effect Unit
1615

17-
foreign import rel :: forall eff. HTMLAnchorElement -> Eff (dom :: DOM | eff) String
18-
foreign import setRel :: forall eff. String -> HTMLAnchorElement -> Eff (dom :: DOM | eff) Unit
16+
foreign import rel :: HTMLAnchorElement -> Effect String
17+
foreign import setRel :: String -> HTMLAnchorElement -> Effect Unit
1918

20-
foreign import rev :: forall eff. HTMLAnchorElement -> Eff (dom :: DOM | eff) String
21-
foreign import setRev :: forall eff. String -> HTMLAnchorElement -> Eff (dom :: DOM | eff) Unit
19+
foreign import rev :: HTMLAnchorElement -> Effect String
20+
foreign import setRev :: String -> HTMLAnchorElement -> Effect Unit
2221

23-
foreign import relList :: forall eff. HTMLAnchorElement -> Eff (dom :: DOM | eff) DOMTokenList
22+
foreign import relList :: HTMLAnchorElement -> Effect DOMTokenList
2423

25-
foreign import hreflang :: forall eff. HTMLAnchorElement -> Eff (dom :: DOM | eff) String
26-
foreign import setHreflang :: forall eff. String -> HTMLAnchorElement -> Eff (dom :: DOM | eff) Unit
24+
foreign import hreflang :: HTMLAnchorElement -> Effect String
25+
foreign import setHreflang :: String -> HTMLAnchorElement -> Effect Unit
2726

28-
foreign import type_ :: forall eff. HTMLAnchorElement -> Eff (dom :: DOM | eff) String
29-
foreign import setType :: forall eff. String -> HTMLAnchorElement -> Eff (dom :: DOM | eff) Unit
27+
foreign import type_ :: HTMLAnchorElement -> Effect String
28+
foreign import setType :: String -> HTMLAnchorElement -> Effect Unit
3029

31-
foreign import text :: forall eff. HTMLAnchorElement -> Eff (dom :: DOM | eff) String
32-
foreign import setText :: forall eff. String -> HTMLAnchorElement -> Eff (dom :: DOM | eff) Unit
30+
foreign import text :: HTMLAnchorElement -> Effect String
31+
foreign import setText :: String -> HTMLAnchorElement -> Effect Unit

0 commit comments

Comments
 (0)