Serialization
Export and import your graph data as JSON.
Export to JSON
const data = await graph.exportJSON();
// Returns GraphData object
GraphData Structure
interface GraphData {
nodes: NodeData[];
edges: EdgeData[];
}
interface NodeData {
id: string;
type: string;
properties: Record<string, Primitive>;
}
interface EdgeData {
id: string;
sourceId: string;
targetId: string;
type: string;
properties: Record<string, Primitive>;
}
Import from JSON
Static Factory Method
const graph = await Graph.importJSON(data);
With Custom Storage Provider
const provider = new InMemoryStorageProvider({ graphId: 'backup' });
const graph = await Graph.importJSON(data, provider);
Use Cases
Backup and Restore
// Backup
const backup = await graph.exportJSON();
saveToFile(backup);
// Restore
const restored = await Graph.importJSON(backup);
Data Migration
// Export from one storage
const data = await oldGraph.exportJSON();
// Import to different storage
const newGraph = await Graph.importJSON(data, new MongoStorageProvider(config));
Testing
const testData = require('./test-graph.json');
const graph = await Graph.importJSON(testData);
// Fresh graph for each test
Complete Example
import { InMemoryGraphFactory } from 'grafio';
const factory = new InMemoryGraphFactory();
const graph = factory.forGraph('default');
// Build graph
const alice = await graph.addNode('Person', { name: 'Alice' });
const bob = await graph.addNode('Person', { name: 'Bob' });
await graph.addEdge(alice.id, bob.id, 'KNOWS');
// Export
const json = await graph.exportJSON();
console.log(JSON.stringify(json, null, 2));
/*
{
"nodes": [
{ "id": "abc123", "type": "Person", "properties": { "name": "Alice" } },
{ "id": "def456", "type": "Person", "properties": { "name": "Bob" } }
],
"edges": [
{ "id": "ghi789", "sourceId": "abc123", "targetId": "def456", "type": "KNOWS", "properties": {} }
]
}
*/
// Import to new graph
const newGraph = await Graph.importJSON(json);
const count = await newGraph.getNodes().length;
console.log(count); // 2
GraphToMermaid Export
Export as Mermaid flowchart syntax:
import { GraphToMermaid } from 'grafio';
const mermaid = await GraphToMermaid.fromGraph(graph);
console.log(mermaid.toString());
/*
flowchart TD
abc123["Person | abc123"]
def456["Person | def456"]
abc123 -->|"KNOWS"| def456
*/
Mermaid Options
const mermaid = await GraphToMermaid.fromGraph(graph, {
showProperties: true, // Include property values
includeEdgeLabels: true, // Show edge types (default: true)
direction: 'LR' // 'TD' (top-down) or 'LR' (left-right)
});
Next Steps
- Visualization — graph diagram generation
- API Reference — export/import methods
- API Reference — Mermaid API