From 77544bdfad2af41514ec1435f706fee87ea2969e Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Mon, 7 Feb 2022 15:38:37 +0100 Subject: Added viz.js code --- viz.js/process/process.ml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 viz.js/process/process.ml (limited to 'viz.js/process/process.ml') diff --git a/viz.js/process/process.ml b/viz.js/process/process.ml new file mode 100755 index 0000000..ef23b78 --- /dev/null +++ b/viz.js/process/process.ml @@ -0,0 +1,29 @@ +open Js_of_ocaml + +class type viz = object + (* PNG output *) + method renderImageElement: Js.js_string Js.t -> (Dom_html.imageElement Js.t, unit) Promise.promise Js.meth + (* SVG output *) + method renderSVGElement: Js.js_string Js.t -> (Dom_svg.svgElement Js.t, unit) Promise.promise Js.meth + + method renderString: Js.js_string Js.t -> (Js.js_string Js.t, unit) Promise.promise Js.meth +end + +type t = Js.js_string Js.t * Js.js_string Js.t + +let do_action + : viz Js.t -> Js.js_string Js.t -> (unit, unit) Promise.promise + = fun v text -> + + if text##.length != 0 then ( + let gv = Formatter.convert text in + let promise = + (try v##renderString gv + with _ -> Promise.reject () + ) in + Promise.then_map + ~on_fulfilled:(fun svg -> Worker.post_message ((gv, svg):t)) + ~on_rejected:(fun _ -> ()) + promise + ) else + Promise.reject () -- cgit v1.2.3