astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
34 lines (31 loc) • 3.78 kB
JavaScript
import compilePlaceholderMatcher from './Placeholder.mjs'
export default function compileClassPropertyMatcher(path, compileOptions) {
const pattern = path.value
const n = compileOptions.backend.t.namedTypes
if (n.Identifier.check(pattern.key)) {
if (
!pattern.computed &&
!pattern.static &&
pattern.typeAnnotation == null &&
pattern.variance == null &&
pattern.value == null
) {
const placeholderMatcher = compilePlaceholderMatcher(
path,
pattern.key.name,
compileOptions,
{
getCondition: () => (path) => {
var _path$parent
return n.ClassBody.check(
(_path$parent = path.parent) === null || _path$parent === void 0
? void 0
: _path$parent.value
)
},
}
)
if (placeholderMatcher) return placeholderMatcher
}
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIiwiY29tcGlsZUNsYXNzUHJvcGVydHlNYXRjaGVyIiwicGF0aCIsImNvbXBpbGVPcHRpb25zIiwicGF0dGVybiIsInZhbHVlIiwibiIsImJhY2tlbmQiLCJ0IiwibmFtZWRUeXBlcyIsIklkZW50aWZpZXIiLCJjaGVjayIsImtleSIsImNvbXB1dGVkIiwic3RhdGljIiwidHlwZUFubm90YXRpb24iLCJ2YXJpYW5jZSIsInBsYWNlaG9sZGVyTWF0Y2hlciIsIm5hbWUiLCJnZXRDb25kaXRpb24iLCJDbGFzc0JvZHkiLCJwYXJlbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcGlsZU1hdGNoZXIvQ2xhc3NQcm9wZXJ0eS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGFzc1Byb3BlcnR5LCBOb2RlUGF0aCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQ29tcGlsZWRNYXRjaGVyLCBDb21waWxlT3B0aW9ucyB9IGZyb20gJy4nXG5pbXBvcnQgY29tcGlsZVBsYWNlaG9sZGVyTWF0Y2hlciBmcm9tICcuL1BsYWNlaG9sZGVyJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21waWxlQ2xhc3NQcm9wZXJ0eU1hdGNoZXIoXG4gIHBhdGg6IE5vZGVQYXRoPENsYXNzUHJvcGVydHksIENsYXNzUHJvcGVydHk+LFxuICBjb21waWxlT3B0aW9uczogQ29tcGlsZU9wdGlvbnNcbik6IENvbXBpbGVkTWF0Y2hlciB8IHZvaWQge1xuICBjb25zdCBwYXR0ZXJuOiBDbGFzc1Byb3BlcnR5ID0gcGF0aC52YWx1ZVxuICBjb25zdCBuID0gY29tcGlsZU9wdGlvbnMuYmFja2VuZC50Lm5hbWVkVHlwZXNcblxuICBpZiAobi5JZGVudGlmaWVyLmNoZWNrKHBhdHRlcm4ua2V5KSkge1xuICAgIGlmIChcbiAgICAgICFwYXR0ZXJuLmNvbXB1dGVkICYmXG4gICAgICAhcGF0dGVybi5zdGF0aWMgJiZcbiAgICAgIHBhdHRlcm4udHlwZUFubm90YXRpb24gPT0gbnVsbCAmJlxuICAgICAgcGF0dGVybi52YXJpYW5jZSA9PSBudWxsICYmXG4gICAgICBwYXR0ZXJuLnZhbHVlID09IG51bGxcbiAgICApIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyTWF0Y2hlciA9IGNvbXBpbGVQbGFjZWhvbGRlck1hdGNoZXIoXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHBhdHRlcm4ua2V5Lm5hbWUsXG4gICAgICAgIGNvbXBpbGVPcHRpb25zLFxuICAgICAgICB7XG4gICAgICAgICAgZ2V0Q29uZGl0aW9uOiAoKSA9PiAocGF0aDogTm9kZVBhdGgpID0+XG4gICAgICAgICAgICAobiBhcyBhbnkpLkNsYXNzQm9keS5jaGVjayhwYXRoLnBhcmVudD8udmFsdWUpLFxuICAgICAgICB9XG4gICAgICApXG5cbiAgICAgIGlmIChwbGFjZWhvbGRlck1hdGNoZXIpIHJldHVybiBwbGFjZWhvbGRlck1hdGNoZXJcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSx5QkFBUCxNQUFzQyxlQUF0Qzs7QUFFQSxlQUFlLFNBQVNDLDJCQUFUO0FBQ2JDLElBRGE7QUFFYkMsY0FGYTtBQUdXO0VBQ3hCLE1BQU1DLE9BQXNCLEdBQUdGLElBQUksQ0FBQ0csS0FBcEM7RUFDQSxNQUFNQyxDQUFDLEdBQUdILGNBQWMsQ0FBQ0ksT0FBZixDQUF1QkMsQ0FBdkIsQ0FBeUJDLFVBQW5DOztFQUVBLElBQUlILENBQUMsQ0FBQ0ksVUFBRixDQUFhQyxLQUFiLENBQW1CUCxPQUFPLENBQUNRLEdBQTNCLENBQUosRUFBcUM7SUFDbkM7SUFDRSxDQUFDUixPQUFPLENBQUNTLFFBQVQ7SUFDQSxDQUFDVCxPQUFPLENBQUNVLE1BRFQ7SUFFQVYsT0FBTyxDQUFDVyxjQUFSLElBQTBCLElBRjFCO0lBR0FYLE9BQU8sQ0FBQ1ksUUFBUixJQUFvQixJQUhwQjtJQUlBWixPQUFPLENBQUNDLEtBQVIsSUFBaUIsSUFMbkI7SUFNRTtNQUNBLE1BQU1ZLGtCQUFrQixHQUFHakIseUJBQXlCO01BQ2xERSxJQURrRDtNQUVsREUsT0FBTyxDQUFDUSxHQUFSLENBQVlNLElBRnNDO01BR2xEZixjQUhrRDtNQUlsRDtRQUNFZ0IsWUFBWSxFQUFFLE1BQU0sQ0FBQ2pCLElBQUQ7WUFDakJJLENBQUQsQ0FBV2MsU0FBWCxDQUFxQlQsS0FBckIsaUJBQTJCVCxJQUFJLENBQUNtQixNQUFoQyxpREFBMkIsYUFBYWhCLEtBQXhDLENBRGtCLEdBRHRCLEVBSmtELENBQXBEOzs7O01BVUEsSUFBSVksa0JBQUosRUFBd0IsT0FBT0Esa0JBQVA7SUFDekI7RUFDRjtBQUNGIn0=