.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / unist-util-visit / index.js
1 'use strict'
2
3 module.exports = visit
4
5 var visitParents = require('unist-util-visit-parents')
6
7 var CONTINUE = visitParents.CONTINUE
8 var SKIP = visitParents.SKIP
9 var EXIT = visitParents.EXIT
10
11 visit.CONTINUE = CONTINUE
12 visit.SKIP = SKIP
13 visit.EXIT = EXIT
14
15 function visit(tree, test, visitor, reverse) {
16   if (typeof test === 'function' && typeof visitor !== 'function') {
17     reverse = visitor
18     visitor = test
19     test = null
20   }
21
22   visitParents(tree, test, overload, reverse)
23
24   function overload(node, parents) {
25     var parent = parents[parents.length - 1]
26     var index = parent ? parent.children.indexOf(node) : null
27     return visitor(node, index, parent)
28   }
29 }