Graph
Graph copied to clipboard
Provides "jQuery-like" functionality for graph structures.
Graph
A micro-library that provides "jQuery-like" functionality for graph structures in JavaScript.
License
This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International
license.
Contributing
Please make contributions by forking the project and creating a pull-request. Other contributions include maintaining the Wiki and issues.
Documentation
1 Installation
1.1 Browser
Reference the raw Github version of release.min.js in your code.
Graph is compatible with requireJS and can be used by wrapping your code in the following block:
require(['graph'], function (graph) {
// Your code.
});
1.2 Node
Graph is also available as a node package called "micro-graph". You can install it to your local repository using npm install micro-graph --save-dev
and you can use the library with node by using var graph = require("micro-graph").graph;
in your JavaScript file.
1.3 Versioning
This project is maintained under the semantic versioning guidlines. This means that releases will have the following format <major>.<minor>.<patch>
.
- Breaking backward compatibility bumps the major (and resets the minor and patch).
- New additions without breaking backward compatibility bumps the minor (and resets the patch).
- Bug fixes and misc changes bumps the patch.
2 Getting Started
To create a new graph, use the global "graph" function.
graph(nodes[, options]);
Arguments
- {Array} nodes: An array of nodes.
- {Object} options: A object containing options that change the configuration of the graph.
- {String} parentsKey: Sets the key to be used for finding parents. Defaults to
"parents"
. - {String} childrenKey: Sets the key to be used for finding children. Defaults to
"children"
.
- {String} parentsKey: Sets the key to be used for finding parents. Defaults to
Returns
{Object} graph: A structure that can be manipulated like a graph.
3 Methods
3.1 children
Finds the descendants of the nodes in the graph.
graph(nodes, options).children([fn, generations]);
Arguments
- {Function} fn: A function that returns true for nodes that should be returned.
- {Number} generations: The number of generations to search through (search depth).
Returns
{Object} graph: A structure that can be manipulated like a graph.
3.2 parents
Finds the ancestors of the nodes in the graph.
graph(nodes, options).parents([fn, generations]);
Arguments
- {Function} fn: A function that returns true for nodes that should be returned.
- {Number} generations: The number of generations to search through (search depth).
Returns
{Object} graph: A structure that can be manipulated like a graph.
3.3 addChildren
Adds children to the nodes in the graph.
graph(nodes, options).addChildren(children);
Arguments
- {Array} children: An array of nodes to be added as children.
Returns
{Object} graph: A structure that can be manipulated like a graph.
3.4 addParents
Adds parents to the nodes in the graph.
graph(nodes, options).addParents(parents);
Arguments
- {Array} parents: An array of nodes to be added as parents.
Returns
{Object} graph: A structure that can be manipulated like a graph.
3.5 removeChildren
Removes children from the nodes in the graph.
graph(nodes, options).removeChildren([children]);
Arguments
- {Array} children: An array of nodes to be removed as children.
Returns
{Object} graph: A structure that can be manipulated like a graph.
3.6 removeParents
Removes parents from the nodes in the graph.
graph(nodes, options).removeParents([parents]);
Arguments
- {Array} parents: An array of nodes to be removed as parents.
Returns
{Object} graph: A structure that can be manipulated like a graph.
3.7 filter
Filters out nodes in graph.
graph(nodes, options).filter([fn]);
Arguments
- {Function} fn: A function that returns true for nodes that should be returned.
Returns
{Object} graph: A structure that can be manipulated like a graph.
3.8 nodes
Returns the array of nodes in the graph.
graph(nodes, options).nodes();
Arguments
None.
Returns
{Array} nodes: An array of nodes.