async-dependency-graph
Version:
A dependency graph that can traverse asynchronous nodes.
69 lines (68 loc) • 1.82 kB
TypeScript
import { Node } from './node';
/**
* Base dependency graph class.
*/
export declare class Graph {
private nodes;
private outgoingEdges;
private incomingEdges;
/**
* Add a node to the graph.
* @param node Node object.
*/
private ensureNode;
/**
* Remove a node from the graph.
* @param node Node instance.
*/
removeNode(node: Node): void;
/**
* Checks to see if the graph contains a Node.
* @param node Node instance.
*/
hasNode(node: Node): boolean;
/**
* Returns the number of nodes in a graph.
*/
get size(): number;
/**
* Adds a node dependence. "from" is dependent on "to"
* @param from Node instance.
* @param to Node instance.
*/
addDependency(from: Node, to: Node): void;
/**
* Removes a node dependence. "from" is no longer dependent on "to".
* @param from Node instance.
* @param to Node instance.
* @todo Test this function.
*/
removeDependency(from: Node, to: Node): void;
/**
* Get dependency nodes for a Node. (Required nodes for this node to execute).
* @param node Node instance.
*/
dependenciesOf(node: Node): Node[];
/**
* Get dependents nodes for a Node. (Nodes that require this node to complete).
* @param node Node instance.
*/
dependentsOf(node: Node): Node[];
/**
* Breadth first search.
*/
traverse(): Promise<void>;
/**
* Clears the value of a node and the values of dependent nodes
* @param node Node instance.
*/
clearNodeAndDependents(node: Node): Promise<void>;
/**
* Resets the graph by resetting each node in the graph.
*/
reset(): void;
/**
* Prints graph nodes and node dependents.
*/
ls(): void;
}