vue-hook-optimizer 0.0.14 → 0.0.16

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.mjs CHANGED
@@ -46320,55 +46320,6 @@ var require_lib13 = __commonJS({
46320
46320
  }
46321
46321
  });
46322
46322
 
46323
- // src/analyze/utils.ts
46324
- var NodeType = /* @__PURE__ */ ((NodeType3) => {
46325
- NodeType3["var"] = "var";
46326
- NodeType3["fun"] = "fun";
46327
- return NodeType3;
46328
- })(NodeType || {});
46329
- var NodeCollection = class {
46330
- nodes = /* @__PURE__ */ new Map();
46331
- addNode(label, node2, options = { isComputed: false }) {
46332
- if (this.nodes.has(label)) {
46333
- return;
46334
- }
46335
- if (!options.isComputed && (node2.type === "VariableDeclarator" && [
46336
- "ArrowFunctionExpression",
46337
- "FunctionDeclaration"
46338
- ].includes(node2.init?.type || "") || node2.type === "FunctionDeclaration" || node2.type === "ObjectMethod")) {
46339
- this.nodes.set(label, {
46340
- label,
46341
- type: "fun" /* fun */
46342
- });
46343
- } else {
46344
- this.nodes.set(label, {
46345
- label,
46346
- type: "var" /* var */
46347
- });
46348
- }
46349
- }
46350
- addTypedNode(label, node2) {
46351
- this.nodes.set(label, {
46352
- label,
46353
- type: node2.type
46354
- });
46355
- }
46356
- map(graph) {
46357
- const nodes = new Set(Array.from(graph.nodes).map((node2) => {
46358
- return this.nodes.get(node2);
46359
- }).filter((node2) => !!node2));
46360
- const edges = new Map(Array.from(graph.edges).map(([from2, to]) => {
46361
- return [this.nodes.get(from2), new Set(Array.from(to).map((node2) => {
46362
- return this.nodes.get(node2);
46363
- }).filter((node2) => !!node2))];
46364
- }));
46365
- return {
46366
- nodes,
46367
- edges
46368
- };
46369
- }
46370
- };
46371
-
46372
46323
  // node_modules/.pnpm/@vue+compiler-sfc@3.3.4/node_modules/@vue/compiler-sfc/dist/compiler-sfc.esm-browser.js
