vue-hook-optimizer 0.0.57 → 0.0.59
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 +70 -16
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +70 -16
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
    
        package/dist/index.js
    CHANGED
    
    | @@ -2022,23 +2022,72 @@ function noIndegreeFilter(graph) { | |
| 2022 2022 | 
             
            function findLinearPaths(graph) {
         | 
| 2023 2023 | 
             
              const linearPaths = [];
         | 
| 2024 2024 | 
             
              const visitedNodes = /* @__PURE__ */ new Set();
         | 
| 2025 | 
            +
              const nodeInDegrees = /* @__PURE__ */ new Map();
         | 
| 2025 2026 | 
             
              for (const [node, edges] of graph.entries()) {
         | 
| 2026 | 
            -
                if ( | 
| 2027 | 
            -
                   | 
| 2028 | 
            -
             | 
| 2029 | 
            -
             | 
| 2030 | 
            -
                   | 
| 2031 | 
            -
             | 
| 2027 | 
            +
                if (!nodeInDegrees.has(node)) {
         | 
| 2028 | 
            +
                  nodeInDegrees.set(node, 0);
         | 
| 2029 | 
            +
                }
         | 
| 2030 | 
            +
                for (const edge of edges) {
         | 
| 2031 | 
            +
                  const inDegree = nodeInDegrees.get(edge) || 0;
         | 
| 2032 | 
            +
                  nodeInDegrees.set(edge, inDegree + 1);
         | 
| 2033 | 
            +
                }
         | 
| 2034 | 
            +
              }
         | 
| 2035 | 
            +
              function dfs2(node, path) {
         | 
| 2036 | 
            +
                if (visitedNodes.has(node)) {
         | 
| 2037 | 
            +
                  return;
         | 
| 2038 | 
            +
                }
         | 
| 2039 | 
            +
                path.push(node);
         | 
| 2040 | 
            +
                visitedNodes.add(node);
         | 
| 2041 | 
            +
                const edges = graph.get(node) || /* @__PURE__ */ new Set();
         | 
| 2042 | 
            +
                if (edges.size === 0 || edges.size > 1) {
         | 
| 2043 | 
            +
                  if (path.length > 1) {
         | 
| 2044 | 
            +
                    addOrUpdatePath([...path]);
         | 
| 2045 | 
            +
                  }
         | 
| 2046 | 
            +
                } else {
         | 
| 2047 | 
            +
                  const nextNode = Array.from(edges)[0];
         | 
| 2048 | 
            +
                  const nextNodeInDegree = nodeInDegrees.get(nextNode) || 0;
         | 
| 2049 | 
            +
                  if (nextNodeInDegree === 1) {
         | 
| 2050 | 
            +
                    dfs2(nextNode, path);
         | 
| 2051 | 
            +
                  }
         | 
| 2052 | 
            +
                }
         | 
| 2053 | 
            +
                path.pop();
         | 
| 2054 | 
            +
                visitedNodes.delete(node);
         | 
| 2055 | 
            +
              }
         | 
| 2056 | 
            +
              function addOrUpdatePath(newPath) {
         | 
| 2057 | 
            +
                let shouldAddNewPath = true;
         | 
| 2058 | 
            +
                for (let i = linearPaths.length - 1; i >= 0; i--) {
         | 
| 2059 | 
            +
                  const existingPath = linearPaths[i];
         | 
| 2060 | 
            +
                  if (isSubpath(existingPath, newPath)) {
         | 
| 2061 | 
            +
                    linearPaths.splice(i, 1);
         | 
| 2062 | 
            +
                  } else if (isSubpath(newPath, existingPath)) {
         | 
| 2063 | 
            +
                    shouldAddNewPath = false;
         | 
| 2064 | 
            +
                    break;
         | 
| 2065 | 
            +
                  }
         | 
| 2066 | 
            +
                }
         | 
| 2067 | 
            +
                if (shouldAddNewPath && newPath.length > 2) {
         | 
| 2068 | 
            +
                  linearPaths.push(newPath);
         | 
| 2069 | 
            +
                }
         | 
| 2070 | 
            +
              }
         | 
| 2071 | 
            +
              function isSubpath(shortPath, longPath) {
         | 
| 2072 | 
            +
                if (shortPath.length >= longPath.length) {
         | 
| 2073 | 
            +
                  return false;
         | 
| 2074 | 
            +
                }
         | 
| 2075 | 
            +
                for (let i = 0; i <= longPath.length - shortPath.length; i++) {
         | 
| 2076 | 
            +
                  let isSub = true;
         | 
| 2077 | 
            +
                  for (let j = 0; j < shortPath.length; j++) {
         | 
| 2078 | 
            +
                    if (shortPath[j] !== longPath[i + j]) {
         | 
| 2079 | 
            +
                      isSub = false;
         | 
| 2032 2080 | 
             
                      break;
         | 
| 2033 2081 | 
             
                    }
         | 
| 2034 | 
            -
                    path.push(nextNode);
         | 
| 2035 | 
            -
                    visitedNodes.add(nextNode);
         | 
| 2036 | 
            -
                    nextNode = Array.from(graph.get(nextNode))[0];
         | 
| 2037 2082 | 
             
                  }
         | 
| 2038 | 
            -
                  if ( | 
| 2039 | 
            -
                     | 
| 2083 | 
            +
                  if (isSub) {
         | 
| 2084 | 
            +
                    return true;
         | 
| 2040 2085 | 
             
                  }
         | 
| 2041 2086 | 
             
                }
         | 
| 2087 | 
            +
                return false;
         | 
| 2088 | 
            +
              }
         | 
| 2089 | 
            +
              for (const node of graph.keys()) {
         | 
| 2090 | 
            +
                dfs2(node, []);
         | 
| 2042 2091 | 
             
              }
         | 
| 2043 2092 | 
             
              return linearPaths;
         | 
| 2044 2093 | 
             
            }
         | 
| @@ -2155,11 +2204,16 @@ function gen(graph, nodesUsedInTemplate, nodesUsedInStyle = /* @__PURE__ */ new | |
| 2155 2204 | 
             
                }
         | 
| 2156 2205 | 
             
                const paths = findLinearPaths(g);
         | 
| 2157 2206 | 
             
                paths.forEach((path) => {
         | 
| 2158 | 
            -
                   | 
| 2159 | 
            -
             | 
| 2160 | 
            -
             | 
| 2161 | 
            -
             | 
| 2162 | 
            -
             | 
| 2207 | 
            +
                  const firstUsedNodeIndex = path.findIndex((node) => usedNodes.has(node.label));
         | 
| 2208 | 
            +
                  const reverseLastNotUsedNodeIndex = path.slice().reverse().findIndex((node) => !usedNodes.has(node.label));
         | 
| 2209 | 
            +
                  const lastNotUsedNodeIndex = reverseLastNotUsedNodeIndex !== -1 ? path.length - 1 - reverseLastNotUsedNodeIndex : -1;
         | 
| 2210 | 
            +
                  if (firstUsedNodeIndex > -1 && firstUsedNodeIndex < lastNotUsedNodeIndex) {
         | 
| 2211 | 
            +
                    suggestions.push({
         | 
| 2212 | 
            +
                      type: "warning" /* warning */,
         | 
| 2213 | 
            +
                      message: `Nodes [${path.length > 10 ? `${path.slice(0, 10).map((node) => node.label).join(",")}...(${path.length})` : path.map((node) => node.label).join(",")}] are have function chain calls, perhaps you can refactor it.`,
         | 
| 2214 | 
            +
                      nodeInfo: path
         | 
| 2215 | 
            +
                    });
         | 
| 2216 | 
            +
                  }
         | 
| 2163 2217 | 
             
                });
         | 
| 2164 2218 | 
             
                if (g.size > 5) {
         | 
| 2165 2219 | 
             
                  const ap = findArticulationPoints(g);
         |