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>> { serialize(data: Graph>): 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); } }