Skip to content

Commit 20331e6

Browse files
committed
Event coercions, consolidate EventTypes by event type
1 parent 937348d commit 20331e6

File tree

20 files changed

+127
-128
lines changed

20 files changed

+127
-128
lines changed

src/Web/HTML/Event/BeforeUnloadEvent.purs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,20 @@ module Web.HTML.Event.BeforeUnloadEvent where
22

33
import Prelude
44

5+
import Data.Maybe (Maybe)
56
import Effect (Effect)
6-
import Foreign (F, Foreign, unsafeReadTagged)
77
import Unsafe.Coerce (unsafeCoerce)
88
import Web.Event.Event (Event)
9+
import Web.Internal.FFI (unsafeReadProtoTagged)
910

1011
foreign import data BeforeUnloadEvent :: Type
1112

13+
fromEvent :: Event -> Maybe BeforeUnloadEvent
14+
fromEvent = unsafeReadProtoTagged "BeforeUnloadEvent"
15+
1216
toEvent :: BeforeUnloadEvent -> Event
1317
toEvent = unsafeCoerce
1418

15-
read :: Foreign -> F BeforeUnloadEvent
16-
read = unsafeReadTagged "BeforeUnloadEvent"
17-
1819
foreign import returnValue :: BeforeUnloadEvent -> Effect String
1920

2021
foreign import setReturnValue :: String -> BeforeUnloadEvent -> Effect Unit
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module Web.HTML.Event.BeforeUnloadEvent.EventTypes where
2+
3+
import Web.Event.Event (EventType(..))
4+
5+
beforeunload :: EventType
6+
beforeunload = EventType "beforeunload"

src/Web/HTML/Event/DragEvent.purs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
module Web.HTML.Event.DragEvent where
22

3-
import Foreign (Foreign, F, unsafeReadTagged)
3+
import Data.Maybe (Maybe)
44
import Unsafe.Coerce (unsafeCoerce)
55
import Web.Event.Event (Event)
66
import Web.HTML.Event.DataTransfer (DataTransfer)
7+
import Web.Internal.FFI (unsafeReadProtoTagged)
78

89
foreign import data DragEvent :: Type
910

10-
dragEventToEvent :: DragEvent -> Event
11-
dragEventToEvent = unsafeCoerce
11+
fromEvent :: Event -> Maybe DragEvent
12+
fromEvent = unsafeReadProtoTagged "DragEvent"
1213

13-
readDragEvent :: Foreign -> F DragEvent
14-
readDragEvent = unsafeReadTagged "DragEvent"
14+
toEvent :: DragEvent -> Event
15+
toEvent = unsafeCoerce
1516

1617
foreign import dataTransfer :: DragEvent -> DataTransfer

src/Web/HTML/Event/ErrorEvent.purs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
module Web.HTML.Event.ErrorEvent where
22

3-
import Foreign (F, Foreign, unsafeReadTagged)
3+
import Data.Maybe (Maybe)
44
import Unsafe.Coerce (unsafeCoerce)
55
import Web.Event.Event (Event)
6+
import Web.Internal.FFI (unsafeReadProtoTagged)
67

78
foreign import data ErrorEvent :: Type
89

10+
fromEvent :: Event -> Maybe ErrorEvent
11+
fromEvent = unsafeReadProtoTagged "ErrorEvent"
12+
913
toEvent :: ErrorEvent -> Event
1014
toEvent = unsafeCoerce
1115

12-
read :: Foreign -> F ErrorEvent
13-
read = unsafeReadTagged "ErrorEvent"
14-
1516
foreign import message :: ErrorEvent -> String
1617

1718
foreign import fileName :: ErrorEvent -> String

src/Web/HTML/Event/EventTypes.purs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,45 @@ module Web.HTML.Event.EventTypes where
22

33
import Web.Event.Event (EventType(..))
44

5+
abort :: EventType
6+
abort = EventType "abort"
7+
8+
afterprint :: EventType
9+
afterprint = EventType "afterprint"
10+
11+
afterscriptexecute :: EventType
12+
afterscriptexecute = EventType "afterscriptexecute"
13+
14+
beforeprint :: EventType
15+
beforeprint = EventType "beforeprint"
16+
17+
beforescriptexecute :: EventType
18+
beforescriptexecute = EventType "beforescriptexecute"
19+
520
blur :: EventType
621
blur = EventType "blur"
722

23+
cancel :: EventType
24+
cancel = EventType "cancel"
25+
826
change :: EventType
927
change = EventType "change"
1028

1129
click :: EventType
1230
click = EventType "click"
1331

32+
close :: EventType
33+
close = EventType "close"
34+
1435
copy :: EventType
1536
copy = EventType "copy"
1637

1738
cut :: EventType
1839
cut = EventType "cut"
1940

41+
domcontentloaded :: EventType
42+
domcontentloaded = EventType "DOMContentLoaded"
43+
2044
error :: EventType
2145
error = EventType "error"
2246

@@ -35,6 +59,15 @@ languagechange = EventType "languagechange"
3559
load :: EventType
3660
load = EventType "load"
3761

62+
loadend :: EventType
63+
loadend = EventType "loadend"
64+
65+
loadstart :: EventType
66+
loadstart = EventType "loadstart"
67+
68+
message :: EventType
69+
message = EventType "message"
70+
3871
offline :: EventType
3972
offline = EventType "offline"
4073

@@ -44,5 +77,26 @@ online = EventType "online"
4477
paste :: EventType
4578
paste = EventType "paste"
4679

