/
Graph.ts
32 lines (31 loc) · 1.14 KB
/
Graph.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { DataFrame } from '../data/DataFrame';
import { Edge } from './Edge';
import { GraphNode } from './_internal/GraphNode';
export interface Graph<In extends DataFrame, Out extends DataFrame> extends GraphNode<In, Out> {
internalSink: GraphNode<any, any>;
internalSource: GraphNode<any, any>;
edges: Array<Edge<any>>;
nodes: Array<GraphNode<any, any>>;
/**
* Find a node by its identifier
* @param {string} uid Node identifier
* @returns {GraphNode<any, any>} Graph node
*/
findNodeByUID(uid: string): GraphNode<any, any>;
/**
* Find a node by its name
* @param {string} name Node name
* @returns {GraphNode<any, any>} Graph node
*/
findNodeByName(name: string): GraphNode<any, any>;
/**
* Find an edge by the identifiers of its inlet and outlet
* @param {string} inlet Node uid of inlet
* @param {string} outlet Node uid of outlet
*/
findEdge(inlet: string, outlet: string): Edge<any>;
addNode(node: GraphNode<any, any>): void;
addEdge(edge: Edge<any>): void;
deleteEdge(edge: Edge<any>): void;
deleteNode(node: GraphNode<any, any>): void;
}