UNPKG

astx

Version:

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

32 lines (30 loc) 4.1 kB
import compilePlaceholderMatcher from './Placeholder.mjs' import compileSpecialMatcher from './SpecialMatcher.mjs' export default function compileTSTypeReferenceMatcher(path, compileOptions) { const { typeName, typeParameters } = path.value const n = compileOptions.backend.t.namedTypes if (n.Identifier.check(typeName)) { if (typeParameters == null) { const placeholderMatcher = compilePlaceholderMatcher( path, typeName.name, compileOptions, { nodeType: 'TSType', } ) if (placeholderMatcher) return placeholderMatcher } else { const typeParametersPath = path.get('typeParameters') if (typeParametersPath.value) { const special = compileSpecialMatcher( path, typeName.name, typeParametersPath.get('params'), compileOptions ) if (special) return special } } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIiwiY29tcGlsZVNwZWNpYWxNYXRjaGVyIiwiY29tcGlsZVRTVHlwZVJlZmVyZW5jZU1hdGNoZXIiLCJwYXRoIiwiY29tcGlsZU9wdGlvbnMiLCJ0eXBlTmFtZSIsInR5cGVQYXJhbWV0ZXJzIiwidmFsdWUiLCJuIiwiYmFja2VuZCIsInQiLCJuYW1lZFR5cGVzIiwiSWRlbnRpZmllciIsImNoZWNrIiwicGxhY2Vob2xkZXJNYXRjaGVyIiwibmFtZSIsIm5vZGVUeXBlIiwidHlwZVBhcmFtZXRlcnNQYXRoIiwiZ2V0Iiwic3BlY2lhbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21waWxlTWF0Y2hlci9UU1R5cGVSZWZlcmVuY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVFNUeXBlUmVmZXJlbmNlLCBOb2RlUGF0aCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQ29tcGlsZWRNYXRjaGVyLCBDb21waWxlT3B0aW9ucyB9IGZyb20gJy4nXG5pbXBvcnQgY29tcGlsZVBsYWNlaG9sZGVyTWF0Y2hlciBmcm9tICcuL1BsYWNlaG9sZGVyJ1xuaW1wb3J0IGNvbXBpbGVTcGVjaWFsTWF0Y2hlciBmcm9tICcuL1NwZWNpYWxNYXRjaGVyJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21waWxlVFNUeXBlUmVmZXJlbmNlTWF0Y2hlcihcbiAgcGF0aDogTm9kZVBhdGg8VFNUeXBlUmVmZXJlbmNlLCBUU1R5cGVSZWZlcmVuY2U+LFxuICBjb21waWxlT3B0aW9uczogQ29tcGlsZU9wdGlvbnNcbik6IENvbXBpbGVkTWF0Y2hlciB8IHZvaWQge1xuICBjb25zdCB7IHR5cGVOYW1lLCB0eXBlUGFyYW1ldGVycyB9OiBUU1R5cGVSZWZlcmVuY2UgPSBwYXRoLnZhbHVlXG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuXG4gIGlmIChuLklkZW50aWZpZXIuY2hlY2sodHlwZU5hbWUpKSB7XG4gICAgaWYgKHR5cGVQYXJhbWV0ZXJzID09IG51bGwpIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyTWF0Y2hlciA9IGNvbXBpbGVQbGFjZWhvbGRlck1hdGNoZXIoXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHR5cGVOYW1lLm5hbWUsXG4gICAgICAgIGNvbXBpbGVPcHRpb25zLFxuICAgICAgICB7IG5vZGVUeXBlOiAnVFNUeXBlJyB9XG4gICAgICApXG5cbiAgICAgIGlmIChwbGFjZWhvbGRlck1hdGNoZXIpIHJldHVybiBwbGFjZWhvbGRlck1hdGNoZXJcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZVBhcmFtZXRlcnNQYXRoID0gcGF0aC5nZXQoJ3R5cGVQYXJhbWV0ZXJzJylcbiAgICAgIGlmICh0eXBlUGFyYW1ldGVyc1BhdGgudmFsdWUpIHtcbiAgICAgICAgY29uc3Qgc3BlY2lhbCA9IGNvbXBpbGVTcGVjaWFsTWF0Y2hlcihcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHR5cGVOYW1lLm5hbWUsXG4gICAgICAgICAgdHlwZVBhcmFtZXRlcnNQYXRoLmdldCgncGFyYW1zJyksXG4gICAgICAgICAgY29tcGlsZU9wdGlvbnNcbiAgICAgICAgKVxuXG4gICAgICAgIGlmIChzcGVjaWFsKSByZXR1cm4gc3BlY2lhbFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU9BLHlCQUFQLE1BQXNDLGVBQXRDO0FBQ0EsT0FBT0MscUJBQVAsTUFBa0Msa0JBQWxDOztBQUVBLGVBQWUsU0FBU0MsNkJBQVQ7QUFDYkMsSUFEYTtBQUViQyxjQUZhO0FBR1c7RUFDeEIsTUFBTSxFQUFFQyxRQUFGLEVBQVlDLGNBQVosS0FBZ0RILElBQUksQ0FBQ0ksS0FBM0Q7RUFDQSxNQUFNQyxDQUFDLEdBQUdKLGNBQWMsQ0FBQ0ssT0FBZixDQUF1QkMsQ0FBdkIsQ0FBeUJDLFVBQW5DOztFQUVBLElBQUlILENBQUMsQ0FBQ0ksVUFBRixDQUFhQyxLQUFiLENBQW1CUixRQUFuQixDQUFKLEVBQWtDO0lBQ2hDLElBQUlDLGNBQWMsSUFBSSxJQUF0QixFQUE0QjtNQUMxQixNQUFNUSxrQkFBa0IsR0FBR2QseUJBQXlCO01BQ2xERyxJQURrRDtNQUVsREUsUUFBUSxDQUFDVSxJQUZ5QztNQUdsRFgsY0FIa0Q7TUFJbEQsRUFBRVksUUFBUSxFQUFFLFFBQVosRUFKa0QsQ0FBcEQ7OztNQU9BLElBQUlGLGtCQUFKLEVBQXdCLE9BQU9BLGtCQUFQO0lBQ3pCLENBVEQsTUFTTztNQUNMLE1BQU1HLGtCQUFrQixHQUFHZCxJQUFJLENBQUNlLEdBQUwsQ0FBUyxnQkFBVCxDQUEzQjtNQUNBLElBQUlELGtCQUFrQixDQUFDVixLQUF2QixFQUE4QjtRQUM1QixNQUFNWSxPQUFPLEdBQUdsQixxQkFBcUI7UUFDbkNFLElBRG1DO1FBRW5DRSxRQUFRLENBQUNVLElBRjBCO1FBR25DRSxrQkFBa0IsQ0FBQ0MsR0FBbkIsQ0FBdUIsUUFBdkIsQ0FIbUM7UUFJbkNkLGNBSm1DLENBQXJDOzs7UUFPQSxJQUFJZSxPQUFKLEVBQWEsT0FBT0EsT0FBUDtNQUNkO0lBQ0Y7RUFDRjtBQUNGIn0=