| 123456789101112131415161718192021 |
- import Edge from "../../../graph/Edge.js";
- import Graph from "../../../graph/Graph.js";
- import Node from "../../../graph/Node.js";
- import { JsonSerializer } from "./JsonSerializer.js";
- type NodeJson = { id: string, x: number, y: number };
- type EdgeJson = { id: string, from: NodeJson["id"], to: NodeJson["id"] };
- type GraphJson = { nodes: NodeJson[], edges: EdgeJson[] };
- export default class GraphJsonSerializer implements JsonSerializer<Graph<Node, Edge<Node>>> {
- serialize(data: Graph<Node, Edge<Node>>): string {
- const graphJson: GraphJson = {
- nodes: data.getNodes().map((node) => { return { id: node.id, x: node.x, y: node.y } }),
- edges: data.getEdges().map((edge) => {
- return { id: edge.id, from: edge.from, to: edge.to };
- })
- }
- return JSON.stringify(graphJson);
- }
- }
|