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.
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.
});
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Returns the array of nodes in the graph.
graph(nodes, options).nodes();
Arguments
None.
Returns
{Array} nodes: An array of nodes.