UNPKG

extra-dom

Version:
18 lines (16 loc) 447 B
import { flatMap } from './flat-map.js' import * as Iter from 'iterable-operator' import { pipe } from 'extra-utils' export function unwrap(node: Node, predicate: (node: Node) => unknown): Node[] { return flatMap(node, node => { if (predicate(node)) { return pipe( node.childNodes , nodes => Iter.flatMap(nodes, node => unwrap(node, predicate)) , Iter.toArray ) } else { return [node] } }) }