source: trip-planner-front/node_modules/@babel/types/lib/validators/matchesPattern.js@ 6c1585f

Last change on this file since 6c1585f was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 1.1 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = matchesPattern;
7
8var _generated = require("./generated");
9
10function matchesPattern(member, match, allowPartial) {
11 if (!(0, _generated.isMemberExpression)(member)) return false;
12 const parts = Array.isArray(match) ? match : match.split(".");
13 const nodes = [];
14 let node;
15
16 for (node = member; (0, _generated.isMemberExpression)(node); node = node.object) {
17 nodes.push(node.property);
18 }
19
20 nodes.push(node);
21 if (nodes.length < parts.length) return false;
22 if (!allowPartial && nodes.length > parts.length) return false;
23
24 for (let i = 0, j = nodes.length - 1; i < parts.length; i++, j--) {
25 const node = nodes[j];
26 let value;
27
28 if ((0, _generated.isIdentifier)(node)) {
29 value = node.name;
30 } else if ((0, _generated.isStringLiteral)(node)) {
31 value = node.value;
32 } else if ((0, _generated.isThisExpression)(node)) {
33 value = "this";
34 } else {
35 return false;
36 }
37
38 if (parts[i] !== value) return false;
39 }
40
41 return true;
42}
Note: See TracBrowser for help on using the repository browser.