Skip to content

Commit e162c3d

Browse files
committed
feat: opti deep scan object
1 parent 23f5b72 commit e162c3d

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

packages/copy/src/utils/helper.ts

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,39 @@
88
*/
99
const weakSet = new WeakSet();
1010
const pathRouter = ["root"];
11+
const regexp = //;
1112

1213
const deepScanObject = (origin, deep, maxDeep) => {
1314
if (deep > maxDeep) return;
15+
if (origin instanceof Map) {
16+
weakSet.add(origin);
17+
if (weakSet.has(origin)) return;
18+
origin = [...origin.entries()];
19+
}
1420
for (const item in origin) {
21+
const currentPath = pathRouter.join("/") + "/" + item;
1522
try {
1623
const value = origin[item];
24+
if (
25+
value instanceof Node ||
26+
value instanceof Window ||
27+
item.includes("_react") ||
28+
item.includes("cssRule")
29+
) {
30+
continue;
31+
}
1732
if (value && typeof value === "object") {
18-
if (weakSet.has(value)) continue;
33+
if (weakSet.has(value)) {
34+
regexp.test(item) && console.log(currentPath);
35+
continue;
36+
}
1937
weakSet.add(value);
2038
pathRouter.push(item);
2139
deepScanObject(value, deep + 1, maxDeep);
2240
pathRouter.pop();
2341
} else {
24-
const regexp = //;
2542
if (regexp.test(item) || regexp.test(value)) {
26-
console.log(pathRouter.join("/") + "/" + item, "================", value);
43+
console.log(currentPath, "================", value);
2744
}
2845
}
2946
} catch (e) {

0 commit comments

Comments
 (0)