astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
34 lines (31 loc) • 4.06 kB
JavaScript
import compilePlaceholderReplacement from './Placeholder.mjs'
export default function compileTSPropertySignatureReplacement(
path,
compileOptions
) {
const n = compileOptions.backend.t.namedTypes
const pattern = path.value
if (n.Identifier.check(pattern.key)) {
var _pattern$typeAnnotati
if (
!pattern.optional &&
!pattern.computed &&
(pattern.typeAnnotation == null ||
(n.TSTypeReference.check(
(_pattern$typeAnnotati = pattern.typeAnnotation) === null ||
_pattern$typeAnnotati === void 0
? void 0
: _pattern$typeAnnotati.typeAnnotation
) &&
n.Identifier.check(pattern.typeAnnotation.typeAnnotation.typeName) &&
pattern.typeAnnotation.typeAnnotation.typeName.name === '$'))
) {
const placeholderReplacement = compilePlaceholderReplacement(
path,
pattern.key.name,
compileOptions
)
if (placeholderReplacement) return placeholderReplacement
}
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJSZXBsYWNlbWVudCIsImNvbXBpbGVUU1Byb3BlcnR5U2lnbmF0dXJlUmVwbGFjZW1lbnQiLCJwYXRoIiwiY29tcGlsZU9wdGlvbnMiLCJuIiwiYmFja2VuZCIsInQiLCJuYW1lZFR5cGVzIiwicGF0dGVybiIsInZhbHVlIiwiSWRlbnRpZmllciIsImNoZWNrIiwia2V5Iiwib3B0aW9uYWwiLCJjb21wdXRlZCIsInR5cGVBbm5vdGF0aW9uIiwiVFNUeXBlUmVmZXJlbmNlIiwidHlwZU5hbWUiLCJuYW1lIiwicGxhY2Vob2xkZXJSZXBsYWNlbWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21waWxlUmVwbGFjZW1lbnQvVFNQcm9wZXJ0eVNpZ25hdHVyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUU1Byb3BlcnR5U2lnbmF0dXJlLCBOb2RlUGF0aCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQ29tcGlsZWRSZXBsYWNlbWVudCwgQ29tcGlsZVJlcGxhY2VtZW50T3B0aW9ucyB9IGZyb20gJy4nXG5pbXBvcnQgY29tcGlsZVBsYWNlaG9sZGVyUmVwbGFjZW1lbnQgZnJvbSAnLi9QbGFjZWhvbGRlcidcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZVRTUHJvcGVydHlTaWduYXR1cmVSZXBsYWNlbWVudChcbiAgcGF0aDogTm9kZVBhdGg8VFNQcm9wZXJ0eVNpZ25hdHVyZSwgVFNQcm9wZXJ0eVNpZ25hdHVyZT4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlUmVwbGFjZW1lbnRPcHRpb25zXG4pOiBDb21waWxlZFJlcGxhY2VtZW50IHwgdm9pZCB7XG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuICBjb25zdCBwYXR0ZXJuID0gcGF0aC52YWx1ZVxuICBpZiAobi5JZGVudGlmaWVyLmNoZWNrKHBhdHRlcm4ua2V5KSkge1xuICAgIGlmIChcbiAgICAgICFwYXR0ZXJuLm9wdGlvbmFsICYmXG4gICAgICAhcGF0dGVybi5jb21wdXRlZCAmJlxuICAgICAgKHBhdHRlcm4udHlwZUFubm90YXRpb24gPT0gbnVsbCB8fFxuICAgICAgICAobi5UU1R5cGVSZWZlcmVuY2UuY2hlY2socGF0dGVybi50eXBlQW5ub3RhdGlvbj8udHlwZUFubm90YXRpb24pICYmXG4gICAgICAgICAgbi5JZGVudGlmaWVyLmNoZWNrKHBhdHRlcm4udHlwZUFubm90YXRpb24udHlwZUFubm90YXRpb24udHlwZU5hbWUpICYmXG4gICAgICAgICAgcGF0dGVybi50eXBlQW5ub3RhdGlvbi50eXBlQW5ub3RhdGlvbi50eXBlTmFtZS5uYW1lID09PSAnJCcpKVxuICAgICkge1xuICAgICAgY29uc3QgcGxhY2Vob2xkZXJSZXBsYWNlbWVudCA9IGNvbXBpbGVQbGFjZWhvbGRlclJlcGxhY2VtZW50KFxuICAgICAgICBwYXRoLFxuICAgICAgICBwYXR0ZXJuLmtleS5uYW1lLFxuICAgICAgICBjb21waWxlT3B0aW9uc1xuICAgICAgKVxuICAgICAgaWYgKHBsYWNlaG9sZGVyUmVwbGFjZW1lbnQpIHJldHVybiBwbGFjZWhvbGRlclJlcGxhY2VtZW50XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBRUEsT0FBT0EsNkJBQVAsTUFBMEMsZUFBMUM7O0FBRUEsZUFBZSxTQUFTQyxxQ0FBVDtBQUNiQyxJQURhO0FBRWJDLGNBRmE7QUFHZTtFQUM1QixNQUFNQyxDQUFDLEdBQUdELGNBQWMsQ0FBQ0UsT0FBZixDQUF1QkMsQ0FBdkIsQ0FBeUJDLFVBQW5DO0VBQ0EsTUFBTUMsT0FBTyxHQUFHTixJQUFJLENBQUNPLEtBQXJCO0VBQ0EsSUFBSUwsQ0FBQyxDQUFDTSxVQUFGLENBQWFDLEtBQWIsQ0FBbUJILE9BQU8sQ0FBQ0ksR0FBM0IsQ0FBSixFQUFxQztJQUNuQztJQUNFLENBQUNKLE9BQU8sQ0FBQ0ssUUFBVDtJQUNBLENBQUNMLE9BQU8sQ0FBQ00sUUFEVDtJQUVDTixPQUFPLENBQUNPLGNBQVIsSUFBMEIsSUFBMUI7SUFDRVgsQ0FBQyxDQUFDWSxlQUFGLENBQWtCTCxLQUFsQiwwQkFBd0JILE9BQU8sQ0FBQ08sY0FBaEMsMERBQXdCLHNCQUF3QkEsY0FBaEQ7SUFDQ1gsQ0FBQyxDQUFDTSxVQUFGLENBQWFDLEtBQWIsQ0FBbUJILE9BQU8sQ0FBQ08sY0FBUixDQUF1QkEsY0FBdkIsQ0FBc0NFLFFBQXpELENBREQ7SUFFQ1QsT0FBTyxDQUFDTyxjQUFSLENBQXVCQSxjQUF2QixDQUFzQ0UsUUFBdEMsQ0FBK0NDLElBQS9DLEtBQXdELEdBTDVELENBREY7SUFPRTtNQUNBLE1BQU1DLHNCQUFzQixHQUFHbkIsNkJBQTZCO01BQzFERSxJQUQwRDtNQUUxRE0sT0FBTyxDQUFDSSxHQUFSLENBQVlNLElBRjhDO01BRzFEZixjQUgwRCxDQUE1RDs7TUFLQSxJQUFJZ0Isc0JBQUosRUFBNEIsT0FBT0Esc0JBQVA7SUFDN0I7RUFDRjtBQUNGIn0=