vue-hook-optimizer 0.0.55 → 0.0.57
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.d.mts +10 -7
- package/dist/index.d.ts +10 -7
- package/dist/index.js +82 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +81 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -8
package/dist/index.mjs
CHANGED
@@ -30,7 +30,9 @@ function analyze(content) {
|
|
30
30
|
if (path.node.key.type === "Identifier" && path.node.key.name === "ref") {
|
31
31
|
if (path.node.value.type === "StringLiteral") {
|
32
32
|
const name = path.node.value.value;
|
33
|
-
|
33
|
+
if (name) {
|
34
|
+
nodes.add(name);
|
35
|
+
}
|
34
36
|
}
|
35
37
|
}
|
36
38
|
},
|
@@ -39,7 +41,9 @@ function analyze(content) {
|
|
39
41
|
if (path.node.callee.type === "Identifier" && path.node.callee.name === "_resolveComponent") {
|
40
42
|
if (path.node.arguments[0].type === "StringLiteral") {
|
41
43
|
const name = path.node.arguments[0].value;
|
42
|
-
|
44
|
+
if (name) {
|
45
|
+
nodes.add(name);
|
46
|
+
}
|
43
47
|
}
|
44
48
|
}
|
45
49
|
}
|
@@ -139,7 +143,7 @@ function getComment(node) {
|
|
139
143
|
return;
|
140
144
|
}
|
141
145
|
if (_comment.value.trim().startsWith("*")) {
|
142
|
-
comment += `${_comment.value.trim().replace(
|
146
|
+
comment += `${_comment.value.trim().replace(/^\s*\*+\s*\**/gm, "").trim()}
|
143
147
|
`;
|
144
148
|
}
|
145
149
|
});
|
@@ -148,7 +152,7 @@ function getComment(node) {
|
|
148
152
|
return;
|
149
153
|
}
|
150
154
|
if (_comment.value.trim().startsWith("*")) {
|
151
|
-
comment += `${_comment.value.trim().replace(
|
155
|
+
comment += `${_comment.value.trim().replace(/^\s*\*+\s*\**/gm, "").trim()}
|
152
156
|
`;
|
153
157
|
} else {
|
154
158
|
comment += `${_comment.value.trim()}
|
@@ -1841,6 +1845,67 @@ function analyze4(content, type = "vue", lineOffset = 0, addInfo = true) {
|
|
1841
1845
|
};
|
1842
1846
|
}
|
1843
1847
|
|
1848
|
+
// src/analyze/style.ts
|
1849
|
+
function lexBinding(content, start) {
|
1850
|
+
let state = 0 /* inParens */;
|
1851
|
+
let parenDepth = 0;
|
1852
|
+
for (let i = start; i < content.length; i++) {
|
1853
|
+
const char = content.charAt(i);
|
1854
|
+
switch (state) {
|
1855
|
+
case 0 /* inParens */:
|
1856
|
+
if (char === "'") {
|
1857
|
+
state = 1 /* inSingleQuoteString */;
|
1858
|
+
} else if (char === '"') {
|
1859
|
+
state = 2 /* inDoubleQuoteString */;
|
1860
|
+
} else if (char === "(") {
|
1861
|
+
parenDepth++;
|
1862
|
+
} else if (char === ")") {
|
1863
|
+
if (parenDepth > 0) {
|
1864
|
+
parenDepth--;
|
1865
|
+
} else {
|
1866
|
+
return i;
|
1867
|
+
}
|
1868
|
+
}
|
1869
|
+
break;
|
1870
|
+
case 1 /* inSingleQuoteString */:
|
1871
|
+
if (char === "'") {
|
1872
|
+
state = 0 /* inParens */;
|
1873
|
+
}
|
1874
|
+
break;
|
1875
|
+
case 2 /* inDoubleQuoteString */:
|
1876
|
+
if (char === '"') {
|
1877
|
+
state = 0 /* inParens */;
|
1878
|
+
}
|
1879
|
+
break;
|
1880
|
+
}
|
1881
|
+
}
|
1882
|
+
return null;
|
1883
|
+
}
|
1884
|
+
function normalizeExpression(exp) {
|
1885
|
+
exp = exp.trim();
|
1886
|
+
if (exp[0] === "'" && exp[exp.length - 1] === "'" || exp[0] === '"' && exp[exp.length - 1] === '"') {
|
1887
|
+
return exp.slice(1, -1);
|
1888
|
+
}
|
1889
|
+
return exp;
|
1890
|
+
}
|
1891
|
+
var vBindRE = /v-bind\s*\(/g;
|
1892
|
+
function analyze5(styles) {
|
1893
|
+
const nodes = /* @__PURE__ */ new Set();
|
1894
|
+
styles.forEach((style) => {
|
1895
|
+
let match;
|
1896
|
+
const content = style.content.replace(/\/\*([\s\S]*?)\*\/|\/\/.*/g, "");
|
1897
|
+
while (match = vBindRE.exec(content)) {
|
1898
|
+
const start = match.index + match[0].length;
|
1899
|
+
const end = lexBinding(content, start);
|
1900
|
+
if (end !== null) {
|
1901
|
+
const variable = normalizeExpression(content.slice(start, end));
|
1902
|
+
nodes.add(variable);
|
1903
|
+
}
|
1904
|
+
}
|
1905
|
+
});
|
1906
|
+
return nodes;
|
1907
|
+
}
|
1908
|
+
|
1844
1909
|
// src/suggest/split.ts
|
1845
1910
|
function dfs(graph, node, targets, visited, component) {
|
1846
1911
|
component.add(node);
|
@@ -1915,7 +1980,7 @@ function findLinearPaths(graph) {
|
|
1915
1980
|
const linearPaths = [];
|
1916
1981
|
const visitedNodes = /* @__PURE__ */ new Set();
|
1917
1982
|
for (const [node, edges] of graph.entries()) {
|
1918
|
-
if (edges.size === 1 && !visitedNodes.has(node)
|
1983
|
+
if (edges.size === 1 && !visitedNodes.has(node)) {
|
1919
1984
|
const path = [node];
|
1920
1985
|
let nextNode = Array.from(edges)[0];
|
1921
1986
|
visitedNodes.add(node);
|
@@ -2015,7 +2080,8 @@ var SuggestionType = /* @__PURE__ */ ((SuggestionType2) => {
|
|
2015
2080
|
SuggestionType2["error"] = "error";
|
2016
2081
|
return SuggestionType2;
|
2017
2082
|
})(SuggestionType || {});
|
2018
|
-
function gen(graph,
|
2083
|
+
function gen(graph, nodesUsedInTemplate, nodesUsedInStyle = /* @__PURE__ */ new Set()) {
|
2084
|
+
const usedNodes = /* @__PURE__ */ new Set([...nodesUsedInTemplate, ...nodesUsedInStyle]);
|
2019
2085
|
const suggestions = [];
|
2020
2086
|
const splitedGraph = splitGraph(graph.edges);
|
2021
2087
|
splitedGraph.forEach((g) => {
|
@@ -2079,7 +2145,8 @@ function gen(graph, usedNodes) {
|
|
2079
2145
|
}
|
2080
2146
|
|
2081
2147
|
// src/vis.ts
|
2082
|
-
function getVisData(graph,
|
2148
|
+
function getVisData(graph, nodesUsedInTemplate, nodesUsedInStyle = /* @__PURE__ */ new Set()) {
|
2149
|
+
const usedNodes = /* @__PURE__ */ new Set([...nodesUsedInTemplate, ...nodesUsedInStyle]);
|
2083
2150
|
const nodes = [];
|
2084
2151
|
const edges = [];
|
2085
2152
|
graph.nodes.forEach((node) => {
|
@@ -2090,7 +2157,12 @@ function getVisData(graph, usedNodes) {
|
|
2090
2157
|
group: usedNodes.has(node.label) || node.info?.used?.size ? "used" : "normal",
|
2091
2158
|
title: `${node.info?.used?.size ? `used by ${Array.from(node.info?.used || [])?.map((i) => `\`${i}\``).join(",")}
|
2092
2159
|
|
2093
|
-
` : ""}${usedNodes.has(node.label) ?
|
2160
|
+
` : ""}${usedNodes.has(node.label) ? `used in ${[
|
2161
|
+
nodesUsedInStyle.has(node.label) ? "style" : "",
|
2162
|
+
nodesUsedInTemplate.has(node.label) ? "template" : ""
|
2163
|
+
].filter(Boolean).join(" and ")}
|
2164
|
+
|
2165
|
+
` : ""}${node.info?.comment || ""}`.trim() || void 0,
|
2094
2166
|
info: node.info
|
2095
2167
|
});
|
2096
2168
|
});
|
@@ -2121,6 +2193,7 @@ export {
|
|
2121
2193
|
SuggestionType,
|
2122
2194
|
analyze3 as analyzeOptions,
|
2123
2195
|
analyze2 as analyzeSetupScript,
|
2196
|
+
analyze5 as analyzeStyle,
|
2124
2197
|
analyze as analyzeTemplate,
|
2125
2198
|
analyze4 as analyzeTsx,
|
2126
2199
|
gen,
|