topograph

stores a graph of nodes and provides sorting and iteration

npm install topograph
8 downloads in the last month

topograph

Stores a graph of nodes and provides topological sorting. Basically just an OO API for toposort so you can build your graph incrementally.

Installation

With packin or component

$ packin add jkroso/graph

then in your app:

var graph = require('graph')

API

Graph()

Graph class

Graph.addNode(node)

add node if not already in the graph

Graph.addEdge(from, to)

add two nodes with a relationship

Graph.addRelationship(from, to)

add a relationship between two existing nodes

Graph.toArray()

convert to a topologically sorted array

Graph.clone()

clone this Graph

Example

new Graph(['c', 'a', 'd', 'b'])
  .addRelationship('a', 'b')
  .addRelationship('b', 'c')
  .addRelationship('c', 'd')
  .toArray() // => ['a', 'b', 'c', 'd']

Running the tests

Just run make and navigate your browser to the test directory.

npm loves you