extra-dom
Version:
Utilities for DOM
15 lines • 571 B
JavaScript
import { clone, cloneNodes, copyNodesToChildNodes } from "./utils.js";
import { removeAllChildren } from "./remove-all-children.js";
export function flatMap(node, fn) {
const newNodes = cloneNodes(fn(clone(node)));
return newNodes.map(node => {
const newChildNodes = [];
for (const childNode of node.childNodes) {
newChildNodes.push(...cloneNodes(flatMap(childNode, fn)));
}
removeAllChildren(node);
copyNodesToChildNodes(newChildNodes, node);
return node;
});
}
//# sourceMappingURL=flat-map.js.map