MCPcopy Create free account
hub / github.com/danvk/webdiff / walk

Function walk

ts/codediff/html-text-mapper.ts:50–77  ·  view source on GitHub ↗
(el: Node, fn: (node: Text) => void)

Source from the content-addressed store, hash-verified

48 }
49
50 function walk(el: Node, fn: (node: Text) => void) {
51 let node = el.firstChild;
52 let oldNode;
53 const elsToRemove = [];
54 do {
55 if (node?.nodeType === 3) {
56 fn(node as Text);
57 } else if (node?.nodeType === 1 && node.childNodes.length > 0) {
58 walk(node, fn);
59 }
60 if (consumed == 0 && node?.nodeType == 1) {
61 elsToRemove.push(node);
62 }
63 } while ((node = node?.nextSibling ?? null) && count > 0);
64
65 // remove remaining nodes
66 while (node) {
67 oldNode = node;
68 node = node.nextSibling;
69 el.removeChild(oldNode);
70 }
71
72 for (const el of elsToRemove) {
73 if (el.parentNode) {
74 el.parentNode.removeChild(el);
75 }
76 }
77 }
78
79 return div.innerHTML;
80}

Callers 1

html_substrFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected