astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
26 lines (20 loc) • 1.11 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = compileTSPropertySignatureMatcher;
var _Placeholder = _interopRequireDefault(require("./Placeholder"));
function compileTSPropertySignatureMatcher(path, compileOptions) {
var pattern = path.value;
var 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 === '$')) {
var placeholderMatcher = (0, _Placeholder["default"])(path, pattern.key.name, compileOptions, {
nodeType: 'TSTypeElement'
});
if (placeholderMatcher) return placeholderMatcher;
}
}
}