UNPKG

d3-graph-controller

Version:

A TypeScript library for visualizing and simulating directed, interactive graphs.

25 lines (24 loc) 906 B
import { GraphLink } from './link.mjs'; import { GraphNode } from './node.mjs'; /** * Type token for nodes. */ export type NodeTypeToken = string; /** * Graph containing nodes and links. */ export interface Graph<T extends NodeTypeToken = NodeTypeToken, Node extends GraphNode<T> = GraphNode<T>, Link extends GraphLink<T, Node> = GraphLink<T, Node>> { /** * The nodes of the graph. */ readonly nodes: Node[]; /** * The links of the graph. */ readonly links: Link[]; } /** * Define a graph with type inference. * @param data - The nodes and links of the graph. If either are omitted, they default to an empty array. */ export declare function defineGraph<T extends NodeTypeToken = NodeTypeToken, Node extends GraphNode<T> = GraphNode<T>, Link extends GraphLink<T, Node> = GraphLink<T, Node>>({ nodes, links }: Partial<Graph<T, Node, Link>>): Graph<T, Node, Link>;