UNPKG

async-dependency-graph

Version:

A dependency graph that can traverse asynchronous nodes.

69 lines (68 loc) 1.82 kB
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; }