Add graphviz 0.0.8

This commit is contained in:
mfrantz
2015-01-26 16:48:37 -08:00
parent 5f48028783
commit 78fa892dc8
2 changed files with 119 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
///<reference path="graphviz.d.ts"/>
import graphviz = require('graphviz');
// Create digraph G
var g: graphviz.Graph = graphviz.digraph("G");
// Add node (ID: Hello)
var n1: graphviz.Node = g.addNode( "Hello", {"color" : "blue"} );
n1.set( "style", "filled" );
// Add node (ID: World)
g.addNode( "World" );
// Add edge between the two nodes
var e: graphviz.Edge = g.addEdge( n1, "World" );
e.set( "color", "red" );
// Print the dot script
console.log( g.to_dot() );
// Set GraphViz path (if not in your path)
g.setGraphVizPath( "/usr/local/bin" );
// Generate a PNG output
g.output( "png", "test01.png" );

93
graphviz/graphviz.d.ts vendored Normal file
View File

@@ -0,0 +1,93 @@
// Type definitions for Graphviz 0.0.8
// Project: git://github.com/glejeune/node-graphviz.git
// Definitions by: Matt Frantz <https://github.com/mhfrantz/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
// graphviz.d.ts
declare module 'graphviz' {
export interface HasAttributes {
set(name: string, value: any): void;
get(name: string): any;
}
export interface Node extends HasAttributes {
}
export interface Edge extends HasAttributes {
}
export interface OutputCallback {
(data: string): void;
}
export interface ErrorCallback {
(code: number, stdout: string, stderr: string): void;
}
export interface RenderOptions {
type: string; // output file type (png, jpeg, ps, ...)
use: string; // Graphviz command to use (dot, neato, ...)
path: string; // GraphViz path
G: any; // graph options
N: any; // node options
E: any; // edge options
}
export interface Graph extends HasAttributes {
addNode(id: string, attrs?: any): Node;
nodeCount(): number;
// TODO: Use union types when we have TS 1.4
addEdge(nodeOne: string, nodeTwo: string, attrs?: any): Edge;
addEdge(nodeOne: string, nodeTwo: Node, attrs?: any): Edge;
addEdge(nodeOne: Node, nodeTwo: string, attrs?: any): Edge;
addEdge(nodeOne: Node, nodeTwo: Node, attrs?: any): Edge;
edgeCount(): number;
// Subgraph (cluster) API
addCluster(id: string): Graph;
getCluster(id: string): Graph;
clusterCount(): number;
setNodeAttribut(name: string, value: any): void;
getNodeAttribut(name: string): any;
setEdgeAttribut(name: string, value: any): void;
getEdgeAttribut(name: string): any;
to_dot(): string;
// Graphviz command to use (dot, neato, ...)
use: string;
// Path containing Graphviz binaries.
setGraphVizPath(directoryPath: string): void;
// TODO: Use union types when we can have TS 1.4
render(type: string, filename: string, errback?: ErrorCallback): void;
render(options: RenderOptions, filename: string, errback?: ErrorCallback): void;
render(type: string, callback: OutputCallback, errback?: ErrorCallback): void;
render(options: RenderOptions, callback: OutputCallback, errback?: ErrorCallback): void;
// alias for render
output(type: string, filename: string, errback?: ErrorCallback): void;
output(options: RenderOptions, filename: string, errback?: ErrorCallback): void;
output(type: string, callback: OutputCallback, errback?: ErrorCallback): void;
output(options: RenderOptions, callback: OutputCallback, errback?: ErrorCallback): void;
}
export function graph(id: string): Graph;
export function digraph(id: string): Graph;
interface ParseCallback {
(graph: Graph): void;
}
export function parse(path: string, callback: ParseCallback, errback?: ErrorCallback): void;
}