astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
35 lines (32 loc) • 3.73 kB
JavaScript
import compilePlaceholderMatcher from './Placeholder.mjs'
export default function compileJSXAttributeMatcher(path, compileOptions) {
const pattern = path.value
const n = compileOptions.backend.t.namedTypes
if (n.JSXIdentifier.check(pattern.name)) {
if (pattern.value == null) {
const placeholderMatcher = compilePlaceholderMatcher(
path,
pattern.name.name,
compileOptions,
{
nodeType: 'JSX',
getCondition: () => (path) => {
var _path$parent, _path$parentPath
return (
n.JSXOpeningElement.check(
(_path$parent = path.parent) === null || _path$parent === void 0
? void 0
: _path$parent.value
) &&
((_path$parentPath = path.parentPath) === null ||
_path$parentPath === void 0
? void 0
: _path$parentPath.name) === 'attributes'
)
},
}
)
if (placeholderMatcher) return placeholderMatcher
}
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIiwiY29tcGlsZUpTWEF0dHJpYnV0ZU1hdGNoZXIiLCJwYXRoIiwiY29tcGlsZU9wdGlvbnMiLCJwYXR0ZXJuIiwidmFsdWUiLCJuIiwiYmFja2VuZCIsInQiLCJuYW1lZFR5cGVzIiwiSlNYSWRlbnRpZmllciIsImNoZWNrIiwibmFtZSIsInBsYWNlaG9sZGVyTWF0Y2hlciIsIm5vZGVUeXBlIiwiZ2V0Q29uZGl0aW9uIiwiSlNYT3BlbmluZ0VsZW1lbnQiLCJwYXJlbnQiLCJwYXJlbnRQYXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVNYXRjaGVyL0pTWEF0dHJpYnV0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKU1hBdHRyaWJ1dGUsIE5vZGVQYXRoIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBDb21waWxlZE1hdGNoZXIsIENvbXBpbGVPcHRpb25zIH0gZnJvbSAnLidcbmltcG9ydCBjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIGZyb20gJy4vUGxhY2Vob2xkZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXBpbGVKU1hBdHRyaWJ1dGVNYXRjaGVyKFxuICBwYXRoOiBOb2RlUGF0aDxKU1hBdHRyaWJ1dGUsIEpTWEF0dHJpYnV0ZT4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlT3B0aW9uc1xuKTogQ29tcGlsZWRNYXRjaGVyIHwgdm9pZCB7XG4gIGNvbnN0IHBhdHRlcm46IEpTWEF0dHJpYnV0ZSA9IHBhdGgudmFsdWVcbiAgY29uc3QgbiA9IGNvbXBpbGVPcHRpb25zLmJhY2tlbmQudC5uYW1lZFR5cGVzXG5cbiAgaWYgKG4uSlNYSWRlbnRpZmllci5jaGVjayhwYXR0ZXJuLm5hbWUpKSB7XG4gICAgaWYgKHBhdHRlcm4udmFsdWUgPT0gbnVsbCkge1xuICAgICAgY29uc3QgcGxhY2Vob2xkZXJNYXRjaGVyID0gY29tcGlsZVBsYWNlaG9sZGVyTWF0Y2hlcihcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcGF0dGVybi5uYW1lLm5hbWUsXG4gICAgICAgIGNvbXBpbGVPcHRpb25zLFxuICAgICAgICB7XG4gICAgICAgICAgbm9kZVR5cGU6ICdKU1gnLFxuICAgICAgICAgIGdldENvbmRpdGlvbjogKCkgPT4gKHBhdGgpID0+XG4gICAgICAgICAgICBuLkpTWE9wZW5pbmdFbGVtZW50LmNoZWNrKHBhdGgucGFyZW50Py52YWx1ZSkgJiZcbiAgICAgICAgICAgIHBhdGgucGFyZW50UGF0aD8ubmFtZSA9PT0gJ2F0dHJpYnV0ZXMnLFxuICAgICAgICB9XG4gICAgICApXG5cbiAgICAgIGlmIChwbGFjZWhvbGRlck1hdGNoZXIpIHJldHVybiBwbGFjZWhvbGRlck1hdGNoZXJcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSx5QkFBUCxNQUFzQyxlQUF0Qzs7QUFFQSxlQUFlLFNBQVNDLDBCQUFUO0FBQ2JDLElBRGE7QUFFYkMsY0FGYTtBQUdXO0VBQ3hCLE1BQU1DLE9BQXFCLEdBQUdGLElBQUksQ0FBQ0csS0FBbkM7RUFDQSxNQUFNQyxDQUFDLEdBQUdILGNBQWMsQ0FBQ0ksT0FBZixDQUF1QkMsQ0FBdkIsQ0FBeUJDLFVBQW5DOztFQUVBLElBQUlILENBQUMsQ0FBQ0ksYUFBRixDQUFnQkMsS0FBaEIsQ0FBc0JQLE9BQU8sQ0FBQ1EsSUFBOUIsQ0FBSixFQUF5QztJQUN2QyxJQUFJUixPQUFPLENBQUNDLEtBQVIsSUFBaUIsSUFBckIsRUFBMkI7TUFDekIsTUFBTVEsa0JBQWtCLEdBQUdiLHlCQUF5QjtNQUNsREUsSUFEa0Q7TUFFbERFLE9BQU8sQ0FBQ1EsSUFBUixDQUFhQSxJQUZxQztNQUdsRFQsY0FIa0Q7TUFJbEQ7UUFDRVcsUUFBUSxFQUFFLEtBRFo7UUFFRUMsWUFBWSxFQUFFLE1BQU0sQ0FBQ2IsSUFBRDtZQUNsQkksQ0FBQyxDQUFDVSxpQkFBRixDQUFvQkwsS0FBcEIsaUJBQTBCVCxJQUFJLENBQUNlLE1BQS9CLGlEQUEwQixhQUFhWixLQUF2QztZQUNBLHFCQUFBSCxJQUFJLENBQUNnQixVQUFMLHNFQUFpQk4sSUFBakIsTUFBMEIsWUFGUixHQUZ0QixFQUprRCxDQUFwRDs7OztNQVlBLElBQUlDLGtCQUFKLEVBQXdCLE9BQU9BLGtCQUFQO0lBQ3pCO0VBQ0Y7QUFDRiJ9