Generic graph structure with ascetic API.
Usage
var Graph = ; //create from a set of nodesvar graph = a b c; //create from a set of connected nodesgraph = a b b a a c ...; //create from the other graph (clone)graph = graph; //add nodegraph; //delete and disconnect a nodegraph; //remove all nodes with their connectionsgraphclear; //test whether node existsgraph; //iterate over all nodesgraph; //connect node a to b, b to cgraph; //disconnect node b from a, or from all output nodes, if undefined//if you need to disconnect all inputs, use `delete(a)` and then `add(a)`.graph
Principles
- Tolstoy does not provide a framework of graph calculations, or rendering facilities — the whole purpose of the project is to provide maximally minimal familiar structure to work with graphs, providing minimally possible set of methods.
- Tolstoy does not try to purport the theoretical purity in sense of directed/undirected/multi/simple graph etc. It provides a basic tiny class to extend on demand to implement any kind of graph-like structure.
- Tolstoy uses ES6 structures beneath, so you may need to polyfill them with babel etc.
- API is as close as possible to native structures like Map, Set. Structures should be felt naturally.
- Tolstoy is a temporary solution, akin to xtend, till there is no native implementation of Graph in node/browsers. As only there is one, tolstoy is going to be replaced with polyfill.