From 0313c8c3f635752b649b00dcfc21922305b75190 Mon Sep 17 00:00:00 2001 From: Clombrong Date: Fri, 30 May 2025 14:37:16 +0200 Subject: feat!: new module Stream --- lib/dune | 4 +++- lib/flesh.ml | 1 + lib/stream.ml | 5 +++++ test/js/dune | 2 +- test/js/websockets_hello.ml | 14 ++++++-------- 5 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 lib/stream.ml diff --git a/lib/dune b/lib/dune index d79e297..957188c 100644 --- a/lib/dune +++ b/lib/dune @@ -1,3 +1,5 @@ (library (public_name flesh) - (libraries lwt)) + (libraries + lwt + portal)) diff --git a/lib/flesh.ml b/lib/flesh.ml index e69de29..8f4bd77 100644 --- a/lib/flesh.ml +++ b/lib/flesh.ml @@ -0,0 +1 @@ +module Stream = Stream diff --git a/lib/stream.ml b/lib/stream.ml new file mode 100644 index 0000000..29b6425 --- /dev/null +++ b/lib/stream.ml @@ -0,0 +1,5 @@ +open Lwt.Syntax + +let start domain : Portal.t Lwt.t = + let+ stream, push = Portal.connect domain + in stream, push diff --git a/test/js/dune b/test/js/dune index b34c980..f6cc084 100644 --- a/test/js/dune +++ b/test/js/dune @@ -1,6 +1,6 @@ (test (name websockets_hello) - (libraries portal_ws lwt js_of_ocaml) + (libraries portal_ws lwt js_of_ocaml flesh) (modes js) (preprocess (pps js_of_ocaml-ppx)) (deps node_modules) diff --git a/test/js/websockets_hello.ml b/test/js/websockets_hello.ml index 5705dc9..6bc863b 100644 --- a/test/js/websockets_hello.ml +++ b/test/js/websockets_hello.ml @@ -1,5 +1,6 @@ open Lwt.Syntax open Js_of_ocaml +open Flesh (* https://stackoverflow.com/questions/34929382/what-are-the-differences-between-lwt-async-and-lwt-main-run-on-ocaml-node-js *) let rec run t = @@ -18,11 +19,8 @@ let rec run t = let () = run @@ let domain = "egregore.fun" in - let* stream, push = - Portal.connect domain in - push (Some (Portal.stanza_open domain)); - push (Some Portal.stanza_close); - Lwt_stream.iter - (fun stanza -> - print_endline (">>> " ^ stanza)) - stream + let* stream, push = Stream.start domain + in push (Some (Portal.stanza_open domain)); + let+ opens = Lwt_stream.get stream + in print_endline (Option.get opens); + push (Some (Portal.stanza_close)) -- cgit v1.2.3