dba1b414b5022fdcb336779480f92f4c54a427c73418528a511d454f3ea70515ad4a594f94a4ed30e272c1d98071ac4960355d774620daaa17ec43029b46bb 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = matchesPattern;
  6. var _index = require("./generated/index.js");
  7. function matchesPattern(member, match, allowPartial) {
  8. if (!(0, _index.isMemberExpression)(member)) return false;
  9. const parts = Array.isArray(match) ? match : match.split(".");
  10. const nodes = [];
  11. let node;
  12. for (node = member; (0, _index.isMemberExpression)(node); node = node.object) {
  13. nodes.push(node.property);
  14. }
  15. nodes.push(node);
  16. if (nodes.length < parts.length) return false;
  17. if (!allowPartial && nodes.length > parts.length) return false;
  18. for (let i = 0, j = nodes.length - 1; i < parts.length; i++, j--) {
  19. const node = nodes[j];
  20. let value;
  21. if ((0, _index.isIdentifier)(node)) {
  22. value = node.name;
  23. } else if ((0, _index.isStringLiteral)(node)) {
  24. value = node.value;
  25. } else if ((0, _index.isThisExpression)(node)) {
  26. value = "this";
  27. } else {
  28. return false;
  29. }
  30. if (parts[i] !== value) return false;
  31. }
  32. return true;
  33. }
  34. //# sourceMappingURL=matchesPattern.js.map