astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
26 lines (21 loc) • 742 B
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = compileTypeAnnotationMatcher;
var _ = _interopRequireDefault(require("."));
function compileTypeAnnotationMatcher(path, compileOptions) {
var annotationMatcher = (0, _["default"])(path.get('typeAnnotation'), compileOptions);
if (annotationMatcher.optional) {
return {
pattern: path,
nodeType: 'TypeAnnotation',
optional: true,
match: function match(path, matchSoFar) {
if (!path.value) return matchSoFar || {};
return annotationMatcher.match(path.get('typeAnnotation'), matchSoFar);
}
};
}
}