grapha

0.1.5 • Public • Published

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'); // ES5
import {Graph} from 'grapha'; // ES6 

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

Package Sidebar

Install

npm i grapha

Weekly Downloads

5

Version

0.1.5

License

MIT

Last publish

Collaborators

  • nowai