astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
23 lines (21 loc) • 3.22 kB
JavaScript
import compilePlaceholderMatcher from './Placeholder.mjs'
export default function compileFunctionTypeParamMatcher(path, compileOptions) {
const pattern = path.value
const n = compileOptions.backend.t.namedTypes
if (
n.GenericTypeAnnotation.check(pattern.typeAnnotation) &&
n.Identifier.check(pattern.typeAnnotation.id)
) {
if (pattern.typeAnnotation.typeParameters == null) {
const placeholderMatcher = compilePlaceholderMatcher(
path,
pattern.typeAnnotation.id.name,
compileOptions,
{
nodeType: 'FunctionTypeParam',
}
)
if (placeholderMatcher) return placeholderMatcher
}
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIiwiY29tcGlsZUZ1bmN0aW9uVHlwZVBhcmFtTWF0Y2hlciIsInBhdGgiLCJjb21waWxlT3B0aW9ucyIsInBhdHRlcm4iLCJ2YWx1ZSIsIm4iLCJiYWNrZW5kIiwidCIsIm5hbWVkVHlwZXMiLCJHZW5lcmljVHlwZUFubm90YXRpb24iLCJjaGVjayIsInR5cGVBbm5vdGF0aW9uIiwiSWRlbnRpZmllciIsImlkIiwidHlwZVBhcmFtZXRlcnMiLCJwbGFjZWhvbGRlck1hdGNoZXIiLCJuYW1lIiwibm9kZVR5cGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcGlsZU1hdGNoZXIvRnVuY3Rpb25UeXBlUGFyYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnVuY3Rpb25UeXBlUGFyYW0sIE5vZGVQYXRoIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBDb21waWxlZE1hdGNoZXIsIENvbXBpbGVPcHRpb25zIH0gZnJvbSAnLidcbmltcG9ydCBjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIGZyb20gJy4vUGxhY2Vob2xkZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXBpbGVGdW5jdGlvblR5cGVQYXJhbU1hdGNoZXIoXG4gIHBhdGg6IE5vZGVQYXRoPEZ1bmN0aW9uVHlwZVBhcmFtLCBGdW5jdGlvblR5cGVQYXJhbT4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlT3B0aW9uc1xuKTogQ29tcGlsZWRNYXRjaGVyIHwgdm9pZCB7XG4gIGNvbnN0IHBhdHRlcm46IEZ1bmN0aW9uVHlwZVBhcmFtID0gcGF0aC52YWx1ZVxuICBjb25zdCBuID0gY29tcGlsZU9wdGlvbnMuYmFja2VuZC50Lm5hbWVkVHlwZXNcbiAgaWYgKFxuICAgIG4uR2VuZXJpY1R5cGVBbm5vdGF0aW9uLmNoZWNrKHBhdHRlcm4udHlwZUFubm90YXRpb24pICYmXG4gICAgbi5JZGVudGlmaWVyLmNoZWNrKHBhdHRlcm4udHlwZUFubm90YXRpb24uaWQpXG4gICkge1xuICAgIGlmIChwYXR0ZXJuLnR5cGVBbm5vdGF0aW9uLnR5cGVQYXJhbWV0ZXJzID09IG51bGwpIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyTWF0Y2hlciA9IGNvbXBpbGVQbGFjZWhvbGRlck1hdGNoZXIoXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHBhdHRlcm4udHlwZUFubm90YXRpb24uaWQubmFtZSxcbiAgICAgICAgY29tcGlsZU9wdGlvbnMsXG4gICAgICAgIHsgbm9kZVR5cGU6ICdGdW5jdGlvblR5cGVQYXJhbScgfVxuICAgICAgKVxuXG4gICAgICBpZiAocGxhY2Vob2xkZXJNYXRjaGVyKSByZXR1cm4gcGxhY2Vob2xkZXJNYXRjaGVyXG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBRUEsT0FBT0EseUJBQVAsTUFBc0MsZUFBdEM7O0FBRUEsZUFBZSxTQUFTQywrQkFBVDtBQUNiQyxJQURhO0FBRWJDLGNBRmE7QUFHVztFQUN4QixNQUFNQyxPQUEwQixHQUFHRixJQUFJLENBQUNHLEtBQXhDO0VBQ0EsTUFBTUMsQ0FBQyxHQUFHSCxjQUFjLENBQUNJLE9BQWYsQ0FBdUJDLENBQXZCLENBQXlCQyxVQUFuQztFQUNBO0VBQ0VILENBQUMsQ0FBQ0kscUJBQUYsQ0FBd0JDLEtBQXhCLENBQThCUCxPQUFPLENBQUNRLGNBQXRDO0VBQ0FOLENBQUMsQ0FBQ08sVUFBRixDQUFhRixLQUFiLENBQW1CUCxPQUFPLENBQUNRLGNBQVIsQ0FBdUJFLEVBQTFDLENBRkY7RUFHRTtJQUNBLElBQUlWLE9BQU8sQ0FBQ1EsY0FBUixDQUF1QkcsY0FBdkIsSUFBeUMsSUFBN0MsRUFBbUQ7TUFDakQsTUFBTUMsa0JBQWtCLEdBQUdoQix5QkFBeUI7TUFDbERFLElBRGtEO01BRWxERSxPQUFPLENBQUNRLGNBQVIsQ0FBdUJFLEVBQXZCLENBQTBCRyxJQUZ3QjtNQUdsRGQsY0FIa0Q7TUFJbEQsRUFBRWUsUUFBUSxFQUFFLG1CQUFaLEVBSmtELENBQXBEOzs7TUFPQSxJQUFJRixrQkFBSixFQUF3QixPQUFPQSxrQkFBUDtJQUN6QjtFQUNGO0FBQ0YifQ==