Class: Traverser

Traverser

new Traverser(optionsopt)

Helper for traversing a Graph from a given Node.

Parameters:
Name Type Attributes Description
options Object <optional>
Properties
Name Type Attributes Default Description
onlyNodeTypes Array.<NodeType> <optional>

only traverse Nodes of this type.

onlyEdgeTypes Array.<EdgeType> <optional>

only traverse Edges of this type.

excludeNodeTypes Array.<NodeType> <optional>

don't traverse Nodes of this type.

excludeEdgeTypes Array.<EdgeType> <optional>

don't traverse Edges of this type.

maxDepth Number <optional>
Infinity

max distance of nodes from the root node to visit.

allowLoops Boolean <optional>
False

traverse Edges that have already been traversed. WARNING: will cause infinite loops unless special effort is taken to prevent them (e.g. with maxDepth or shouldVisit(Node|Edge).

shouldVisitNode Traverser.ShouldVisitNodeCb <optional>

function to determine if a node should be visited.

shouldTraverseEdge Traverser.ShouldTraverseEdgeCb <optional>

function to determine if a edge should be traversed.

onVisitNode Traverser.OnVisitNodeCb <optional>

callback called when a node is visited.

onTraverseEdge Traverser.OnTraverseEdgeCb <optional>

callback called when an edge is traversed.

Members

allowLoops :Boolean

Type:
  • Boolean

(nullable) excludeEdgeTypes :Object.<EdgeType, EdgeType>

Type:

(nullable) excludeNodeTypes :Object.<NodeType, NodeType>

Type:

maxDepth :Number

Type:
  • Number

(nullable) onlyEdgeTypes :Object.<EdgeType, EdgeType>

Type:

(nullable) onlyNodeTypes :Object.<NodeType, NodeType>

Type:

onTraverseEdge :OnTraverseEdgeCb

Type:
  • OnTraverseEdgeCb

onVisitNode :OnVisitNodeCb

Type:
  • OnVisitNodeCb

shouldTraverseEdge :Traverser.ShouldTraverseEdgeCb

Type:

shouldVisitNode :Traverser.ShouldVisitNodeCb

Type:

Methods

traverse(rootNode) → {Traverser.TraversalResult}

Traverse the graph from the given Node.

Parameters:
Name Type Description
rootNode Node
Returns:
Type
Traverser.TraversalResult

Type Definitions

NodeTraversalMeta

Type:
  • Object
Properties:
Name Type Description
path Path

the path from the base Node to the visited Node.

previouslyVisited Boolean

whether the Node has been visited before (if true, no further traversals will be made down this path unless options.allowLoops is true).

distance Number

of the base node from the visited node.

viaEdge Edge

edge traversed to get to this node.

OnTraverseEdgeCb(edge) → {Boolean}

Parameters:
Name Type Description
edge Edge
Returns:
Type
Boolean

OnVisitNodeCb(node, meta) → {Boolean}

Parameters:
Name Type Description
node Node
meta Traverser.NodeTraversalMeta
Returns:
Type
Boolean

ShouldTraverseEdgeCb(edge, path) → {Boolean}

Parameters:
Name Type Description
edge Edge
path Path
Returns:
Type
Boolean

ShouldVisitNodeCb(node, path) → {Boolean}

Parameters:
Name Type Description
node Node
path Path
Returns:
Type
Boolean

TraversalResult

Type:
  • Object
Properties:
Name Type Description
nodes Array.<Node>
edges Array.<Edge>
json GraphJson