Skip to content

Commit d5f4ff5

Browse files
committed
Increase default maxDepth and refine key processing for DOM Nodes in conversion
1 parent 76d18f9 commit d5f4ff5

File tree

1 file changed

+39
-4
lines changed
  • src/js/packages/event-to-object/src

1 file changed

+39
-4
lines changed

src/js/packages/event-to-object/src/index.ts

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const maxDepthSignal = { __stop__: true };
55
*/
66
export default function convert(
77
classObject: { [key: string]: any },
8-
maxDepth: number = 5,
8+
maxDepth: number = 10,
99
): object {
1010
const visited = new WeakSet<any>();
1111
visited.add(classObject);
@@ -264,17 +264,52 @@ function shouldIgnoreValue(
264264
parent: any = undefined,
265265
): boolean {
266266
return (
267+
// Useless data
267268
value === null ||
268269
value === undefined ||
270+
keyName.startsWith("__") ||
271+
(keyName.length > 0 && keyName.toUpperCase() === keyName) ||
272+
// Non-convertible types
269273
typeof value === "function" ||
270274
value instanceof CSSStyleSheet ||
271275
value instanceof Window ||
272276
value instanceof Document ||
273277
keyName === "view" ||
274278
keyName === "size" ||
275279
keyName === "length" ||
276-
(keyName.length > 0 && keyName.toUpperCase() === keyName) ||
277-
keyName.startsWith("__") ||
278-
(parent instanceof CSSStyleDeclaration && value === "")
280+
(parent instanceof CSSStyleDeclaration && value === "") ||
281+
// DOM Node Blacklist
282+
(typeof Node !== "undefined" &&
283+
parent instanceof Node &&
284+
// Recursive properties
285+
(keyName === "parentNode" ||
286+
keyName === "parentElement" ||
287+
keyName === "ownerDocument" ||
288+
keyName === "getRootNode" ||
289+
keyName === "childNodes" ||
290+
keyName === "children" ||
291+
keyName === "firstChild" ||
292+
keyName === "lastChild" ||
293+
keyName === "previousSibling" ||
294+
keyName === "nextSibling" ||
295+
keyName === "previousElementSibling" ||
296+
keyName === "nextElementSibling" ||
297+
// Potentially large data
298+
keyName === "innerHTML" ||
299+
keyName === "outerHTML" ||
300+
// Reflow triggers
301+
keyName === "offsetParent" ||
302+
keyName === "offsetWidth" ||
303+
keyName === "offsetHeight" ||
304+
keyName === "offsetLeft" ||
305+
keyName === "offsetTop" ||
306+
keyName === "clientTop" ||
307+
keyName === "clientLeft" ||
308+
keyName === "clientWidth" ||
309+
keyName === "clientHeight" ||
310+
keyName === "scrollWidth" ||
311+
keyName === "scrollHeight" ||
312+
keyName === "scrollTop" ||
313+
keyName === "scrollLeft"))
279314
);
280315
}

0 commit comments

Comments
 (0)