Apply an async visitor to an AST node or document.
Walks through the tree (depth-first) starting from node, calling a
visitor function with three arguments:
key: For sequence values and map Pair, the node's index in the
collection. Within a Pair, 'key' or 'value', correspondingly.
null for the root node.
node: The current node.
path: The ancestry of the current node.
The return value of the visitor may be used to control the traversal:
Promise: Must resolve to one of the following values
undefined (default): Do nothing and continue
visit.SKIP: Do not visit the children of this node, continue with next
sibling
visit.BREAK: Terminate traversal completely
visit.REMOVE: Remove the current node, then continue with the next one
Node: Replace the current node, then continue by visiting it
number: While iterating the items of a sequence or map, set the index
of the next step. This is useful especially if the index of the current
node has changed.
If visitor is a single function, it will be called with all values
encountered in the tree, including e.g. null values. Alternatively,
separate visitor functions may be defined for each Map, Pair, Seq,
Alias and Scalar node. To define the same visitor function for more than
one node type, use the Collection (map and seq), Value (map, seq & scalar)
and Node (alias, map, seq & scalar) targets. Of all these, only the most
specific defined one will be used for each node.
Apply an async visitor to an AST node or document.
Walks through the tree (depth-first) starting from
node
, calling avisitor
function with three arguments:key
: For sequence values and mapPair
, the node's index in the collection. Within aPair
,'key'
or'value'
, correspondingly.null
for the root node.node
: The current node.path
: The ancestry of the current node.The return value of the visitor may be used to control the traversal:
Promise
: Must resolve to one of the following valuesundefined
(default): Do nothing and continuevisit.SKIP
: Do not visit the children of this node, continue with next siblingvisit.BREAK
: Terminate traversal completelyvisit.REMOVE
: Remove the current node, then continue with the next oneNode
: Replace the current node, then continue by visiting itnumber
: While iterating the items of a sequence or map, set the index of the next step. This is useful especially if the index of the current node has changed.If
visitor
is a single function, it will be called with all values encountered in the tree, including e.g.null
values. Alternatively, separate visitor functions may be defined for eachMap
,Pair
,Seq
,Alias
andScalar
node. To define the same visitor function for more than one node type, use theCollection
(map and seq),Value
(map, seq & scalar) andNode
(alias, map, seq & scalar) targets. Of all these, only the most specific defined one will be used for each node.