astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
37 lines (34 loc) • 4.15 kB
JavaScript
import compilePlaceholderMatcher from './Placeholder.mjs'
export default function compileTSPropertySignatureMatcher(
path,
compileOptions
) {
const pattern = path.value
const n = compileOptions.backend.t.namedTypes
if (n.Identifier.check(pattern.key)) {
var _pattern$typeAnnotati
if (
!pattern.optional &&
!pattern.computed &&
(pattern.typeAnnotation == null ||
(n.TSTypeReference.check(
(_pattern$typeAnnotati = pattern.typeAnnotation) === null ||
_pattern$typeAnnotati === void 0
? void 0
: _pattern$typeAnnotati.typeAnnotation
) &&
n.Identifier.check(pattern.typeAnnotation.typeAnnotation.typeName) &&
pattern.typeAnnotation.typeAnnotation.typeName.name === '$'))
) {
const placeholderMatcher = compilePlaceholderMatcher(
path,
pattern.key.name,
compileOptions,
{
nodeType: 'TSTypeElement',
}
)
if (placeholderMatcher) return placeholderMatcher
}
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIiwiY29tcGlsZVRTUHJvcGVydHlTaWduYXR1cmVNYXRjaGVyIiwicGF0aCIsImNvbXBpbGVPcHRpb25zIiwicGF0dGVybiIsInZhbHVlIiwibiIsImJhY2tlbmQiLCJ0IiwibmFtZWRUeXBlcyIsIklkZW50aWZpZXIiLCJjaGVjayIsImtleSIsIm9wdGlvbmFsIiwiY29tcHV0ZWQiLCJ0eXBlQW5ub3RhdGlvbiIsIlRTVHlwZVJlZmVyZW5jZSIsInR5cGVOYW1lIiwibmFtZSIsInBsYWNlaG9sZGVyTWF0Y2hlciIsIm5vZGVUeXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVNYXRjaGVyL1RTUHJvcGVydHlTaWduYXR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVFNQcm9wZXJ0eVNpZ25hdHVyZSwgTm9kZVBhdGggfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IENvbXBpbGVkTWF0Y2hlciwgQ29tcGlsZU9wdGlvbnMgfSBmcm9tICcuJ1xuaW1wb3J0IGNvbXBpbGVQbGFjZWhvbGRlck1hdGNoZXIgZnJvbSAnLi9QbGFjZWhvbGRlcidcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZVRTUHJvcGVydHlTaWduYXR1cmVNYXRjaGVyKFxuICBwYXRoOiBOb2RlUGF0aDxUU1Byb3BlcnR5U2lnbmF0dXJlLCBUU1Byb3BlcnR5U2lnbmF0dXJlPixcbiAgY29tcGlsZU9wdGlvbnM6IENvbXBpbGVPcHRpb25zXG4pOiBDb21waWxlZE1hdGNoZXIgfCB2b2lkIHtcbiAgY29uc3QgcGF0dGVybjogVFNQcm9wZXJ0eVNpZ25hdHVyZSA9IHBhdGgudmFsdWVcbiAgY29uc3QgbiA9IGNvbXBpbGVPcHRpb25zLmJhY2tlbmQudC5uYW1lZFR5cGVzXG5cbiAgaWYgKG4uSWRlbnRpZmllci5jaGVjayhwYXR0ZXJuLmtleSkpIHtcbiAgICBpZiAoXG4gICAgICAhcGF0dGVybi5vcHRpb25hbCAmJlxuICAgICAgIXBhdHRlcm4uY29tcHV0ZWQgJiZcbiAgICAgIChwYXR0ZXJuLnR5cGVBbm5vdGF0aW9uID09IG51bGwgfHxcbiAgICAgICAgKG4uVFNUeXBlUmVmZXJlbmNlLmNoZWNrKHBhdHRlcm4udHlwZUFubm90YXRpb24/LnR5cGVBbm5vdGF0aW9uKSAmJlxuICAgICAgICAgIG4uSWRlbnRpZmllci5jaGVjayhwYXR0ZXJuLnR5cGVBbm5vdGF0aW9uLnR5cGVBbm5vdGF0aW9uLnR5cGVOYW1lKSAmJlxuICAgICAgICAgIHBhdHRlcm4udHlwZUFubm90YXRpb24udHlwZUFubm90YXRpb24udHlwZU5hbWUubmFtZSA9PT0gJyQnKSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyTWF0Y2hlciA9IGNvbXBpbGVQbGFjZWhvbGRlck1hdGNoZXIoXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHBhdHRlcm4ua2V5Lm5hbWUsXG4gICAgICAgIGNvbXBpbGVPcHRpb25zLFxuICAgICAgICB7IG5vZGVUeXBlOiAnVFNUeXBlRWxlbWVudCcgfVxuICAgICAgKVxuXG4gICAgICBpZiAocGxhY2Vob2xkZXJNYXRjaGVyKSByZXR1cm4gcGxhY2Vob2xkZXJNYXRjaGVyXG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBRUEsT0FBT0EseUJBQVAsTUFBc0MsZUFBdEM7O0FBRUEsZUFBZSxTQUFTQyxpQ0FBVDtBQUNiQyxJQURhO0FBRWJDLGNBRmE7QUFHVztFQUN4QixNQUFNQyxPQUE0QixHQUFHRixJQUFJLENBQUNHLEtBQTFDO0VBQ0EsTUFBTUMsQ0FBQyxHQUFHSCxjQUFjLENBQUNJLE9BQWYsQ0FBdUJDLENBQXZCLENBQXlCQyxVQUFuQzs7RUFFQSxJQUFJSCxDQUFDLENBQUNJLFVBQUYsQ0FBYUMsS0FBYixDQUFtQlAsT0FBTyxDQUFDUSxHQUEzQixDQUFKLEVBQXFDO0lBQ25DO0lBQ0UsQ0FBQ1IsT0FBTyxDQUFDUyxRQUFUO0lBQ0EsQ0FBQ1QsT0FBTyxDQUFDVSxRQURUO0lBRUNWLE9BQU8sQ0FBQ1csY0FBUixJQUEwQixJQUExQjtJQUNFVCxDQUFDLENBQUNVLGVBQUYsQ0FBa0JMLEtBQWxCLDBCQUF3QlAsT0FBTyxDQUFDVyxjQUFoQywwREFBd0Isc0JBQXdCQSxjQUFoRDtJQUNDVCxDQUFDLENBQUNJLFVBQUYsQ0FBYUMsS0FBYixDQUFtQlAsT0FBTyxDQUFDVyxjQUFSLENBQXVCQSxjQUF2QixDQUFzQ0UsUUFBekQsQ0FERDtJQUVDYixPQUFPLENBQUNXLGNBQVIsQ0FBdUJBLGNBQXZCLENBQXNDRSxRQUF0QyxDQUErQ0MsSUFBL0MsS0FBd0QsR0FMNUQsQ0FERjtJQU9FO01BQ0EsTUFBTUMsa0JBQWtCLEdBQUduQix5QkFBeUI7TUFDbERFLElBRGtEO01BRWxERSxPQUFPLENBQUNRLEdBQVIsQ0FBWU0sSUFGc0M7TUFHbERmLGNBSGtEO01BSWxELEVBQUVpQixRQUFRLEVBQUUsZUFBWixFQUprRCxDQUFwRDs7O01BT0EsSUFBSUQsa0JBQUosRUFBd0IsT0FBT0Esa0JBQVA7SUFDekI7RUFDRjtBQUNGIn0=