@arnau/bs-dagre
v0.4.3
Published
[BuckleScript](https://bucklescript.github.io) bindings for [dagre](https://github.com/dagrejs/dagre).
Downloads
27
Maintainers
Readme
bs-dagre
BuckleScript bindings for dagre.
Status
Naming and organisation
Although most names come straight from the original library, there are a few changes to adapt to Reason and a few aliases for my own benefit.
- Bindings for
graphlib
ara under theDagre.Graph
module. - Bindings for
dagre
are under theDagre.Layout
module. graphlib
uses "label" to refer to data associated with graph, nodes and edges.bs-dagre
uses "attributes" instead. For example, instead ofsetDefaultNodeLabel
you havesetDefaultNodeAttrs
.
Usage
The steps to compute a graph layout are: create a graph, add nodes and edges and finally create a layout.
Crate a graph
open Dagre;
let graph = Graph.make();
Graph.setDefaultEdgeAttrs(graph, () => {"minlen": 2});
The snippet above creates a graph with default attributes,
if you need to tweak them, use Graph.Attrs.make
.
Add nodes and edges
Graph.setNodeWith(graph, "a", Node.attrs(~label="first", ~width=20, ~height=20), ());
Graph.setNodeWith(graph, "b", Node.attrs(~label="second", ~width=20, ~height=20), ());
Graph.setEdge(graph, Edge.t(~v="a", ~w="b", ()));
Create a layout
let layout = Layout.make(graph);
// Use the layout to render the graph.
Check the examples
for more.
License
bs-dagre is licensed under the terms of the MIT License. See the LICENSE file for details.