Skip to main content

GraphToMermaid

Export your graph to Mermaid flowchart syntax.

Import

import { GraphToMermaid } from 'grafio';

fromGraph()

static async fromGraph(graph: Graph, options?: MermaidOptions): Promise<GraphToMermaid>

Create a GraphToMermaid instance from a Graph.

Parameters:

NameTypeRequiredDescription
graphGraphSource graph
optionsMermaidOptionsMermaid options

Constructor

constructor(data: string | GraphData)

Create from JSON (synchronous).

Parameters:

NameTypeRequiredDescription
datastring | GraphDataJSON string or GraphData object

toString()

toString(): string

Returns the Mermaid flowchart definition.

Options

interface MermaidOptions {
showProperties?: boolean; // default: false
includeEdgeLabels?: boolean; // default: true
direction?: 'TD' | 'LR'; // default: 'TD'
}

Examples

Basic Usage

import { InMemoryGraphFactory, GraphToMermaid } from 'grafio';

const factory = new InMemoryGraphFactory();
const graph = factory.forGraph('default');
const alice = await graph.addNode('Person', { name: 'Alice' });
const bob = await graph.addNode('Person', { name: 'Bob' });
await graph.addEdge(alice.id, bob.id, 'KNOWS');

const mermaid = await GraphToMermaid.fromGraph(graph);
console.log(mermaid.toString());

Output:

With Properties

const mermaid = await GraphToMermaid.fromGraph(graph, {
showProperties: true
});
/*
flowchart TD
abc123["Person | name: Alice"]
def456["Person | name: Bob"]
abc123 -->|"KNOWS"| def456
*/

Left-Right Direction

const mermaid = await GraphToMermaid.fromGraph(graph, {
direction: 'LR'
});
/*
flowchart LR
...
*/

From JSON

const json = await graph.exportJSON();
const mermaid = new GraphToMermaid(JSON.stringify(json));
// or
const mermaid2 = new GraphToMermaid(json);

Rendering

Copy the output to:

Next Steps