@@ -5,7 +5,7 @@ const maxDepthSignal = { __stop__: true };
55 */
66export 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