astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
21 lines (17 loc) • 2.98 kB
JavaScript
import compileMatcher from './index.mjs'
export default function compileTSTypeAnnotationMatcher(path, compileOptions) {
const typeAnnotation = path.get('typeAnnotation')
if (!typeAnnotation.value) return
const annotationMatcher = compileMatcher(typeAnnotation, compileOptions)
if (annotationMatcher.optional) {
return {
pattern: path,
nodeType: 'TSTypeAnnotation',
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlTWF0Y2hlciIsImNvbXBpbGVUU1R5cGVBbm5vdGF0aW9uTWF0Y2hlciIsInBhdGgiLCJjb21waWxlT3B0aW9ucyIsInR5cGVBbm5vdGF0aW9uIiwiZ2V0IiwidmFsdWUiLCJhbm5vdGF0aW9uTWF0Y2hlciIsIm9wdGlvbmFsIiwicGF0dGVybiIsIm5vZGVUeXBlIiwibWF0Y2giLCJtYXRjaFNvRmFyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVNYXRjaGVyL1RTVHlwZUFubm90YXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVFNUeXBlQW5ub3RhdGlvbiwgTm9kZVBhdGggfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IENvbXBpbGVkTWF0Y2hlciwgQ29tcGlsZU9wdGlvbnMgfSBmcm9tICcuJ1xuaW1wb3J0IGNvbXBpbGVNYXRjaGVyLCB7IE1hdGNoUmVzdWx0IH0gZnJvbSAnLidcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZVRTVHlwZUFubm90YXRpb25NYXRjaGVyKFxuICBwYXRoOiBOb2RlUGF0aDxUU1R5cGVBbm5vdGF0aW9uLCBUU1R5cGVBbm5vdGF0aW9uPixcbiAgY29tcGlsZU9wdGlvbnM6IENvbXBpbGVPcHRpb25zXG4pOiBDb21waWxlZE1hdGNoZXIgfCB2b2lkIHtcbiAgY29uc3QgdHlwZUFubm90YXRpb24gPSBwYXRoLmdldCgndHlwZUFubm90YXRpb24nKVxuICBpZiAoIXR5cGVBbm5vdGF0aW9uLnZhbHVlKSByZXR1cm5cbiAgY29uc3QgYW5ub3RhdGlvbk1hdGNoZXIgPSBjb21waWxlTWF0Y2hlcih0eXBlQW5ub3RhdGlvbiwgY29tcGlsZU9wdGlvbnMpXG5cbiAgaWYgKGFubm90YXRpb25NYXRjaGVyLm9wdGlvbmFsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdHRlcm46IHBhdGgsXG4gICAgICBub2RlVHlwZTogJ1RTVHlwZUFubm90YXRpb24nLFxuICAgICAgb3B0aW9uYWw6IHRydWUsXG5cbiAgICAgIG1hdGNoOiAocGF0aDogTm9kZVBhdGgsIG1hdGNoU29GYXI6IE1hdGNoUmVzdWx0KTogTWF0Y2hSZXN1bHQgPT4ge1xuICAgICAgICBpZiAoIXBhdGgudmFsdWUpIHJldHVybiBtYXRjaFNvRmFyIHx8IHt9XG5cbiAgICAgICAgcmV0dXJuIGFubm90YXRpb25NYXRjaGVyLm1hdGNoKHBhdGguZ2V0KCd0eXBlQW5ub3RhdGlvbicpLCBtYXRjaFNvRmFyKVxuICAgICAgfSxcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSxjQUFQLE1BQTRDLEdBQTVDOztBQUVBLGVBQWUsU0FBU0MsOEJBQVQ7QUFDYkMsSUFEYTtBQUViQyxjQUZhO0FBR1c7RUFDeEIsTUFBTUMsY0FBYyxHQUFHRixJQUFJLENBQUNHLEdBQUwsQ0FBUyxnQkFBVCxDQUF2QjtFQUNBLElBQUksQ0FBQ0QsY0FBYyxDQUFDRSxLQUFwQixFQUEyQjtFQUMzQixNQUFNQyxpQkFBaUIsR0FBR1AsY0FBYyxDQUFDSSxjQUFELEVBQWlCRCxjQUFqQixDQUF4Qzs7RUFFQSxJQUFJSSxpQkFBaUIsQ0FBQ0MsUUFBdEIsRUFBZ0M7SUFDOUIsT0FBTztNQUNMQyxPQUFPLEVBQUVQLElBREo7TUFFTFEsUUFBUSxFQUFFLGtCQUZMO01BR0xGLFFBQVEsRUFBRSxJQUhMOztNQUtMRyxLQUFLLEVBQUUsQ0FBQ1QsSUFBRCxFQUFpQlUsVUFBakIsS0FBMEQ7UUFDL0QsSUFBSSxDQUFDVixJQUFJLENBQUNJLEtBQVYsRUFBaUIsT0FBT00sVUFBVSxJQUFJLEVBQXJCOztRQUVqQixPQUFPTCxpQkFBaUIsQ0FBQ0ksS0FBbEIsQ0FBd0JULElBQUksQ0FBQ0csR0FBTCxDQUFTLGdCQUFULENBQXhCLEVBQW9ETyxVQUFwRCxDQUFQO01BQ0QsQ0FUSSxFQUFQOztFQVdEO0FBQ0YifQ==