UNPKG

ngraph.fromjson

Version:

Library to load graph from simple json format

44 lines (33 loc) 1.16 kB
module.exports = load; var createGraph = require('ngraph.graph'); function load(jsonGraph, nodeTransform, linkTransform) { var stored; nodeTransform = nodeTransform || id; linkTransform = linkTransform || id; if (typeof jsonGraph === 'string') { stored = JSON.parse(jsonGraph); } else { stored = jsonGraph; } var graph = createGraph(), i; if (stored.links === undefined || stored.nodes === undefined) { throw new Error('Cannot load graph without links and nodes'); } for (i = 0; i < stored.nodes.length; ++i) { var parsedNode = nodeTransform(stored.nodes[i]); if (!parsedNode.hasOwnProperty('id')) { throw new Error('Graph node format is invalid: Node id is missing'); } graph.addNode(parsedNode.id, parsedNode.data); } for (i = 0; i < stored.links.length; ++i) { var link = linkTransform(stored.links[i]); if (!link.hasOwnProperty('fromId') || !link.hasOwnProperty('toId')) { throw new Error('Graph link format is invalid. Both fromId and toId are required'); } graph.addLink(link.fromId, link.toId, link.data); } return graph; } function id(x) { return x; }