1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
open Ast
open Builder_utils
let write_dag (p : Ast.pipeline_result) =
let nodes_json =
List.map (fun (name, _) ->
let deps = match List.assoc_opt name p.p_deps with Some d -> d | None -> [] in
let entries = [
("node_name", "\"" ^ Serialization.json_escape name ^ "\"");
("depends", Serialization.json_list deps)
] in
Serialization.json_dict entries
) p.p_exprs
in
let dag_json = "[\n" ^ (String.concat ",\n" nodes_json) ^ "\n]" in
write_file dag_path dag_json