extra-dom
Version:
Utilities for DOM
18 lines (16 loc) • 447 B
text/typescript
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]
}
})
}