vue-hook-optimizer 0.0.45 → 0.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
@@ -550,8 +550,11 @@ function processSetup(ast, parentScope, parentPath, _spread, _lineOffset = 0) {
|
|
550
550
|
const binding = path1.scope.getBinding(path1.node.name);
|
551
551
|
if (graph.nodes.has(path1.node.name) && (path1.parent.type !== "MemberExpression" && path1.parent.type !== "OptionalMemberExpression" || path1.parent.object === path1.node) && (binding?.scope.block.type === "Program" || parentScope === binding?.scope)) {
|
552
552
|
if (["watch", "useEffect"].includes(hookName) && watchArgs.size > 0) {
|
553
|
+
const watchArgsNames = Array.from(watchArgs).map((arg) => arg.name);
|
553
554
|
watchArgs.forEach((watchArg) => {
|
554
|
-
|
555
|
+
if (!watchArgsNames.includes(path1.node.name)) {
|
556
|
+
graph.edges.get(watchArg.name)?.add(path1.node.name);
|
557
|
+
}
|
555
558
|
});
|
556
559
|
}
|
557
560
|
const _node = nodeCollection.getNode(path1.node.name);
|
@@ -947,7 +950,7 @@ function analyze3(content, lineOffset = 0, jsx = false) {
|
|
947
950
|
if (hookName === "watch" && path1.node.value.type === "ObjectExpression") {
|
948
951
|
path1.node.value.properties.forEach((prop) => {
|
949
952
|
if ((prop.type === "ObjectProperty" || prop.type === "ObjectMethod") && (prop.key.type === "Identifier" || prop.key.type === "StringLiteral")) {
|
950
|
-
const keyName = prop.key.type === "Identifier" ? prop.key.name : prop.key.type === "StringLiteral" ? prop.key.value : "";
|
953
|
+
const keyName = prop.key.type === "Identifier" ? prop.key.name : prop.key.type === "StringLiteral" ? prop.key.value.split(".")[0] : "";
|
951
954
|
const watchArg = tNodes.get(keyName);
|
952
955
|
const _node = nodeCollection.getNode(keyName);
|
953
956
|
if (_node?.info?.used) {
|
@@ -961,7 +964,7 @@ function analyze3(content, lineOffset = 0, jsx = false) {
|
|
961
964
|
traverse3(path1.node.value, {
|
962
965
|
MemberExpression(path2) {
|
963
966
|
if (path2.node.object.type === "ThisExpression" && path2.node.property.type === "Identifier") {
|
964
|
-
if (watchArg) {
|
967
|
+
if (watchArg && watchArg.name !== path2.node.property.name) {
|
965
968
|
graph.edges.get(watchArg.name)?.add(path2.node.property.name);
|
966
969
|
}
|
967
970
|
}
|
@@ -2055,7 +2058,7 @@ function gen(graph, usedNodes) {
|
|
2055
2058
|
suggestions.push({
|
2056
2059
|
type: "error" /* error */,
|
2057
2060
|
message: `There is a loop call in nodes [${hasCycleResult.cycleNodes.map((node) => node.label).join(",")}], perhaps you can refactor it.`,
|
2058
|
-
nodeInfo:
|
2061
|
+
nodeInfo: hasCycleResult.cycleNodes
|
2059
2062
|
});
|
2060
2063
|
}
|
2061
2064
|
const paths = findLinearPaths(g);
|