babel-plugin-transform-react-stateless-component-name
Version:
A babel plugin to add name for default exported stateless components.
42 lines (31 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var doesReturnJSX = function doesReturnJSX(node) {
if (node.isJSXElement()) {
return true;
}
if (node.isReturnStatement()) {
return doesReturnJSX(node.get('argument'));
}
if (node.isBlockStatement()) {
var block = [].concat(_toConsumableArray(node.get('body'))).pop();
if (block.isReturnStatement()) {
return doesReturnJSX(block.get('argument'));
}
if (block.isIfStatement()) {
var alternate = block.get('alternate');
var consequent = block.get('consequent');
return [alternate, consequent].reduce(function (jsx, branch) {
if (jsx) {
return jsx;
}
return doesReturnJSX(branch);
}, false);
}
}
return false;
};
exports.default = doesReturnJSX;