JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 386
  • Score
    100M100P100Q87825F
  • License Apache-2.0

A library for modeling and traversing graphs

Package Exports

  • cleargraph

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cleargraph) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Cleargraph

Cleargraph is a graph library extending Graphlib's functionality. It adds:

  • An abstraction over graphs that supports generic data types
  • Traversal over successors and predecessors
  • Use of user-defined filters on nodes and edges information and traversal
  • Strictly-typed implementation

Getting started

The nodes and edges in the graph are represented by key-value pairs where the keys are strings, and the generics N and E represent the node value and edge value respectively.

When instantiating the graph, specify the values of N and E, and decide on the type of connections between the nodes using the directed and multigraph params.

  • directed: set to true to get a directed graph and false to get an undirected graph. An undirected graph does not treat the order of nodes in an edge as significant. In other words, g.edge("a", "b") === g.edge("b", "a") for an undirected graph. Default: true.

  • multigraph: set to true to allow a graph to have multiple edges between the same pair of nodes. Default: true.

type NodeData = { name: string, radius: number}
type EdgeData = { relationType: string, proximity: number}

let g = new Graph<NodeData, EdgeData>() // by default this will create a directed graph that allows multi-edges

g.setNode(name: "earth", radius: 6371 );
g.setNode(name: "moon", radius: 1737);
g.setNode(name: "sun", radius: 696340);
g.setEdge("moon", "earth", { relationType: 'orbits', proximity: 384400 });
g.setEdge("earth", "sun", { relationType: 'orbits', proximity: 147240000 });

Installation

npm install cleargraph

Contributing

Contributions are always welcome, no matter how large or small.

License

Apache license, version 2.0