vue-hook-optimizer 0.0.22 → 0.0.24

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 CHANGED
@@ -1,23 +1,27 @@
1
1
  export { parse } from '@vue/compiler-sfc';
2
- import * as vis_network from 'vis-network';
2
+ import { Edge, Node } from 'vis-network';
3
3
 
4
4
  declare function analyze$2(content: string): Set<string>;
5
5
 
6
6
  type TypedNode = {
7
7
  label: string;
8
8
  type: NodeType;
9
+ info?: Partial<{
10
+ line: number;
11
+ column: number;
12
+ }>;
9
13
  };
10
14
  declare enum NodeType {
11
15
  var = "var",
12
16
  fun = "fun"
13
17
  }
14
18
 
15
- declare function analyze$1(content: string): {
19
+ declare function analyze$1(content: string, lineOffset?: number): {
16
20
  nodes: Set<TypedNode>;
17
21
  edges: Map<TypedNode, Set<TypedNode>>;
18
22
  };
19
23
 
20
- declare function analyze(content: string): {
24
+ declare function analyze(content: string, lineOffset?: number): {
21
25
  nodes: Set<TypedNode>;
22
26
  edges: Map<TypedNode, Set<TypedNode>>;
23
27
  };
@@ -36,12 +40,15 @@ declare function gen(graph: {
36
40
  edges: Map<TypedNode, Set<TypedNode>>;
37
41
  }, usedNodes: Set<string>): Suggestion[];
38
42
 
43
+ type CustomNode = Node & {
44
+ info: TypedNode['info'];
45
+ };
39
46
  declare function getVisData(graph: {
40
47
  nodes: Set<TypedNode>;
41
48
  edges: Map<TypedNode, Set<TypedNode>>;
42
49
  }, usedNodes: Set<string>): {
43
- nodes: vis_network.Node[];
44
- edges: vis_network.Edge[];
50
+ nodes: CustomNode[];
51
+ edges: Edge[];
45
52
  };
46
53
 
47
54
  export { NodeType, Suggestion, SuggestionType, TypedNode, analyze as analyzeOptions, analyze$1 as analyzeSetupScript, analyze$2 as analyzeTemplate, gen, getVisData };
package/dist/index.d.ts CHANGED
@@ -1,23 +1,27 @@
1
1
  export { parse } from '@vue/compiler-sfc';
2
- import * as vis_network from 'vis-network';
2
+ import { Edge, Node } from 'vis-network';
3
3
 
4
4
  declare function analyze$2(content: string): Set<string>;
5
5
 
6
6
  type TypedNode = {
7
7
  label: string;
8
8
  type: NodeType;
9
+ info?: Partial<{
10
+ line: number;
11
+ column: number;
12
+ }>;
9
13
  };
10
14
  declare enum NodeType {
11
15
  var = "var",
12
16
  fun = "fun"
13
17
  }
14
18
 
15
- declare function analyze$1(content: string): {
19
+ declare function analyze$1(content: string, lineOffset?: number): {
16
20
  nodes: Set<TypedNode>;
17
21
  edges: Map<TypedNode, Set<TypedNode>>;
18
22
  };
19
23
 
20
- declare function analyze(content: string): {
24
+ declare function analyze(content: string, lineOffset?: number): {
21
25
  nodes: Set<TypedNode>;
22
26
  edges: Map<TypedNode, Set<TypedNode>>;
23
27
  };
@@ -36,12 +40,15 @@ declare function gen(graph: {
36
40
  edges: Map<TypedNode, Set<TypedNode>>;
37
41
  }, usedNodes: Set<string>): Suggestion[];
38
42
 
43
+ type CustomNode = Node & {
44
+ info: TypedNode['info'];
45
+ };
39
46
  declare function getVisData(graph: {
40
47
  nodes: Set<TypedNode>;
41
48
  edges: Map<TypedNode, Set<TypedNode>>;
42
49
  }, usedNodes: Set<string>): {
43
- nodes: vis_network.Node[];
44
- edges: vis_network.Edge[];
50
+ nodes: CustomNode[];
51
+ edges: Edge[];
45
52
  };
46
53
 
47
54
  export { NodeType, Suggestion, SuggestionType, TypedNode, analyze as analyzeOptions, analyze$1 as analyzeSetupScript, analyze$2 as analyzeTemplate, gen, getVisData };
package/dist/index.js CHANGED
@@ -86284,30 +86284,45 @@ var NodeType = /* @__PURE__ */ ((NodeType3) => {
86284
86284
  return NodeType3;
86285
86285
  })(NodeType || {});
86286
86286
  var NodeCollection = class {
86287
+ lineOffset = 0;
86288
+ constructor(_lineOffset = 0) {
86289
+ this.lineOffset = _lineOffset;
86290
+ }
86287
86291
  nodes = /* @__PURE__ */ new Map();
86288
- addNode(label, node2, options = { isComputed: false }) {
86292
+ addNode(label, node2, options = { isComputed: false, isMethod: false }) {
86289
86293
  if (this.nodes.has(label)) {
86290
86294
  return;
86291
86295
  }
86292
86296
  if (!options.isComputed && (node2.type === "VariableDeclarator" && [
86293
86297
  "ArrowFunctionExpression",
86294
86298
  "FunctionDeclaration"
86295
- ].includes(node2.init?.type || "") || node2.type === "FunctionDeclaration" || node2.type === "ObjectMethod")) {
86299
+ ].includes(node2.init?.type || "") || node2.type === "FunctionDeclaration" || node2.type === "ObjectMethod") || options.isMethod) {
86296
86300
  this.nodes.set(label, {
86297
86301
  label,
86298
- type: "fun" /* fun */
86302
+ type: "fun" /* fun */,
86303
+ info: {
86304
+ line: (node2.loc?.start.line || 1) - 1 + this.lineOffset,
86305
+ column: node2.loc?.start.column || 0
86306
+ }
86299
86307
  });
86300
86308
  } else {
86301
86309
  this.nodes.set(label, {
86302
86310
  label,
86303
- type: "var" /* var */
86311
+ type: "var" /* var */,
86312
+ info: {
86313
+ line: (node2.loc?.start.line || 1) - 1 + this.lineOffset,
86314
+ column: node2.loc?.start.column || 0
86315
+ }
86304
86316
  });
86305
86317
  }
86306
86318
  }
86307
86319
  addTypedNode(label, node2) {
86308
86320
  this.nodes.set(label, {
86309
86321
  label,
86310
- type: node2.type
86322
+ type: node2.type,
86323
+ info: {
86324
+ ...node2.info || {}
86325
+ }
86311
86326
  });
86312
86327
  }
86313
86328
  map(graph) {
@@ -86331,9 +86346,9 @@ var traverse2 = (
86331
86346
  //@ts-ignore
86332
86347
  import_traverse2.default.default?.default || import_traverse2.default.default || import_traverse2.default
86333
86348
  );
86334
- function processSetup(ast, parentScope, parentPath, _spread) {
86349
+ function processSetup(ast, parentScope, parentPath, _spread, _lineOffset = 0) {
86335
86350
  const spread = _spread || [];
86336
- const nodeCollection = new NodeCollection();
86351
+ const nodeCollection = new NodeCollection(_lineOffset);
86337
86352
  const graph = {
86338
86353
  nodes: /* @__PURE__ */ new Set(),
86339
86354
  edges: /* @__PURE__ */ new Map(),
@@ -86349,7 +86364,18 @@ function processSetup(ast, parentScope, parentPath, _spread) {
86349
86364
  const binding2 = path2.scope.getBinding(name);
86350
86365
  if (binding2 && (path2.parent.type === "Program" || parentPath?.type === "ObjectMethod" && parentPath.body === path2.parent) && !(declaration2.init?.type === "CallExpression" && declaration2.init?.callee.type === "Identifier" && ["defineProps", "defineEmits"].includes(declaration2.init?.callee.name))) {
86351
86366
  graph.nodes.add(name);
86352
- nodeCollection.addNode(name, declaration2);
86367
+ nodeCollection.addNode(name, element);
86368
+ if (!graph.edges.get(name)) {
86369
+ graph.edges.set(name, /* @__PURE__ */ new Set());
86370
+ }
86371
+ }
86372
+ }
86373
+ if (element?.type === "RestElement" && element.argument.type === "Identifier") {
86374
+ const name = element.argument.name;
86375
+ const binding2 = path2.scope.getBinding(name);
86376
+ if (binding2 && (path2.parent.type === "Program" || parentPath?.type === "ObjectMethod" && parentPath.body === path2.parent) && !(declaration2.init?.type === "CallExpression" && declaration2.init?.callee.type === "Identifier" && ["defineProps", "defineEmits"].includes(declaration2.init?.callee.name))) {
86377
+ graph.nodes.add(name);
86378
+ nodeCollection.addNode(name, element.argument);
86353
86379
  if (!graph.edges.get(name)) {
86354
86380
  graph.edges.set(name, /* @__PURE__ */ new Set());
86355
86381
  }
@@ -86364,7 +86390,18 @@ function processSetup(ast, parentScope, parentPath, _spread) {
86364
86390
  const binding2 = path2.scope.getBinding(name);
86365
86391
  if (binding2 && (path2.parent.type === "Program" || parentPath?.type === "ObjectMethod" && parentPath.body === path2.parent) && !(declaration2.init?.type === "CallExpression" && declaration2.init?.callee.type === "Identifier" && ["defineProps", "defineEmits"].includes(declaration2.init?.callee.name))) {
86366
86392
  graph.nodes.add(name);
86367
- nodeCollection.addNode(name, declaration2);
86393
+ nodeCollection.addNode(name, property.value);
86394
+ if (!graph.edges.get(name)) {
86395
+ graph.edges.set(name, /* @__PURE__ */ new Set());
86396
+ }
86397
+ }
86398
+ }
86399
+ if (property.type === "RestElement" && property.argument.type === "Identifier") {
86400
+ const name = property.argument.name;
86401
+ const binding2 = path2.scope.getBinding(name);
86402
+ if (binding2 && (path2.parent.type === "Program" || parentPath?.type === "ObjectMethod" && parentPath.body === path2.parent) && !(declaration2.init?.type === "CallExpression" && declaration2.init?.callee.type === "Identifier" && ["defineProps", "defineEmits"].includes(declaration2.init?.callee.name))) {
86403
+ graph.nodes.add(name);
86404
+ nodeCollection.addNode(name, property.argument);
86368
86405
  if (!graph.edges.get(name)) {
86369
86406
  graph.edges.set(name, /* @__PURE__ */ new Set());
86370
86407
  }
@@ -86434,7 +86471,7 @@ function processSetup(ast, parentScope, parentPath, _spread) {
86434
86471
  const binding2 = path2.scope.getBinding(name);
86435
86472
  if (binding2 && (path2.parent.type === "Program" || parentPath?.type === "ObjectMethod" && parentPath.body === path2.parent)) {
86436
86473
  graph.nodes.add(name);
86437
- nodeCollection.addNode(name, path2.node);
86474
+ nodeCollection.addNode(name, path2.node.id, { isMethod: true });
86438
86475
  if (!graph.edges.get(name)) {
86439
86476
  graph.edges.set(name, /* @__PURE__ */ new Set());
86440
86477
  }
@@ -86568,14 +86605,14 @@ function processSetup(ast, parentScope, parentPath, _spread) {
86568
86605
  nodeCollection
86569
86606
  };
86570
86607
  }
86571
- function analyze2(content) {
86608
+ function analyze2(content, lineOffset = 0) {
86572
86609
  const ast = parse_1$1(content, {
86573
86610
  sourceType: "module",
86574
86611
  plugins: [
86575
86612
  "typescript"
86576
86613
  ]
86577
86614
  });
86578
- const { graph, nodeCollection } = processSetup(ast);
86615
+ const { graph, nodeCollection } = processSetup(ast, void 0, void 0, void 0, lineOffset);
86579
86616
  return nodeCollection.map(graph);
86580
86617
  }
86581
86618
 
@@ -86585,14 +86622,14 @@ var traverse3 = (
86585
86622
  //@ts-ignore
86586
86623
  import_traverse3.default.default?.default || import_traverse3.default.default || import_traverse3.default
86587
86624
  );
86588
- function analyze3(content) {
86625
+ function analyze3(content, lineOffset = 0) {
86589
86626
  const ast = parse_1$1(content, {
86590
86627
  sourceType: "module",
86591
86628
  plugins: [
86592
86629
  "typescript"
86593
86630
  ]
86594
86631
  });
86595
- const nodeCollection = new NodeCollection();
86632
+ const nodeCollection = new NodeCollection(lineOffset);
86596
86633
  const graph = {
86597
86634
  nodes: /* @__PURE__ */ new Set(),
86598
86635
  edges: /* @__PURE__ */ new Map()
@@ -86601,6 +86638,29 @@ function analyze3(content) {
86601
86638
  traverse3(node2, {
86602
86639
  ObjectProperty(path1) {
86603
86640
  if (path2.node.declaration.type === "ObjectExpression" && path1.parent === path2.node.declaration || path2.node.declaration.type === "CallExpression" && path1.parent === path2.node.declaration.arguments[0]) {
86641
+ if (path1.node.key.type === "Identifier" && path1.node.key.name === "data" && path1.node.value.type === "ArrowFunctionExpression") {
86642
+ const dataNode = path1.node.value;
86643
+ traverse3(dataNode, {
86644
+ ReturnStatement(path22) {
86645
+ if (path22.parent == dataNode.body) {
86646
+ if (path22.node.argument?.type === "ObjectExpression") {
86647
+ path22.node.argument.properties.forEach((prop) => {
86648
+ if (prop.type === "ObjectProperty") {
86649
+ if (prop.key.type === "Identifier") {
86650
+ const name = prop.key.name;
86651
+ graph.nodes.add(name);
86652
+ nodeCollection.addNode(name, prop);
86653
+ if (!graph.edges.get(name)) {
86654
+ graph.edges.set(name, /* @__PURE__ */ new Set());
86655
+ }
86656
+ }
86657
+ }
86658
+ });
86659
+ }
86660
+ }
86661
+ }
86662
+ }, path1.scope, path1);
86663
+ }
86604
86664
  if (path1.node.key.type === "Identifier" && path1.node.key.name === "computed") {
86605
86665
  const computedNode = path1.node;
86606
86666
  if (computedNode.value.type === "ObjectExpression") {
@@ -86624,11 +86684,11 @@ function analyze3(content) {
86624
86684
  const methodsNode = path1.node;
86625
86685
  if (methodsNode.value.type === "ObjectExpression") {
86626
86686
  methodsNode.value.properties.forEach((prop) => {
86627
- if (prop.type === "ObjectMethod") {
86687
+ if (prop.type === "ObjectProperty" || prop.type === "ObjectMethod") {
86628
86688
  if (prop.key.type === "Identifier") {
86629
86689
  const name = prop.key.name;
86630
86690
  graph.nodes.add(name);
86631
- nodeCollection.addNode(name, prop);
86691
+ nodeCollection.addNode(name, prop, { isMethod: true });
86632
86692
  if (!graph.edges.get(name)) {
86633
86693
  graph.edges.set(name, /* @__PURE__ */ new Set());
86634
86694
  }
@@ -86667,7 +86727,7 @@ function analyze3(content) {
86667
86727
  spread: tempSpread
86668
86728
  },
86669
86729
  nodeCollection: tempNodeCollection
86670
- } = processSetup(setupNode, path1.scope, setupNode, spread);
86730
+ } = processSetup(setupNode, path1.scope, setupNode, spread, lineOffset);
86671
86731
  traverse3(setupNode, {
86672
86732
  ReturnStatement(path22) {
86673
86733
  if (path22.node.argument?.type === "ObjectExpression") {
@@ -87067,7 +87127,8 @@ function getVisData(graph, usedNodes) {
87067
87127
  id: node2.label,
87068
87128
  label: node2.label,
87069
87129
  shape: node2.type === "var" ? "dot" : "diamond",
87070
- group: usedNodes.has(node2.label) ? "used" : "normal"
87130
+ group: usedNodes.has(node2.label) ? "used" : "normal",
87131
+ info: node2.info
87071
87132
  });
87072
87133
  });
87073
87134
  graph.edges.forEach((edge, key) => {