UNPKG

astx

Version:

super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring

21 lines (18 loc) 2.7 kB
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==