46373
46324
  function makeMap(str2, expectsLowerCase) {
46374
46325
  const map2 = /* @__PURE__ */ Object.create(null);
@@ -86312,6 +86263,57 @@ function analyze(content) {
86312
86263
 
86313
86264
  // src/analyze/setupScript.ts
86314
86265
  var import_traverse2 = __toESM(require_lib13());
86266
+
86267
+ // src/analyze/utils.ts
86268
+ var NodeType = /* @__PURE__ */ ((NodeType3) => {
86269
+ NodeType3["var"] = "var";
86270
+ NodeType3["fun"] = "fun";
86271
+ return NodeType3;
86272
+ })(NodeType || {});
86273
+ var NodeCollection = class {
86274
+ nodes = /* @__PURE__ */ new Map();
86275
+ addNode(label, node2, options = { isComputed: false }) {
86276
+ if (this.nodes.has(label)) {
86277
+ return;
86278
+ }
86279
+ if (!options.isComputed && (node2.type === "VariableDeclarator" && [
86280
+ "ArrowFunctionExpression",
86281
+ "FunctionDeclaration"
86282
+ ].includes(node2.init?.type || "") || node2.type === "FunctionDeclaration" || node2.type === "ObjectMethod")) {
86283
+ this.nodes.set(label, {
86284
+ label,
86285
+ type: "fun" /* fun */
86286
+ });
86287
+ } else {
86288
+ this.nodes.set(label, {
86289
+ label,
86290
+ type: "var" /* var */
86291
+ });
86292
+ }
86293
+ }
86294
+ addTypedNode(label, node2) {
86295
+ this.nodes.set(label, {
86296
+ label,
86297
+ type: node2.type
86298
+ });
86299
+ }
86300
+ map(graph) {
86301
+ const nodes = new Set(Array.from(graph.nodes).map((node2) => {
86302
+ return this.nodes.get(node2);
86303
+ }).filter((node2) => !!node2));
86304
+ const edges = new Map(Array.from(graph.edges).map(([from2, to]) => {
86305
+ return [this.nodes.get(from2), new Set(Array.from(to).map((node2) => {
86306
+ return this.nodes.get(node2);
86307
+ }).filter((node2) => !!node2))];
86308
+ }));
86309
+ return {
86310
+ nodes,
86311
+ edges
86312
+ };
86313
+ }
86314
+ };
86315
+
86316
+ // src/analyze/setupScript.ts
86315
86317
  var traverse2 = (
86316
86318
  //@ts-ignore
86317
86319
  import_traverse2.default.default?.default || import_traverse2.default.default || import_traverse2.default
@@ -86871,27 +86873,99 @@ function noIndegreeFilter(graph) {
86871
86873
  });
86872
86874
  return nodes.filter((node2) => indegree.get(node2) === 0);
86873
86875
  }
86876
+ function removeVariable(graph, targets) {
86877
+ const newTarget = /* @__PURE__ */ new Set();
86878
+ targets.forEach((target) => {
86879
+ if (target.type === "var" /* var */) {
86880
+ const nodes = graph.get(target);
86881
+ nodes?.forEach((node2) => {
86882
+ newTarget.add(node2);
86883
+ });
86884
+ }
86885
+ if (target.type === "fun" /* fun */) {
86886
+ newTarget.add(target);
86887
+ }
86888
+ });
86889
+ return newTarget;
86890
+ }
86891
+ function onlyFunctions(graph) {
86892
+ const result2 = /* @__PURE__ */ new Map();
86893
+ graph.forEach((targets, node2) => {
86894
+ if (node2.type === "fun" /* fun */) {
86895
+ const nodes = removeVariable(graph, targets);
86896
+ result2.set(node2, nodes);
86897
+ }
86898
+ });
86899
+ return result2;
86900
+ }
86901
+
86902
+ // src/suggest/utils.ts
86903
+ function hasCycle(graph) {
86904
+ const visited = /* @__PURE__ */ new Set();
86905
+ function dfs2(node2) {
86906
+ if (visited.has(node2)) {
86907
+ return true;
86908
+ }
86909
+ visited.add(node2);
86910
+ for (const neighbor of graph.get(node2) || /* @__PURE__ */ new Set()) {
86911
+ if (dfs2(neighbor)) {
86912
+ return true;
86913
+ }
86914
+ }
86915
+ visited.delete(node2);
86916
+ return false;
86917
+ }
86918
+ for (const [node2, targets] of graph) {
86919
+ if (dfs2(node2)) {
86920
+ return true;
86921
+ }
86922
+ }
86923
+ return false;
86924
+ }
86874
86925
 
86875
86926
  // src/suggest/index.ts
86927
+ var SuggestionType = /* @__PURE__ */ ((SuggestionType2) => {
86928
+ SuggestionType2["info"] = "info";
86929
+ SuggestionType2["warning"] = "warning";
86930
+ SuggestionType2["error"] = "error";
86931
+ return SuggestionType2;
86932
+ })(SuggestionType || {});
86876
86933
  function gen(graph, usedNodes) {
86877
- const suggests = [];
86934
+ const suggestions = [];
86878
86935
  const splitedGraph = splitGraph(graph.edges);
86879
86936
  splitedGraph.forEach((g) => {
86880
86937
  const nodes = Array.from(g.keys());
86881
86938
  if (splitedGraph.length > 1) {
86882
- suggests.push(`Node${nodes.length > 1 ? "s" : ""} [${nodes.length > 10 ? nodes.slice(0, 10).map((node2) => node2.label).join(",") + "...(" + nodes.length + ")" : nodes.map((node2) => node2.label).join(",")}] ${nodes.length > 1 ? "are" : "is"} isolated${nodes.length > 2 ? ", perhaps you can refactor them to an isolated file." : "."}`);
86939
+ if (nodes.length > 2 && nodes.some((node2) => !usedNodes.has(node2.label))) {
86940
+ suggestions.push({
86941
+ type: "info" /* info */,
86942
+ message: `Nodes [${nodes.length > 10 ? nodes.slice(0, 10).map((node2) => node2.label).join(",") + "...(" + nodes.length + ")" : nodes.map((node2) => node2.label).join(",")}] are isolated, perhaps you can refactor them to an isolated file.`
86943
+ });
86944
+ }
86883
86945
  }
86884
- if (nodes.every((node2) => !usedNodes.has(node2.label))) {
86885
- suggests.push(`Node${nodes.length > 1 ? "s" : ""} [${nodes.length > 10 ? nodes.slice(0, 10).map((node2) => node2.label).join(",") + "..." : nodes.map((node2) => node2.label).join(",")}] ${nodes.length > 1 ? "are" : "is"} not used, perhaps you can remove ${nodes.length > 1 ? "them" : "it"}.`);
86946
+ if (nodes.length > 1 && nodes.every((node2) => !usedNodes.has(node2.label))) {
86947
+ suggestions.push({
86948
+ type: "info" /* info */,
86949
+ message: `Nodes [${nodes.length > 10 ? nodes.slice(0, 10).map((node2) => node2.label).join(",") + "..." : nodes.map((node2) => node2.label).join(",")}] are not used, perhaps you can remove them.`
86950
+ });
86951
+ }
86952
+ if (hasCycle(onlyFunctions(g))) {
86953
+ suggestions.push({
86954
+ type: "error" /* error */,
86955
+ message: `There is a loop call in nodes [${nodes.length > 10 ? nodes.slice(0, 10).map((node2) => node2.label).join(",") + "...(" + nodes.length + ")" : nodes.map((node2) => node2.label).join(",")}], perhaps you can refactor it.`
86956
+ });
86886
86957
  }
86887
86958
  });
86888
86959
  const noIndegreeNodes = noIndegreeFilter(graph.edges);
86889
86960
  noIndegreeNodes.forEach((node2) => {
86890
86961
  if (!usedNodes.has(node2.label)) {
86891
- suggests.push(`Node [${node2.label}] is not used, perhaps you can remove it.`);
86962
+ suggestions.push({
86963
+ type: "info" /* info */,
86964
+ message: `Node [${node2.label}] is not used, perhaps you can remove it.`
86965
+ });
86892
86966
  }
86893
86967
  });
86894
- return suggests;
86968
+ return suggestions;
86895
86969
  }
86896
86970
 
86897
86971
  // src/vis.ts
@@ -86929,6 +87003,7 @@ function getVisData(graph, usedNodes) {
86929
87003
  }
86930
87004
  export {
86931
87005
  NodeType,
87006
+ SuggestionType,
86932
87007
  analyze3 as analyzeOptions,
86933
87008
  analyze2 as analyzeSetupScript,
86934
87009
  analyze as analyzeTemplate,