vue-hook-optimizer 0.0.8 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.mjs CHANGED
@@ -49,8 +49,8 @@ var require_virtual_types = __commonJS({
49
49
  exports.Statement = Statement;
50
50
  var Expression = ["Expression"];
51
51
  exports.Expression = Expression;
52
- var Scope2 = ["Scopable", "Pattern"];
53
- exports.Scope = Scope2;
52
+ var Scope3 = ["Scopable", "Pattern"];
53
+ exports.Scope = Scope3;
54
54
  var Referenced = null;
55
55
  exports.Referenced = Referenced;
56
56
  var BlockScoped = null;
@@ -18063,7 +18063,7 @@ var require_scope = __commonJS({
18063
18063
  }
18064
18064
  };
18065
18065
  var uid = 0;
18066
- var Scope2 = class _Scope {
18066
+ var Scope3 = class _Scope {
18067
18067
  constructor(path2) {
18068
18068
  this.uid = void 0;
18069
18069
  this.path = void 0;
@@ -18698,9 +18698,9 @@ var require_scope = __commonJS({
18698
18698
  } while (scope = scope.parent);
18699
18699
  }
18700
18700
  };
18701
- exports.default = Scope2;
18702
- Scope2.globals = Object.keys(_globals.builtin);
18703
- Scope2.contextVariables = ["arguments", "undefined", "Infinity", "NaN"];
18701
+ exports.default = Scope3;
18702
+ Scope3.globals = Object.keys(_globals.builtin);
18703
+ Scope3.contextVariables = ["arguments", "undefined", "Infinity", "NaN"];
18704
18704
  }
18705
18705
  });
18706
18706
 
@@ -29012,7 +29012,7 @@ var require_lib9 = __commonJS({
29012
29012
  var CLASS_ELEMENT_INSTANCE_GETTER2 = CLASS_ELEMENT_KIND_GETTER2;
29013
29013
  var CLASS_ELEMENT_INSTANCE_SETTER2 = CLASS_ELEMENT_KIND_SETTER2;
29014
29014
  var CLASS_ELEMENT_OTHER2 = 0;
29015
- var Scope2 = class {
29015
+ var Scope3 = class {
29016
29016
  constructor(flags) {
29017
29017
  this.var = /* @__PURE__ */ new Set();
29018
29018
  this.lexical = /* @__PURE__ */ new Set();
@@ -29068,7 +29068,7 @@ var require_lib9 = __commonJS({
29068
29068
  return this.treatFunctionsAsVarInScope(this.currentScope());
29069
29069
  }
29070
29070
  createScope(flags) {
29071
- return new Scope2(flags);
29071
+ return new Scope3(flags);
29072
29072
  }
29073
29073
  enter(flags) {
29074
29074
  this.scopeStack.push(this.createScope(flags));
@@ -29163,7 +29163,7 @@ var require_lib9 = __commonJS({
29163
29163
  }
29164
29164
  }
29165
29165
  };
29166
- var FlowScope2 = class extends Scope2 {
29166
+ var FlowScope2 = class extends Scope3 {
29167
29167
  constructor(...args) {
29168
29168
  super(...args);
29169
29169
  this.declareFunctions = /* @__PURE__ */ new Set();
@@ -34669,7 +34669,7 @@ var require_lib9 = __commonJS({
34669
34669
  }
34670
34670
  }
34671
34671
  };
34672
- var TypeScriptScope2 = class extends Scope2 {
34672
+ var TypeScriptScope2 = class extends Scope3 {
34673
34673
  constructor(...args) {
34674
34674
  super(...args);
34675
34675
  this.types = /* @__PURE__ */ new Set();
@@ -86267,13 +86267,7 @@ var traverse2 = (
86267
86267
  //@ts-ignore
86268
86268
  import_traverse2.default.default?.default || import_traverse2.default.default || import_traverse2.default
86269
86269
  );
86270
- function analyze2(content) {
86271
- const ast = parse_1$1(content, {
86272
- sourceType: "module",
86273
- plugins: [
86274
- "typescript"
86275
- ]
86276
- });
86270
+ function processSetup(ast, parentScope, parentPath) {
86277
86271
  const graph = {
86278
86272
  nodes: /* @__PURE__ */ new Set(),
86279
86273
  edges: /* @__PURE__ */ new Map()
@@ -86281,10 +86275,38 @@ function analyze2(content) {
86281
86275
  traverse2(ast, {
86282
86276
  VariableDeclaration(path2) {
86283
86277
  path2.node.declarations.forEach((declaration2) => {
86278
+ if (declaration2.id.type === "ArrayPattern") {
86279
+ declaration2.id.elements.forEach((element) => {
86280
+ if (element?.type === "Identifier") {
86281
+ const name = element.name;
86282
+ const binding2 = path2.scope.getBinding(name);
86283
+ 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))) {
86284
+ graph.nodes.add(name);
86285
+ if (!graph.edges.get(name)) {
86286
+ graph.edges.set(name, /* @__PURE__ */ new Set());
86287
+ }
86288
+ }
86289
+ }
86290
+ });
86291
+ }
86292
+ if (declaration2.id.type === "ObjectPattern") {
86293
+ declaration2.id.properties.forEach((property) => {
86294
+ if (property.type === "ObjectProperty" && property.value.type === "Identifier") {
86295
+ const name = property.value.name;
86296
+ const binding2 = path2.scope.getBinding(name);
86297
+ 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))) {
86298
+ graph.nodes.add(name);
86299
+ if (!graph.edges.get(name)) {
86300
+ graph.edges.set(name, /* @__PURE__ */ new Set());
86301
+ }
86302
+ }
86303
+ }
86304
+ });
86305
+ }
86284
86306
  if (declaration2.id?.type === "Identifier") {
86285
86307
  const name = declaration2.id.name;
86286
86308
  const binding2 = path2.scope.getBinding(name);
86287
- if (binding2 && path2.parent.type === "Program" && !(declaration2.init?.type === "CallExpression" && declaration2.init?.callee.type === "Identifier" && ["defineProps", "defineEmits"].includes(declaration2.init?.callee.name))) {
86309
+ 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))) {
86288
86310
  graph.nodes.add(name);
86289
86311
  if (!graph.edges.get(name)) {
86290
86312
  graph.edges.set(name, /* @__PURE__ */ new Set());
@@ -86297,7 +86319,7 @@ function analyze2(content) {
86297
86319
  const name = path2.node.id?.name;
86298
86320
  if (name) {
86299
86321
  const binding2 = path2.scope.getBinding(name);
86300
- if (binding2 && path2.parent.type === "Program") {
86322
+ if (binding2 && (path2.parent.type === "Program" || parentPath?.type === "ObjectMethod" && parentPath.body === path2.parent)) {
86301
86323
  graph.nodes.add(name);
86302
86324
  if (!graph.edges.get(name)) {
86303
86325
  graph.edges.set(name, /* @__PURE__ */ new Set());
@@ -86305,7 +86327,7 @@ function analyze2(content) {
86305
86327
  }
86306
86328
  }
86307
86329
  }
86308
- });
86330
+ }, parentScope, parentPath);
86309
86331
  traverse2(ast, {
86310
86332
  FunctionDeclaration(path2) {
86311
86333
  const name = path2.node.id?.name;
@@ -86313,7 +86335,7 @@ function analyze2(content) {
86313
86335
  path2.traverse({
86314
86336
  Identifier(path1) {
86315
86337
  const binding2 = path1.scope.getBinding(path1.node.name);
86316
- if (graph.nodes.has(path1.node.name) && path1.node.name !== name && binding2?.scope.block.type === "Program") {
86338
+ if (graph.nodes.has(path1.node.name) && path1.node.name !== name && (binding2?.scope.block.type === "Program" || parentScope === binding2?.scope)) {
86317
86339
  graph.edges.get(name)?.add(path1.node.name);
86318
86340
  }
86319
86341
  }
@@ -86322,6 +86344,40 @@ function analyze2(content) {
86322
86344
  },
86323
86345
  VariableDeclarator(path2) {
86324
86346
  if (path2.node.init) {
86347
+ if (path2.node.id.type === "ArrayPattern") {
86348
+ path2.node.id.elements.forEach((element) => {
86349
+ if (element?.type === "Identifier") {
86350
+ const name = element.name;
86351
+ if (name && graph.nodes.has(name) && path2.node.init?.type === "CallExpression") {
86352
+ traverse2(path2.node.init, {
86353
+ Identifier(path1) {
86354
+ const binding2 = path1.scope.getBinding(path1.node.name);
86355
+ if (graph.nodes.has(path1.node.name) && path1.node.name !== name && (binding2?.scope.block.type === "Program" || parentScope === binding2?.scope)) {
86356
+ graph.edges.get(name)?.add(path1.node.name);
86357
+ }
86358
+ }
86359
+ }, path2.scope, path2);
86360
+ }
86361
+ }
86362
+ });
86363
+ }
86364
+ if (path2.node.id.type === "ObjectPattern") {
86365
+ path2.node.id.properties.forEach((property) => {
86366
+ if (property.type === "ObjectProperty" && property.value.type === "Identifier") {
86367
+ const name = property.value.name;
86368
+ if (name && graph.nodes.has(name) && path2.node.init) {
86369
+ traverse2(path2.node.init, {
86370
+ Identifier(path1) {
86371
+ const binding2 = path1.scope.getBinding(path1.node.name);
86372
+ if (graph.nodes.has(path1.node.name) && path1.node.name !== name && (binding2?.scope.block.type === "Program" || parentScope === binding2?.scope)) {
86373
+ graph.edges.get(name)?.add(path1.node.name);
86374
+ }
86375
+ }
86376
+ }, path2.scope, path2);
86377
+ }
86378
+ }
86379
+ });
86380
+ }
86325
86381
  if ([
86326
86382
  "CallExpression",
86327
86383
  "ArrowFunctionExpression",
@@ -86329,21 +86385,30 @@ function analyze2(content) {
86329
86385
  ].includes(path2.node.init.type) && path2.node.id.type === "Identifier") {
86330
86386
  const name = path2.node.id?.name;
86331
86387
  if (name && graph.nodes.has(name)) {
86332
- path2.traverse({
86388
+ traverse2(path2.node.init, {
86333
86389
  Identifier(path1) {
86334
86390
  const binding2 = path1.scope.getBinding(path1.node.name);
86335
- if (graph.nodes.has(path1.node.name) && path1.node.name !== name && binding2?.scope.block.type === "Program") {
86391
+ if (graph.nodes.has(path1.node.name) && path1.node.name !== name && (binding2?.scope.block.type === "Program" || parentScope === binding2?.scope)) {
86336
86392
  graph.edges.get(name)?.add(path1.node.name);
86337
86393
  }
86338
86394
  }
86339
- });
86395
+ }, path2.scope, path2);
86340
86396
  }
86341
86397
  }
86342
86398
  }
86343
86399
  }
86344
- });
86400
+ }, parentScope, parentPath);
86345
86401
  return graph;
86346
86402
  }
86403
+ function analyze2(content) {
86404
+ const ast = parse_1$1(content, {
86405
+ sourceType: "module",
86406
+ plugins: [
86407
+ "typescript"
86408
+ ]
86409
+ });
86410
+ return processSetup(ast);
86411
+ }
86347
86412
 
86348
86413
  // src/analyze/options.ts
86349
86414
  var import_traverse3 = __toESM(require_lib13());
@@ -86404,68 +86469,10 @@ function analyze3(content) {
86404
86469
  if (path2.node.declaration.type === "ObjectExpression" && path1.parent === path2.node.declaration || path2.node.declaration.type === "CallExpression" && path1.parent === path2.node.declaration.arguments[0]) {
86405
86470
  if (path1.node.key.type === "Identifier" && path1.node.key.name === "setup") {
86406
86471
  const setupNode = path1.node;
86407
- const tempNodes = /* @__PURE__ */ new Set();
86408
- const tempEdges = /* @__PURE__ */ new Map();
86409
- traverse3(setupNode, {
86410
- VariableDeclaration(path22) {
86411
- path22.node.declarations.forEach((declaration2) => {
86412
- if (declaration2.id?.type === "Identifier") {
86413
- const name = declaration2.id.name;
86414
- if (path22.parent == setupNode.body) {
86415
- tempNodes.add(name);
86416
- if (!tempEdges.get(name)) {
86417
- tempEdges.set(name, /* @__PURE__ */ new Set());
86418
- }
86419
- }
86420
- }
86421
- });
86422
- },
86423
- FunctionDeclaration(path22) {
86424
- const name = path22.node.id?.name;
86425
- if (name) {
86426
- if (path22.parent == setupNode.body) {
86427
- tempNodes.add(name);
86428
- if (!tempEdges.get(name)) {
86429
- tempEdges.set(name, /* @__PURE__ */ new Set());
86430
- }
86431
- }
86432
- }
86433
- }
86434
- }, path1.scope, path1);
86435
- traverse3(setupNode, {
86436
- FunctionDeclaration(path3) {
86437
- const name = path3.node.id?.name;
86438
- if (name && tempNodes.has(name)) {
86439
- path3.traverse({
86440
- Identifier(path4) {
86441
- if (tempNodes.has(path4.node.name) && path4.node.name !== name) {
86442
- tempEdges.get(name)?.add(path4.node.name);
86443
- }
86444
- }
86445
- });
86446
- }
86447
- },
86448
- VariableDeclarator(path3) {
86449
- if (path3.node.init) {
86450
- if ([
86451
- "CallExpression",
86452
- "ArrowFunctionExpression",
86453
- "FunctionDeclaration"
86454
- ].includes(path3.node.init.type) && path3.node.id.type === "Identifier") {
86455
- const name = path3.node.id?.name;
86456
- if (name && tempNodes.has(name)) {
86457
- path3.traverse({
86458
- Identifier(path4) {
86459
- if (tempNodes.has(path4.node.name) && path4.node.name !== name) {
86460
- tempEdges.get(name)?.add(path4.node.name);
86461
- }
86462
- }
86463
- });
86464
- }
86465
- }
86466
- }
86467
- }
86468
- }, path1.scope, path1);
86472
+ const {
86473
+ nodes: tempNodes,
86474
+ edges: tempEdges
86475
+ } = processSetup(setupNode, path1.scope, setupNode);
86469
86476
  traverse3(setupNode, {
86470
86477
  ReturnStatement(path22) {
86471
86478
  if (path22.node.argument?.type === "ObjectExpression") {