UNPKG

astx

Version:

super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring

58 lines (54 loc) 5.65 kB
import compilePlaceholderMatcher from './Placeholder.mjs' export default function compileJSXExpressionContainerMatcher( path, compileOptions ) { const pattern = path.value const n = compileOptions.backend.t.namedTypes if (n.Identifier.check(pattern.expression)) { const placeholderMatcher = compilePlaceholderMatcher( path, pattern.expression.name, compileOptions, { nodeType: ['JSX', 'StringLiteral'], getCondition: () => [ function isJSXAttributeValue(path) { var _path$parent return ( n.JSXAttribute.check( (_path$parent = path.parent) === null || _path$parent === void 0 ? void 0 : _path$parent.value ) && path.name === 'value' ) }, function isJSXChild(path) { var _path$parent2, _path$parent3, _path$parentPath return ( (n.JSXElement.check( (_path$parent2 = path.parent) === null || _path$parent2 === void 0 ? void 0 : _path$parent2.value ) || n.JSXFragment.check( (_path$parent3 = path.parent) === null || _path$parent3 === void 0 ? void 0 : _path$parent3.value )) && ((_path$parentPath = path.parentPath) === null || _path$parentPath === void 0 ? void 0 : _path$parentPath.name) === 'children' ) }, ].find((c) => c(path)), } ) if (placeholderMatcher) return placeholderMatcher } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIiwiY29tcGlsZUpTWEV4cHJlc3Npb25Db250YWluZXJNYXRjaGVyIiwicGF0aCIsImNvbXBpbGVPcHRpb25zIiwicGF0dGVybiIsInZhbHVlIiwibiIsImJhY2tlbmQiLCJ0IiwibmFtZWRUeXBlcyIsIklkZW50aWZpZXIiLCJjaGVjayIsImV4cHJlc3Npb24iLCJwbGFjZWhvbGRlck1hdGNoZXIiLCJuYW1lIiwibm9kZVR5cGUiLCJnZXRDb25kaXRpb24iLCJpc0pTWEF0dHJpYnV0ZVZhbHVlIiwiSlNYQXR0cmlidXRlIiwicGFyZW50IiwiaXNKU1hDaGlsZCIsIkpTWEVsZW1lbnQiLCJKU1hGcmFnbWVudCIsInBhcmVudFBhdGgiLCJmaW5kIiwiYyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21waWxlTWF0Y2hlci9KU1hFeHByZXNzaW9uQ29udGFpbmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTWEV4cHJlc3Npb25Db250YWluZXIsIE5vZGVQYXRoIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBDb21waWxlZE1hdGNoZXIsIENvbXBpbGVPcHRpb25zIH0gZnJvbSAnLidcbmltcG9ydCBjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIGZyb20gJy4vUGxhY2Vob2xkZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXBpbGVKU1hFeHByZXNzaW9uQ29udGFpbmVyTWF0Y2hlcihcbiAgcGF0aDogTm9kZVBhdGg8SlNYRXhwcmVzc2lvbkNvbnRhaW5lciwgSlNYRXhwcmVzc2lvbkNvbnRhaW5lcj4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlT3B0aW9uc1xuKTogQ29tcGlsZWRNYXRjaGVyIHwgdm9pZCB7XG4gIGNvbnN0IHBhdHRlcm46IEpTWEV4cHJlc3Npb25Db250YWluZXIgPSBwYXRoLnZhbHVlXG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuXG4gIGlmIChuLklkZW50aWZpZXIuY2hlY2socGF0dGVybi5leHByZXNzaW9uKSkge1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyTWF0Y2hlciA9IGNvbXBpbGVQbGFjZWhvbGRlck1hdGNoZXIoXG4gICAgICBwYXRoLFxuICAgICAgcGF0dGVybi5leHByZXNzaW9uLm5hbWUsXG4gICAgICBjb21waWxlT3B0aW9ucyxcbiAgICAgIHtcbiAgICAgICAgbm9kZVR5cGU6IFsnSlNYJywgJ1N0cmluZ0xpdGVyYWwnXSxcbiAgICAgICAgZ2V0Q29uZGl0aW9uOiAoKSA9PlxuICAgICAgICAgIFtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGlzSlNYQXR0cmlidXRlVmFsdWUocGF0aDogTm9kZVBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBuLkpTWEF0dHJpYnV0ZS5jaGVjayhwYXRoLnBhcmVudD8udmFsdWUpICYmXG4gICAgICAgICAgICAgICAgcGF0aC5uYW1lID09PSAndmFsdWUnXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmdW5jdGlvbiBpc0pTWENoaWxkKHBhdGg6IE5vZGVQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKG4uSlNYRWxlbWVudC5jaGVjayhwYXRoLnBhcmVudD8udmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgICBuLkpTWEZyYWdtZW50LmNoZWNrKHBhdGgucGFyZW50Py52YWx1ZSkpICYmXG4gICAgICAgICAgICAgICAgcGF0aC5wYXJlbnRQYXRoPy5uYW1lID09PSAnY2hpbGRyZW4nXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXS5maW5kKChjKSA9PiBjKHBhdGgpKSxcbiAgICAgIH1cbiAgICApXG5cbiAgICBpZiAocGxhY2Vob2xkZXJNYXRjaGVyKSByZXR1cm4gcGxhY2Vob2xkZXJNYXRjaGVyXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSx5QkFBUCxNQUFzQyxlQUF0Qzs7QUFFQSxlQUFlLFNBQVNDLG9DQUFUO0FBQ2JDLElBRGE7QUFFYkMsY0FGYTtBQUdXO0VBQ3hCLE1BQU1DLE9BQStCLEdBQUdGLElBQUksQ0FBQ0csS0FBN0M7RUFDQSxNQUFNQyxDQUFDLEdBQUdILGNBQWMsQ0FBQ0ksT0FBZixDQUF1QkMsQ0FBdkIsQ0FBeUJDLFVBQW5DOztFQUVBLElBQUlILENBQUMsQ0FBQ0ksVUFBRixDQUFhQyxLQUFiLENBQW1CUCxPQUFPLENBQUNRLFVBQTNCLENBQUosRUFBNEM7SUFDMUMsTUFBTUMsa0JBQWtCLEdBQUdiLHlCQUF5QjtJQUNsREUsSUFEa0Q7SUFFbERFLE9BQU8sQ0FBQ1EsVUFBUixDQUFtQkUsSUFGK0I7SUFHbERYLGNBSGtEO0lBSWxEO01BQ0VZLFFBQVEsRUFBRSxDQUFDLEtBQUQsRUFBUSxlQUFSLENBRFo7TUFFRUMsWUFBWSxFQUFFO01BQ1o7TUFDRSxTQUFTQyxtQkFBVCxDQUE2QmYsSUFBN0IsRUFBc0Q7UUFDcEQ7VUFDRUksQ0FBQyxDQUFDWSxZQUFGLENBQWVQLEtBQWYsaUJBQXFCVCxJQUFJLENBQUNpQixNQUExQixpREFBcUIsYUFBYWQsS0FBbEM7VUFDQUgsSUFBSSxDQUFDWSxJQUFMLEtBQWMsT0FGaEI7O01BSUQsQ0FOSDtNQU9FLFNBQVNNLFVBQVQsQ0FBb0JsQixJQUFwQixFQUE2QztRQUMzQztVQUNFLENBQUNJLENBQUMsQ0FBQ2UsVUFBRixDQUFhVixLQUFiLGtCQUFtQlQsSUFBSSxDQUFDaUIsTUFBeEIsa0RBQW1CLGNBQWFkLEtBQWhDO1VBQ0NDLENBQUMsQ0FBQ2dCLFdBQUYsQ0FBY1gsS0FBZCxrQkFBb0JULElBQUksQ0FBQ2lCLE1BQXpCLGtEQUFvQixjQUFhZCxLQUFqQyxDQURGO1VBRUEscUJBQUFILElBQUksQ0FBQ3FCLFVBQUwsc0VBQWlCVCxJQUFqQixNQUEwQixVQUg1Qjs7TUFLRCxDQWJIO01BY0VVLElBZEYsQ0FjTyxDQUFDQyxDQUFELEtBQU9BLENBQUMsQ0FBQ3ZCLElBQUQsQ0FkZixDQUhKLEVBSmtELENBQXBEOzs7O0lBeUJBLElBQUlXLGtCQUFKLEVBQXdCLE9BQU9BLGtCQUFQO0VBQ3pCO0FBQ0YifQ==