Skip to content
This repository

Provides "jQuery-like" functionality for graph structures.

branch: master
README.md

Graph

A micro-library that provides "jQuery-like" functionality for graph structures in JavaScript.

Build Status

License
This work is licensed under a MIT 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.
    • {String} childrenKey: Sets the key to be used for finding children.

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).removeChildren([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.

Something went wrong with that request. Please try again.