UNPKG

astx

Version:

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

21 lines (17 loc) 2.98 kB
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==