UNPKG

astx

Version:

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

53 lines (49 loc) 5.38 kB
import compilePlaceholderMatcher, { unescapeIdentifier, } from './Placeholder.mjs' export default function compileJSXIdentifierMatcher(path, compileOptions) { const pattern = path.value const n = compileOptions.backend.t.namedTypes const placeholderMatcher = compilePlaceholderMatcher( path, pattern.name, compileOptions, { nodeType: 'JSXIdentifier', getCondition: () => [ function isJSXElementName(path) { var _path$parent return ( n.JSXOpeningElement.check( (_path$parent = path.parent) === null || _path$parent === void 0 ? void 0 : _path$parent.value ) && path.name === 'name' ) }, function isJSXAttributeName(path) { var _path$parent2 return ( n.JSXAttribute.check( (_path$parent2 = path.parent) === null || _path$parent2 === void 0 ? void 0 : _path$parent2.value ) && path.name === 'name' ) }, function isJSXSpreadAttribute(path) { var _path$parent3 return n.JSXSpreadAttribute.check( (_path$parent3 = path.parent) === null || _path$parent3 === void 0 ? void 0 : _path$parent3.value ) }, ].find((c) => c(path)), } ) if (placeholderMatcher) return placeholderMatcher pattern.name = unescapeIdentifier(pattern.name) } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIiwidW5lc2NhcGVJZGVudGlmaWVyIiwiY29tcGlsZUpTWElkZW50aWZpZXJNYXRjaGVyIiwicGF0aCIsImNvbXBpbGVPcHRpb25zIiwicGF0dGVybiIsInZhbHVlIiwibiIsImJhY2tlbmQiLCJ0IiwibmFtZWRUeXBlcyIsInBsYWNlaG9sZGVyTWF0Y2hlciIsIm5hbWUiLCJub2RlVHlwZSIsImdldENvbmRpdGlvbiIsImlzSlNYRWxlbWVudE5hbWUiLCJKU1hPcGVuaW5nRWxlbWVudCIsImNoZWNrIiwicGFyZW50IiwiaXNKU1hBdHRyaWJ1dGVOYW1lIiwiSlNYQXR0cmlidXRlIiwiaXNKU1hTcHJlYWRBdHRyaWJ1dGUiLCJKU1hTcHJlYWRBdHRyaWJ1dGUiLCJmaW5kIiwiYyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21waWxlTWF0Y2hlci9KU1hJZGVudGlmaWVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTWElkZW50aWZpZXIsIE5vZGVQYXRoIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBDb21waWxlZE1hdGNoZXIsIENvbXBpbGVPcHRpb25zIH0gZnJvbSAnLidcbmltcG9ydCBjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyLCB7IHVuZXNjYXBlSWRlbnRpZmllciB9IGZyb20gJy4vUGxhY2Vob2xkZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXBpbGVKU1hJZGVudGlmaWVyTWF0Y2hlcihcbiAgcGF0aDogTm9kZVBhdGg8SlNYSWRlbnRpZmllciwgSlNYSWRlbnRpZmllcj4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlT3B0aW9uc1xuKTogQ29tcGlsZWRNYXRjaGVyIHwgdm9pZCB7XG4gIGNvbnN0IHBhdHRlcm46IEpTWElkZW50aWZpZXIgPSBwYXRoLnZhbHVlXG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuICBjb25zdCBwbGFjZWhvbGRlck1hdGNoZXIgPSBjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyKFxuICAgIHBhdGgsXG4gICAgcGF0dGVybi5uYW1lLFxuICAgIGNvbXBpbGVPcHRpb25zLFxuICAgIHtcbiAgICAgIG5vZGVUeXBlOiAnSlNYSWRlbnRpZmllcicsXG4gICAgICBnZXRDb25kaXRpb246ICgpID0+XG4gICAgICAgIFtcbiAgICAgICAgICBmdW5jdGlvbiBpc0pTWEVsZW1lbnROYW1lKHBhdGg6IE5vZGVQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBuLkpTWE9wZW5pbmdFbGVtZW50LmNoZWNrKHBhdGgucGFyZW50Py52YWx1ZSkgJiZcbiAgICAgICAgICAgICAgcGF0aC5uYW1lID09PSAnbmFtZSdcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uIGlzSlNYQXR0cmlidXRlTmFtZShwYXRoOiBOb2RlUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbi5KU1hBdHRyaWJ1dGUuY2hlY2socGF0aC5wYXJlbnQ/LnZhbHVlKSAmJiBwYXRoLm5hbWUgPT09ICduYW1lJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gaXNKU1hTcHJlYWRBdHRyaWJ1dGUocGF0aDogTm9kZVBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgICAgIHJldHVybiBuLkpTWFNwcmVhZEF0dHJpYnV0ZS5jaGVjayhwYXRoLnBhcmVudD8udmFsdWUpXG4gICAgICAgICAgfSxcbiAgICAgICAgXS5maW5kKChjKSA9PiBjKHBhdGgpKSxcbiAgICB9XG4gIClcblxuICBpZiAocGxhY2Vob2xkZXJNYXRjaGVyKSByZXR1cm4gcGxhY2Vob2xkZXJNYXRjaGVyXG5cbiAgcGF0dGVybi5uYW1lID0gdW5lc2NhcGVJZGVudGlmaWVyKHBhdHRlcm4ubmFtZSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSx5QkFBUCxJQUFvQ0Msa0JBQXBDLFFBQThELGVBQTlEOztBQUVBLGVBQWUsU0FBU0MsMkJBQVQ7QUFDYkMsSUFEYTtBQUViQyxjQUZhO0FBR1c7RUFDeEIsTUFBTUMsT0FBc0IsR0FBR0YsSUFBSSxDQUFDRyxLQUFwQztFQUNBLE1BQU1DLENBQUMsR0FBR0gsY0FBYyxDQUFDSSxPQUFmLENBQXVCQyxDQUF2QixDQUF5QkMsVUFBbkM7RUFDQSxNQUFNQyxrQkFBa0IsR0FBR1gseUJBQXlCO0VBQ2xERyxJQURrRDtFQUVsREUsT0FBTyxDQUFDTyxJQUYwQztFQUdsRFIsY0FIa0Q7RUFJbEQ7SUFDRVMsUUFBUSxFQUFFLGVBRFo7SUFFRUMsWUFBWSxFQUFFO0lBQ1o7SUFDRSxTQUFTQyxnQkFBVCxDQUEwQlosSUFBMUIsRUFBbUQ7TUFDakQ7UUFDRUksQ0FBQyxDQUFDUyxpQkFBRixDQUFvQkMsS0FBcEIsaUJBQTBCZCxJQUFJLENBQUNlLE1BQS9CLGlEQUEwQixhQUFhWixLQUF2QztRQUNBSCxJQUFJLENBQUNTLElBQUwsS0FBYyxNQUZoQjs7SUFJRCxDQU5IO0lBT0UsU0FBU08sa0JBQVQsQ0FBNEJoQixJQUE1QixFQUFxRDtNQUNuRDtRQUNFSSxDQUFDLENBQUNhLFlBQUYsQ0FBZUgsS0FBZixrQkFBcUJkLElBQUksQ0FBQ2UsTUFBMUIsa0RBQXFCLGNBQWFaLEtBQWxDLEtBQTRDSCxJQUFJLENBQUNTLElBQUwsS0FBYyxNQUQ1RDs7SUFHRCxDQVhIO0lBWUUsU0FBU1Msb0JBQVQsQ0FBOEJsQixJQUE5QixFQUF1RDtNQUNyRCxPQUFPSSxDQUFDLENBQUNlLGtCQUFGLENBQXFCTCxLQUFyQixrQkFBMkJkLElBQUksQ0FBQ2UsTUFBaEMsa0RBQTJCLGNBQWFaLEtBQXhDLENBQVA7SUFDRCxDQWRIO0lBZUVpQixJQWZGLENBZU8sQ0FBQ0MsQ0FBRCxLQUFPQSxDQUFDLENBQUNyQixJQUFELENBZmYsQ0FISixFQUprRCxDQUFwRDs7OztFQTBCQSxJQUFJUSxrQkFBSixFQUF3QixPQUFPQSxrQkFBUDs7RUFFeEJOLE9BQU8sQ0FBQ08sSUFBUixHQUFlWCxrQkFBa0IsQ0FBQ0ksT0FBTyxDQUFDTyxJQUFULENBQWpDO0FBQ0QifQ==