astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
23 lines (21 loc) • 3.14 kB
JavaScript
import compilePlaceholderReplacement from './Placeholder.mjs'
export default function compileFunctionTypeParamReplacement(
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 placeholderReplacement = compilePlaceholderReplacement(
path,
pattern.typeAnnotation.id.name,
compileOptions
)
if (placeholderReplacement) return placeholderReplacement
}
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJSZXBsYWNlbWVudCIsImNvbXBpbGVGdW5jdGlvblR5cGVQYXJhbVJlcGxhY2VtZW50IiwicGF0aCIsImNvbXBpbGVPcHRpb25zIiwicGF0dGVybiIsInZhbHVlIiwibiIsImJhY2tlbmQiLCJ0IiwibmFtZWRUeXBlcyIsIkdlbmVyaWNUeXBlQW5ub3RhdGlvbiIsImNoZWNrIiwidHlwZUFubm90YXRpb24iLCJJZGVudGlmaWVyIiwiaWQiLCJ0eXBlUGFyYW1ldGVycyIsInBsYWNlaG9sZGVyUmVwbGFjZW1lbnQiLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVSZXBsYWNlbWVudC9GdW5jdGlvblR5cGVQYXJhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGdW5jdGlvblR5cGVQYXJhbSwgTm9kZVBhdGggfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IENvbXBpbGVkUmVwbGFjZW1lbnQsIENvbXBpbGVSZXBsYWNlbWVudE9wdGlvbnMgfSBmcm9tICcuJ1xuaW1wb3J0IGNvbXBpbGVQbGFjZWhvbGRlclJlcGxhY2VtZW50IGZyb20gJy4vUGxhY2Vob2xkZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXBpbGVGdW5jdGlvblR5cGVQYXJhbVJlcGxhY2VtZW50KFxuICBwYXRoOiBOb2RlUGF0aDxGdW5jdGlvblR5cGVQYXJhbSwgRnVuY3Rpb25UeXBlUGFyYW0+LFxuICBjb21waWxlT3B0aW9uczogQ29tcGlsZVJlcGxhY2VtZW50T3B0aW9uc1xuKTogQ29tcGlsZWRSZXBsYWNlbWVudCB8IHZvaWQge1xuICBjb25zdCBwYXR0ZXJuID0gcGF0aC52YWx1ZVxuICBjb25zdCBuID0gY29tcGlsZU9wdGlvbnMuYmFja2VuZC50Lm5hbWVkVHlwZXNcblxuICBpZiAoXG4gICAgbi5HZW5lcmljVHlwZUFubm90YXRpb24uY2hlY2socGF0dGVybi50eXBlQW5ub3RhdGlvbikgJiZcbiAgICBuLklkZW50aWZpZXIuY2hlY2socGF0dGVybi50eXBlQW5ub3RhdGlvbi5pZClcbiAgKSB7XG4gICAgaWYgKHBhdHRlcm4udHlwZUFubm90YXRpb24udHlwZVBhcmFtZXRlcnMgPT0gbnVsbCkge1xuICAgICAgY29uc3QgcGxhY2Vob2xkZXJSZXBsYWNlbWVudCA9IGNvbXBpbGVQbGFjZWhvbGRlclJlcGxhY2VtZW50KFxuICAgICAgICBwYXRoLFxuICAgICAgICBwYXR0ZXJuLnR5cGVBbm5vdGF0aW9uLmlkLm5hbWUsXG4gICAgICAgIGNvbXBpbGVPcHRpb25zXG4gICAgICApXG4gICAgICBpZiAocGxhY2Vob2xkZXJSZXBsYWNlbWVudCkgcmV0dXJuIHBsYWNlaG9sZGVyUmVwbGFjZW1lbnRcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSw2QkFBUCxNQUEwQyxlQUExQzs7QUFFQSxlQUFlLFNBQVNDLG1DQUFUO0FBQ2JDLElBRGE7QUFFYkMsY0FGYTtBQUdlO0VBQzVCLE1BQU1DLE9BQU8sR0FBR0YsSUFBSSxDQUFDRyxLQUFyQjtFQUNBLE1BQU1DLENBQUMsR0FBR0gsY0FBYyxDQUFDSSxPQUFmLENBQXVCQyxDQUF2QixDQUF5QkMsVUFBbkM7O0VBRUE7RUFDRUgsQ0FBQyxDQUFDSSxxQkFBRixDQUF3QkMsS0FBeEIsQ0FBOEJQLE9BQU8sQ0FBQ1EsY0FBdEM7RUFDQU4sQ0FBQyxDQUFDTyxVQUFGLENBQWFGLEtBQWIsQ0FBbUJQLE9BQU8sQ0FBQ1EsY0FBUixDQUF1QkUsRUFBMUMsQ0FGRjtFQUdFO0lBQ0EsSUFBSVYsT0FBTyxDQUFDUSxjQUFSLENBQXVCRyxjQUF2QixJQUF5QyxJQUE3QyxFQUFtRDtNQUNqRCxNQUFNQyxzQkFBc0IsR0FBR2hCLDZCQUE2QjtNQUMxREUsSUFEMEQ7TUFFMURFLE9BQU8sQ0FBQ1EsY0FBUixDQUF1QkUsRUFBdkIsQ0FBMEJHLElBRmdDO01BRzFEZCxjQUgwRCxDQUE1RDs7TUFLQSxJQUFJYSxzQkFBSixFQUE0QixPQUFPQSxzQkFBUDtJQUM3QjtFQUNGO0FBQ0YifQ==