Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

matchesPattern.js 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = matchesPattern;
  6. var _generated = require("./generated");
  7. function matchesPattern(member, match, allowPartial) {
  8. if (!(0, _generated.isMemberExpression)(member)) return false;
  9. const parts = Array.isArray(match) ? match : match.split(".");
  10. const nodes = [];
  11. let node;
  12. for (node = member; (0, _generated.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, _generated.isIdentifier)(node)) {
  22. value = node.name;
  23. } else if ((0, _generated.isStringLiteral)(node)) {
  24. value = node.value;
  25. } else if ((0, _generated.isThisExpression)(node)) {
  26. value = "this";
  27. } else {
  28. return false;
  29. }
  30. if (parts[i] !== value) return false;
  31. }
  32. return true;
  33. }