d63f00c14f1443ba0dea014b747a5fdfba3d893c73d13655b85db3fee45d2f06d9b2f01da7e3d1b913e01662aea629a226b693a0756912fb0254a0c61520ae 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = isReferenced;
  6. function isReferenced(node, parent, grandparent) {
  7. switch (parent.type) {
  8. case "MemberExpression":
  9. case "OptionalMemberExpression":
  10. if (parent.property === node) {
  11. return !!parent.computed;
  12. }
  13. return parent.object === node;
  14. case "JSXMemberExpression":
  15. return parent.object === node;
  16. case "VariableDeclarator":
  17. return parent.init === node;
  18. case "ArrowFunctionExpression":
  19. return parent.body === node;
  20. case "PrivateName":
  21. return false;
  22. case "ClassMethod":
  23. case "ClassPrivateMethod":
  24. case "ObjectMethod":
  25. if (parent.key === node) {
  26. return !!parent.computed;
  27. }
  28. return false;
  29. case "ObjectProperty":
  30. if (parent.key === node) {
  31. return !!parent.computed;
  32. }
  33. return !grandparent || grandparent.type !== "ObjectPattern";
  34. case "ClassProperty":
  35. case "ClassAccessorProperty":
  36. if (parent.key === node) {
  37. return !!parent.computed;
  38. }
  39. return true;
  40. case "ClassPrivateProperty":
  41. return parent.key !== node;
  42. case "ClassDeclaration":
  43. case "ClassExpression":
  44. return parent.superClass === node;
  45. case "AssignmentExpression":
  46. return parent.right === node;
  47. case "AssignmentPattern":
  48. return parent.right === node;
  49. case "LabeledStatement":
  50. return false;
  51. case "CatchClause":
  52. return false;
  53. case "RestElement":
  54. return false;
  55. case "BreakStatement":
  56. case "ContinueStatement":
  57. return false;
  58. case "FunctionDeclaration":
  59. case "FunctionExpression":
  60. return false;
  61. case "ExportNamespaceSpecifier":
  62. case "ExportDefaultSpecifier":
  63. return false;
  64. case "ExportSpecifier":
  65. if (grandparent != null && grandparent.source) {
  66. return false;
  67. }
  68. return parent.local === node;
  69. case "ImportDefaultSpecifier":
  70. case "ImportNamespaceSpecifier":
  71. case "ImportSpecifier":
  72. return false;
  73. case "ImportAttribute":
  74. return false;
  75. case "JSXAttribute":
  76. return false;
  77. case "ObjectPattern":
  78. case "ArrayPattern":
  79. return false;
  80. case "MetaProperty":
  81. return false;
  82. case "ObjectTypeProperty":
  83. return parent.key !== node;
  84. case "TSEnumMember":
  85. return parent.id !== node;
  86. case "TSPropertySignature":
  87. if (parent.key === node) {
  88. return !!parent.computed;
  89. }
  90. return true;
  91. }
  92. return true;
  93. }
  94. //# sourceMappingURL=isReferenced.js.map