UNPKG

unist-util-flatmap

Version:

Create a new Unist tree by mapping (to an array) and flattening

23 lines (19 loc) 500 B
module.exports = flatMap function flatMap(ast, fn) { return transform(ast, 0, null)[0] function transform(node, index, parent) { if (node.children) { var out = [] for (var i = 0, n = node.children.length; i < n; i++) { var xs = transform(node.children[i], i, node) if (xs) { for (var j = 0, m = xs.length; j < m; j++) { out.push(xs[j]) } } } node.children = out } return fn(node, index, parent) } }