Grapha.js
A tiny ES6 Graph library
Installing
You can install this library by either importing the library locally or using npm
.
To install it locally include the minified ES5 file lib/grapha.min.js
or the ES6 file lib/grapha.js
.
To install it using npm, run the following command:
npm install grapha
To use it in your code:
var Graph = require('grapha');
import {Graph} from 'grapha';
Examples
API
Creating a Graph instance
# Graph([config])
Returns a new instance of a Graph. If no configuration object is provided, the graph will be directed
and the Edges will be unweighted
.
const config = {
'isWeighted': false,
'isDirected': true
}
let graph = new Graph(config);
Adding and Removing Nodes
# graph.addNode(node)
Adds a node to the graph. Does nothing if the node is already in the graph.
# graph.removeNode(node)
Removes a node from the graph. All edges referencing the node will be removed. Does nothing if the node is not in the graph.
Adding and Removing Edges
# graph.addEdge(u, v ,[weight])
Adds an edge from node u
to v
with an optional weight
to the graph. If either u
or v
are not in the graph, an Error
will be thrown. If the graph is undirected
the edge will be between nodes u
and v
.
# graph.removeNode(edge)
If an edge from u
to v
exist, it will be removed from the graph. If the graph is undirected
the edge between u
and v
will be removed.
Serialization
# Graph.serialize(json)
A static function returning the graph specified by the json
object.
const json = {
"nodes": [
{"id": "1"},
{"id": "2"},
{"id": "3"}
],
"links": [
{"source": "1", "target": "2"}
{"source": "3", "target": "1"}
]
};
let graph = Graph.serialize(json);
# graph.deserialize()
Returns a json
object representing the graph with its nodes and its edges.
Search
# graph.DFS(node)
Returns all reachable nodes from node
in the order of depth first search with its respective discovery node.
License
MIT: Copyright 2017 Florian Marienwald