astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
29 lines (26 loc) • 4.01 kB
JavaScript
import compileGenericNodeMatcher from './GenericNodeMatcher.mjs'
import compileGenericArrayMatcher from './GenericArrayMatcher.mjs'
import normalizeJSXTextValue from '../util/normalizeJSXTextValue.mjs'
export default function compileJSXElementMatcher(path, compileOptions) {
const children = path.get('children')
const n = compileOptions.backend.t.namedTypes
function shouldSkipChild(path) {
return (
n.JSXText.check(path.value) &&
normalizeJSXTextValue(path.value.value) === ''
)
}
if (Array.isArray(children.value) && children.value.length) {
return compileGenericNodeMatcher(path, compileOptions, {
keyMatchers: {
children: compileGenericArrayMatcher(
children.filter((p) => !shouldSkipChild(p)),
compileOptions,
{
skipElement: shouldSkipChild,
}
),
},
})
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlR2VuZXJpY05vZGVNYXRjaGVyIiwiY29tcGlsZUdlbmVyaWNBcnJheU1hdGNoZXIiLCJub3JtYWxpemVKU1hUZXh0VmFsdWUiLCJjb21waWxlSlNYRWxlbWVudE1hdGNoZXIiLCJwYXRoIiwiY29tcGlsZU9wdGlvbnMiLCJjaGlsZHJlbiIsImdldCIsIm4iLCJiYWNrZW5kIiwidCIsIm5hbWVkVHlwZXMiLCJzaG91bGRTa2lwQ2hpbGQiLCJKU1hUZXh0IiwiY2hlY2siLCJ2YWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImtleU1hdGNoZXJzIiwiZmlsdGVyIiwicCIsInNraXBFbGVtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVNYXRjaGVyL0pTWEVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNYRWxlbWVudCwgTm9kZVBhdGggfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IENvbXBpbGVkTWF0Y2hlciwgQ29tcGlsZU9wdGlvbnMgfSBmcm9tICcuJ1xuaW1wb3J0IGNvbXBpbGVHZW5lcmljTm9kZU1hdGNoZXIgZnJvbSAnLi9HZW5lcmljTm9kZU1hdGNoZXInXG5pbXBvcnQgY29tcGlsZUdlbmVyaWNBcnJheU1hdGNoZXIgZnJvbSAnLi9HZW5lcmljQXJyYXlNYXRjaGVyJ1xuaW1wb3J0IG5vcm1hbGl6ZUpTWFRleHRWYWx1ZSBmcm9tICcuLi91dGlsL25vcm1hbGl6ZUpTWFRleHRWYWx1ZSdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZUpTWEVsZW1lbnRNYXRjaGVyKFxuICBwYXRoOiBOb2RlUGF0aDxKU1hFbGVtZW50LCBKU1hFbGVtZW50PixcbiAgY29tcGlsZU9wdGlvbnM6IENvbXBpbGVPcHRpb25zXG4pOiBDb21waWxlZE1hdGNoZXIgfCB2b2lkIHtcbiAgY29uc3QgY2hpbGRyZW4gPSBwYXRoLmdldCgnY2hpbGRyZW4nKVxuICBjb25zdCBuID0gY29tcGlsZU9wdGlvbnMuYmFja2VuZC50Lm5hbWVkVHlwZXNcblxuICBmdW5jdGlvbiBzaG91bGRTa2lwQ2hpbGQocGF0aDogTm9kZVBhdGgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgbi5KU1hUZXh0LmNoZWNrKHBhdGgudmFsdWUpICYmXG4gICAgICBub3JtYWxpemVKU1hUZXh0VmFsdWUocGF0aC52YWx1ZS52YWx1ZSkgPT09ICcnXG4gICAgKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4udmFsdWUpICYmIGNoaWxkcmVuLnZhbHVlLmxlbmd0aCkge1xuICAgIHJldHVybiBjb21waWxlR2VuZXJpY05vZGVNYXRjaGVyKHBhdGgsIGNvbXBpbGVPcHRpb25zLCB7XG4gICAgICBrZXlNYXRjaGVyczoge1xuICAgICAgICBjaGlsZHJlbjogY29tcGlsZUdlbmVyaWNBcnJheU1hdGNoZXIoXG4gICAgICAgICAgY2hpbGRyZW4uZmlsdGVyKChwOiBOb2RlUGF0aCkgPT4gIXNob3VsZFNraXBDaGlsZChwKSksXG4gICAgICAgICAgY29tcGlsZU9wdGlvbnMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2tpcEVsZW1lbnQ6IHNob3VsZFNraXBDaGlsZCxcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSx5QkFBUCxNQUFzQyxzQkFBdEM7QUFDQSxPQUFPQywwQkFBUCxNQUF1Qyx1QkFBdkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywrQkFBbEM7O0FBRUEsZUFBZSxTQUFTQyx3QkFBVDtBQUNiQyxJQURhO0FBRWJDLGNBRmE7QUFHVztFQUN4QixNQUFNQyxRQUFRLEdBQUdGLElBQUksQ0FBQ0csR0FBTCxDQUFTLFVBQVQsQ0FBakI7RUFDQSxNQUFNQyxDQUFDLEdBQUdILGNBQWMsQ0FBQ0ksT0FBZixDQUF1QkMsQ0FBdkIsQ0FBeUJDLFVBQW5DOztFQUVBLFNBQVNDLGVBQVQsQ0FBeUJSLElBQXpCLEVBQWtEO0lBQ2hEO01BQ0VJLENBQUMsQ0FBQ0ssT0FBRixDQUFVQyxLQUFWLENBQWdCVixJQUFJLENBQUNXLEtBQXJCO01BQ0FiLHFCQUFxQixDQUFDRSxJQUFJLENBQUNXLEtBQUwsQ0FBV0EsS0FBWixDQUFyQixLQUE0QyxFQUY5Qzs7RUFJRDs7RUFFRCxJQUFJQyxLQUFLLENBQUNDLE9BQU4sQ0FBY1gsUUFBUSxDQUFDUyxLQUF2QixLQUFpQ1QsUUFBUSxDQUFDUyxLQUFULENBQWVHLE1BQXBELEVBQTREO0lBQzFELE9BQU9sQix5QkFBeUIsQ0FBQ0ksSUFBRCxFQUFPQyxjQUFQLEVBQXVCO01BQ3JEYyxXQUFXLEVBQUU7UUFDWGIsUUFBUSxFQUFFTCwwQkFBMEI7UUFDbENLLFFBQVEsQ0FBQ2MsTUFBVCxDQUFnQixDQUFDQyxDQUFELEtBQWlCLENBQUNULGVBQWUsQ0FBQ1MsQ0FBRCxDQUFqRCxDQURrQztRQUVsQ2hCLGNBRmtDO1FBR2xDO1VBQ0VpQixXQUFXLEVBQUVWLGVBRGYsRUFIa0MsQ0FEekIsRUFEd0MsRUFBdkIsQ0FBaEM7Ozs7O0VBV0Q7QUFDRiJ9