80+
progress :: EventType
81+
progress = EventType "progress"
82+
83+
readystatechange :: EventType
84+
readystatechange = EventType "readystatechange"
85+
86+
reset :: EventType
87+
reset = EventType "reset"
88+
4789
select :: EventType
4890
select = EventType "select"
91+
92+
storage :: EventType
93+
storage = EventType "storage"
94+
95+
submit :: EventType
96+
submit = EventType "submit"
97+
98+
toggle :: EventType
99+
toggle = EventType "toggle"
100+
101+
unload :: EventType
102+
unload = EventType "unload"
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
module Web.HTML.Event.HashChangeEvent where
22

3-
import Foreign (F, Foreign, unsafeReadTagged)
3+
import Data.Maybe (Maybe)
44
import Unsafe.Coerce (unsafeCoerce)
55
import Web.Event.Event (Event)
6+
import Web.Internal.FFI (unsafeReadProtoTagged)
67

78
foreign import data HashChangeEvent :: Type
89

10+
fromEvent :: Event -> Maybe HashChangeEvent
11+
fromEvent = unsafeReadProtoTagged "HashChangeEvent"
12+
913
toEvent :: HashChangeEvent -> Event
1014
toEvent = unsafeCoerce
1115

12-
read :: Foreign -> F HashChangeEvent
13-
read = unsafeReadTagged "HashChangeEvent"
14-
1516
foreign import oldURL :: HashChangeEvent -> String
1617

1718
foreign import newURL :: HashChangeEvent -> String
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module Web.HTML.Event.HashChangeEvent.EventTypes where
2+
3+
import Web.Event.Event (EventType(..))
4+
5+
hashchange :: EventType
6+
hashchange = EventType "hashchange"
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
module Web.HTML.Event.PageTransitionEvent where
22

3-
import Foreign (F, Foreign, unsafeReadTagged)
3+
import Data.Maybe (Maybe)
44
import Unsafe.Coerce (unsafeCoerce)
55
import Web.Event.Event (Event)
6+
import Web.Internal.FFI (unsafeReadProtoTagged)
67

78
foreign import data PageTransitionEvent :: Type
89

10+
fromEvent :: Event -> Maybe PageTransitionEvent
11+
fromEvent = unsafeReadProtoTagged "PageTransitionEvent"
12+
913
toEvent :: PageTransitionEvent -> Event
1014
toEvent = unsafeCoerce
1115

12-
read :: Foreign -> F PageTransitionEvent
13-
read = unsafeReadTagged "PageTransitionEvent"
14-
1516
foreign import persisted :: PageTransitionEvent -> Boolean
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module Web.HTML.Event.PageTransitionEvent.EventTypes where
2+
3+
import Web.Event.Event (EventType(..))
4+
5+
pagehide :: EventType
6+
pagehide = EventType "pagehide"
7+
8+
pageshow :: EventType
9+
pageshow = EventType "pageshow"

src/Web/HTML/Event/PopStateEvent.purs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
module Web.HTML.Event.PopStateEvent where
22

3-
import Foreign (F, Foreign, unsafeReadTagged)
3+
import Data.Maybe (Maybe)
4+
import Foreign (Foreign)
45
import Unsafe.Coerce (unsafeCoerce)
56
import Web.Event.Event (Event)
7+
import Web.Internal.FFI (unsafeReadProtoTagged)
68

79
foreign import data PopStateEvent :: Type
810

11+
fromEvent :: Event -> Maybe PopStateEvent
12+
fromEvent = unsafeReadProtoTagged "PopStateEvent"
13+
914
toEvent :: PopStateEvent -> Event
1015
toEvent = unsafeCoerce
1116

12-
read :: Foreign -> F PopStateEvent
13-
read = unsafeReadTagged "PopStateEvent"
14-
1517
foreign import state :: PopStateEvent -> Foreign
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module Web.HTML.Event.PopStateEvent.EventTypes where
2+
3+
import Web.Event.Event (EventType(..))
4+
5+
popstate :: EventType
6+
popstate = EventType "popstate"

src/Web/HTML/Event/TrackEvent.purs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
module Web.HTML.Event.TrackEvent where
22

3-
import Foreign (Foreign, F, unsafeReadTagged)
3+
import Data.Maybe (Maybe)
44
import Unsafe.Coerce (unsafeCoerce)
55
import Web.Event.Event (Event)
6+
import Web.Internal.FFI (unsafeReadProtoTagged)
67

78
foreign import data TrackEvent :: Type
89

10+
fromEvent :: Event -> Maybe TrackEvent
11+
fromEvent = unsafeReadProtoTagged "TrackEvent"
12+
913
toEvent :: TrackEvent -> Event
1014
toEvent = unsafeCoerce
1115

12-
read :: Foreign -> F TrackEvent
13-
read = unsafeReadTagged "TrackEvent"
14-
1516
-- readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module Web.HTML.Event.TrackEvent.EventTypes where
2+
3+
import Web.Event.Event (EventType(..))
4+
5+
addtrack :: EventType
6+
addtrack = EventType "addtrack"
7+
8+
removetrack :: EventType
9+
removetrack = EventType "removetrack"

src/Web/HTML/HTMLDetailsElement/EventTypes.purs

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/Web/HTML/HTMLDialogElement/EventTypes.purs

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/Web/HTML/HTMLDocument/EventTypes.purs

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/Web/HTML/HTMLFormElement/EventTypes.purs

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/Web/HTML/HTMLImageElement/EventTypes.purs

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/Web/HTML/HTMLScriptElement/EventTypes.purs

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/Web/HTML/Window/EventTypes.purs

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)