Last change
on this file 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 |
|
---|
3 | Object.defineProperty(exports, "__esModule", {
|
---|
4 | value: true
|
---|
5 | });
|
---|
6 | exports.default = matchesPattern;
|
---|
7 |
|
---|
8 | var _generated = require("./generated");
|
---|
9 |
|
---|
10 | function 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.