A wrapper of dotparser to parse GraphViz dot file and collect nodes / edges

dotparser-normalized

A wrapper of dotparser to parse GraphViz dot file and collect nodes / edges.

This library parses dot with dotparser, and collect nodes and edges in usable structure.

Originally this was made to use in my project reagram. And also may be useful to get structured data from dot to render in some libraries like React Flow.

Install

npm install dotparser-normalized

Usage

import { parse } from "dotparser-normalized";

const data = parse(`
digraph G {

	subgraph cluster_0 {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		a0 -> a1 -> a2 -> a3;
		label = "process #1";
	}

	subgraph cluster_1 {
		node [style=filled];
		b0 -> b1 -> b2 -> b3;
		label = "process #2";
		color=blue
	}
	start -> a0;
	start -> b0;
	a1 -> b3;
	b2 -> a3;
	a3 -> a0;
	a3 -> end;
	b3 -> end;

	start [shape=Mdiamond];
	end [shape=Msquare];
}
`);

console.log(data);