astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
21 lines (18 loc) • 2.7 kB
JavaScript
import compileMatcher from './index.mjs'
export default function compileTypeAnnotationMatcher(path, compileOptions) {
const annotationMatcher = compileMatcher(
path.get('typeAnnotation'),
compileOptions
)
if (annotationMatcher.optional) {
return {
pattern: path,
nodeType: 'TypeAnnotation',
optional: true,
match: (path, matchSoFar) => {
if (!path.value) return matchSoFar || {}
return annotationMatcher.match(path.get('typeAnnotation'), matchSoFar)
},
}
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlTWF0Y2hlciIsImNvbXBpbGVUeXBlQW5ub3RhdGlvbk1hdGNoZXIiLCJwYXRoIiwiY29tcGlsZU9wdGlvbnMiLCJhbm5vdGF0aW9uTWF0Y2hlciIsImdldCIsIm9wdGlvbmFsIiwicGF0dGVybiIsIm5vZGVUeXBlIiwibWF0Y2giLCJtYXRjaFNvRmFyIiwidmFsdWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcGlsZU1hdGNoZXIvVHlwZUFubm90YXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZVBhdGgsIFR5cGVBbm5vdGF0aW9uIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBDb21waWxlZE1hdGNoZXIsIENvbXBpbGVPcHRpb25zIH0gZnJvbSAnLidcbmltcG9ydCBjb21waWxlTWF0Y2hlciwgeyBNYXRjaFJlc3VsdCB9IGZyb20gJy4nXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXBpbGVUeXBlQW5ub3RhdGlvbk1hdGNoZXIoXG4gIHBhdGg6IE5vZGVQYXRoPFR5cGVBbm5vdGF0aW9uLCBUeXBlQW5ub3RhdGlvbj4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlT3B0aW9uc1xuKTogQ29tcGlsZWRNYXRjaGVyIHwgdm9pZCB7XG4gIGNvbnN0IGFubm90YXRpb25NYXRjaGVyID0gY29tcGlsZU1hdGNoZXIoXG4gICAgcGF0aC5nZXQoJ3R5cGVBbm5vdGF0aW9uJyksXG4gICAgY29tcGlsZU9wdGlvbnNcbiAgKVxuXG4gIGlmIChhbm5vdGF0aW9uTWF0Y2hlci5vcHRpb25hbCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXR0ZXJuOiBwYXRoLFxuICAgICAgbm9kZVR5cGU6ICdUeXBlQW5ub3RhdGlvbicsXG4gICAgICBvcHRpb25hbDogdHJ1ZSxcblxuICAgICAgbWF0Y2g6IChwYXRoOiBOb2RlUGF0aCwgbWF0Y2hTb0ZhcjogTWF0Y2hSZXN1bHQpOiBNYXRjaFJlc3VsdCA9PiB7XG4gICAgICAgIGlmICghcGF0aC52YWx1ZSkgcmV0dXJuIG1hdGNoU29GYXIgfHwge31cbiAgICAgICAgcmV0dXJuIGFubm90YXRpb25NYXRjaGVyLm1hdGNoKHBhdGguZ2V0KCd0eXBlQW5ub3RhdGlvbicpLCBtYXRjaFNvRmFyKVxuICAgICAgfSxcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSxjQUFQLE1BQTRDLEdBQTVDOztBQUVBLGVBQWUsU0FBU0MsNEJBQVQ7QUFDYkMsSUFEYTtBQUViQyxjQUZhO0FBR1c7RUFDeEIsTUFBTUMsaUJBQWlCLEdBQUdKLGNBQWM7RUFDdENFLElBQUksQ0FBQ0csR0FBTCxDQUFTLGdCQUFULENBRHNDO0VBRXRDRixjQUZzQyxDQUF4Qzs7O0VBS0EsSUFBSUMsaUJBQWlCLENBQUNFLFFBQXRCLEVBQWdDO0lBQzlCLE9BQU87TUFDTEMsT0FBTyxFQUFFTCxJQURKO01BRUxNLFFBQVEsRUFBRSxnQkFGTDtNQUdMRixRQUFRLEVBQUUsSUFITDs7TUFLTEcsS0FBSyxFQUFFLENBQUNQLElBQUQsRUFBaUJRLFVBQWpCLEtBQTBEO1FBQy9ELElBQUksQ0FBQ1IsSUFBSSxDQUFDUyxLQUFWLEVBQWlCLE9BQU9ELFVBQVUsSUFBSSxFQUFyQjtRQUNqQixPQUFPTixpQkFBaUIsQ0FBQ0ssS0FBbEIsQ0FBd0JQLElBQUksQ0FBQ0csR0FBTCxDQUFTLGdCQUFULENBQXhCLEVBQW9ESyxVQUFwRCxDQUFQO01BQ0QsQ0FSSSxFQUFQOztFQVVEO0FBQ0YifQ==