Skip to content

Commit 08607b8

Browse files
committed
Lib: improve EventSource
1 parent 1576cee commit 08607b8

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

lib/eventSource.ml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,12 @@
2020

2121
(* https://developer.mozilla.org/en-US/docs/Web/API/EventSource *)
2222
open Js
23-
23+
open Dom
2424
type state =
2525
| CONNECTING
2626
| OPEN
2727
| CLOSED
2828

29-
3029
class type ['a] messageEvent = object
3130
inherit ['a] Dom.event
3231
method data : js_string t readonly_prop
@@ -35,19 +34,15 @@ class type ['a] messageEvent = object
3534
(* method source : unit *)
3635
end
3736

38-
39-
type ('a,'b) handler = ('a,'b -> unit) meth_callback
40-
let handler f = Js.wrap_callback f
4137
class type eventSource = object('self)
4238
method url : string t readonly_prop
4339
method withCredentials : bool t readonly_prop
4440
method readyState : state readonly_prop
4541
method close : unit meth
4642

47-
method onopen : ('self t, 'self messageEvent t) handler writeonly_prop
48-
method onmessage : ('self t, 'self messageEvent t) handler writeonly_prop
49-
method onerror : ('self t, 'self messageEvent t) handler writeonly_prop
50-
method addEventListener : js_string t -> ('self t, 'self messageEvent t) handler -> bool t -> unit meth
43+
method onopen : ('self t, 'self messageEvent t) event_listener writeonly_prop
44+
method onmessage : ('self t, 'self messageEvent t) event_listener writeonly_prop
45+
method onerror : ('self t, 'self messageEvent t) event_listener writeonly_prop
5146
end
5247

5348
class type options = object
@@ -61,3 +56,5 @@ let withCredentials b : options t =
6156

6257
let eventSource = Js.Unsafe.global##_EventSource
6358
let eventSource_options = Js.Unsafe.global##_EventSource
59+
60+
let addEventListener = Dom.addEventListener

lib/eventSource.mli

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,12 @@
1919

2020

2121
open Js
22-
22+
open Dom
2323
type state =
2424
| CONNECTING
2525
| OPEN
2626
| CLOSED
2727

28-
29-
type ('a,'b) handler
30-
3128
class type ['a] messageEvent = object
3229
inherit ['a] Dom.event
3330
method data : js_string t readonly_prop
@@ -42,17 +39,22 @@ class type eventSource = object('self)
4239
method readyState : state readonly_prop
4340
method close : unit meth
4441

45-
method onopen : ('self t, 'self messageEvent t) handler writeonly_prop
46-
method onmessage : ('self t, 'self messageEvent t) handler writeonly_prop
47-
method onerror : ('self t, 'self messageEvent t) handler writeonly_prop
48-
method addEventListener : js_string t -> ('self t, 'self messageEvent t) handler -> bool t -> unit meth
42+
method onopen : ('self t, 'self messageEvent t) event_listener writeonly_prop
43+
method onmessage : ('self t, 'self messageEvent t) event_listener writeonly_prop
44+
method onerror : ('self t, 'self messageEvent t) event_listener writeonly_prop
4945
end
5046

5147
class type options = object
5248
method withCredentials : bool t writeonly_prop
5349
end
5450

55-
val handler : ('this messageEvent t -> unit) -> ('this, 'this messageEvent t) handler
5651
val withCredentials : bool -> options t
5752
val eventSource : (js_string t -> eventSource t) constr
5853
val eventSource_options : (js_string t -> options t -> eventSource t) constr
54+
55+
val addEventListener :
56+
(#eventSource t as 'a) -> 'b Event.typ ->
57+
('a, 'b) event_listener -> bool t -> event_listener_id
58+
(** Add an event listener. This function matches the
59+
[addEventListener] DOM method, except that it returns
60+
an id for removing the listener. *)

0 commit comments

Comments
 (0)