1open Wonka_types;
2
3let fromPromise = promise => curry(sink => {
4 let ended = ref(false);
5
6 ignore(Js.Promise.then_(value => {
7 if (!ended^) {
8 sink(.Push(value));
9 sink(.End);
10 };
11
12 Js.Promise.resolve(())
13 }, promise));
14
15 sink(.Start((.signal) => {
16 switch (signal) {
17 | Close => ended := true
18 | _ => ()
19 }
20 }));
21});