MCPcopy Index your code
hub / github.com/tinymce/tinymce / walkTree

Function walkTree

modules/tinymce/src/core/main/ts/api/html/DomParser.ts:150–169  ·  view source on GitHub ↗
(root: AstNode, preprocessors: WalkerCallback[], postprocessors: WalkerCallback[])

Source from the content-addressed store, hash-verified

148};
149
150const walkTree = (root: AstNode, preprocessors: WalkerCallback[], postprocessors: WalkerCallback[]) => {
151 const traverseOrder: AstNode[] = [];
152
153 for (let node: AstNode | null | undefined = root, lastNode = node; node; lastNode = node, node = node.walk()) {
154 const tempNode = node;
155 Arr.each(preprocessors, (preprocess) => preprocess(tempNode));
156
157 if (Type.isNullable(tempNode.parent) && tempNode !== root) {
158 // The node has been detached, so rewind a little and don't add it to our traversal
159 node = lastNode;
160 } else {
161 traverseOrder.push(tempNode);
162 }
163 }
164
165 for (let i = traverseOrder.length - 1; i >= 0; i--) {
166 const node = traverseOrder[i];
167 Arr.each(postprocessors, (postprocess) => postprocess(node));
168 }
169};
170
171// All the dom operations we want to perform, regardless of whether we're trying to properly validate things
172// e.g. removing excess whitespace

Callers 1

parseFunction · 0.85

Calls 4

postprocessFunction · 0.85
walkMethod · 0.80
eachMethod · 0.80
preprocessFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…