astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
35 lines (27 loc) • 1.15 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = compileJSXElementMatcher;
var _GenericNodeMatcher = _interopRequireDefault(require("./GenericNodeMatcher"));
var _GenericArrayMatcher = _interopRequireDefault(require("./GenericArrayMatcher"));
var _normalizeJSXTextValue = _interopRequireDefault(require("../util/normalizeJSXTextValue"));
function compileJSXElementMatcher(path, compileOptions) {
var children = path.get('children');
var n = compileOptions.backend.t.namedTypes;
function shouldSkipChild(path) {
return n.JSXText.check(path.value) && (0, _normalizeJSXTextValue["default"])(path.value.value) === '';
}
if (Array.isArray(children.value) && children.value.length) {
return (0, _GenericNodeMatcher["default"])(path, compileOptions, {
keyMatchers: {
children: (0, _GenericArrayMatcher["default"])(children.filter(function (p) {
return !shouldSkipChild(p);
}), compileOptions, {
skipElement: shouldSkipChild
})
}
});
}
}