flow like the river
This commit is contained in:
commit
013fe673f3
42435 changed files with 5764238 additions and 0 deletions
38
VISUALIZACION/node_modules/parcel-bundler/lib/visitors/matches-pattern.js
generated
vendored
Executable file
38
VISUALIZACION/node_modules/parcel-bundler/lib/visitors/matches-pattern.js
generated
vendored
Executable file
|
|
@ -0,0 +1,38 @@
|
|||
'use strict';
|
||||
|
||||
const types = require('babel-types');
|
||||
|
||||
// from babel-types. remove when we upgrade to babel 7.
|
||||
// https://github.com/babel/babel/blob/0189b387026c35472dccf45d14d58312d249f799/packages/babel-types/src/index.js#L347
|
||||
module.exports = function matchesPattern(member, match, allowPartial) {
|
||||
// not a member expression
|
||||
if (!types.isMemberExpression(member)) return false;
|
||||
|
||||
const parts = Array.isArray(match) ? match : match.split('.');
|
||||
const nodes = [];
|
||||
|
||||
let node;
|
||||
for (node = member; types.isMemberExpression(node); node = node.object) {
|
||||
nodes.push(node.property);
|
||||
}
|
||||
nodes.push(node);
|
||||
|
||||
if (nodes.length < parts.length) return false;
|
||||
if (!allowPartial && nodes.length > parts.length) return false;
|
||||
|
||||
for (let i = 0, j = nodes.length - 1; i < parts.length; i++, j--) {
|
||||
const node = nodes[j];
|
||||
let value;
|
||||
if (types.isIdentifier(node)) {
|
||||
value = node.name;
|
||||
} else if (types.isStringLiteral(node)) {
|
||||
value = node.value;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (parts[i] !== value) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue