"use strict";
|
|
exports.__esModule = true;
|
exports.Flow = exports.Pure = exports.Generated = exports.User = exports.Var = exports.BlockScoped = exports.Referenced = exports.Scope = exports.Expression = exports.Statement = exports.BindingIdentifier = exports.ReferencedMemberExpression = exports.ReferencedIdentifier = undefined;
|
|
var _babelTypes = require("babel-types");
|
|
var t = _interopRequireWildcard(_babelTypes);
|
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
|
var ReferencedIdentifier = exports.ReferencedIdentifier = {
|
types: ["Identifier", "JSXIdentifier"],
|
checkPath: function checkPath(_ref, opts) {
|
var node = _ref.node,
|
parent = _ref.parent;
|
|
if (!t.isIdentifier(node, opts) && !t.isJSXMemberExpression(parent, opts)) {
|
if (t.isJSXIdentifier(node, opts)) {
|
if (_babelTypes.react.isCompatTag(node.name)) return false;
|
} else {
|
return false;
|
}
|
}
|
|
return t.isReferenced(node, parent);
|
}
|
};
|
|
var ReferencedMemberExpression = exports.ReferencedMemberExpression = {
|
types: ["MemberExpression"],
|
checkPath: function checkPath(_ref2) {
|
var node = _ref2.node,
|
parent = _ref2.parent;
|
|
return t.isMemberExpression(node) && t.isReferenced(node, parent);
|
}
|
};
|
|
var BindingIdentifier = exports.BindingIdentifier = {
|
types: ["Identifier"],
|
checkPath: function checkPath(_ref3) {
|
var node = _ref3.node,
|
parent = _ref3.parent;
|
|
return t.isIdentifier(node) && t.isBinding(node, parent);
|
}
|
};
|
|
var Statement = exports.Statement = {
|
types: ["Statement"],
|
checkPath: function checkPath(_ref4) {
|
var node = _ref4.node,
|
parent = _ref4.parent;
|
|
if (t.isStatement(node)) {
|
if (t.isVariableDeclaration(node)) {
|
if (t.isForXStatement(parent, { left: node })) return false;
|
if (t.isForStatement(parent, { init: node })) return false;
|
}
|
|
return true;
|
} else {
|
return false;
|
}
|
}
|
};
|
|
var Expression = exports.Expression = {
|
types: ["Expression"],
|
checkPath: function checkPath(path) {
|
if (path.isIdentifier()) {
|
return path.isReferencedIdentifier();
|
} else {
|
return t.isExpression(path.node);
|
}
|
}
|
};
|
|
var Scope = exports.Scope = {
|
types: ["Scopable"],
|
checkPath: function checkPath(path) {
|
return t.isScope(path.node, path.parent);
|
}
|
};
|
|
var Referenced = exports.Referenced = {
|
checkPath: function checkPath(path) {
|
return t.isReferenced(path.node, path.parent);
|
}
|
};
|
|
var BlockScoped = exports.BlockScoped = {
|
checkPath: function checkPath(path) {
|
return t.isBlockScoped(path.node);
|
}
|
};
|
|
var Var = exports.Var = {
|
types: ["VariableDeclaration"],
|
checkPath: function checkPath(path) {
|
return t.isVar(path.node);
|
}
|
};
|
|
var User = exports.User = {
|
checkPath: function checkPath(path) {
|
return path.node && !!path.node.loc;
|
}
|
};
|
|
var Generated = exports.Generated = {
|
checkPath: function checkPath(path) {
|
return !path.isUser();
|
}
|
};
|
|
var Pure = exports.Pure = {
|
checkPath: function checkPath(path, opts) {
|
return path.scope.isPure(path.node, opts);
|
}
|
};
|
|
var Flow = exports.Flow = {
|
types: ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"],
|
checkPath: function checkPath(_ref5) {
|
var node = _ref5.node;
|
|
if (t.isFlow(node)) {
|
return true;
|
} else if (t.isImportDeclaration(node)) {
|
return node.importKind === "type" || node.importKind === "typeof";
|
} else if (t.isExportDeclaration(node)) {
|
return node.exportKind === "type";
|
} else if (t.isImportSpecifier(node)) {
|
return node.importKind === "type" || node.importKind === "typeof";
|
} else {
|
return false;
|
}
|
}
|
};
|