UNPKG

astx

Version:

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

24 lines (18 loc) 1.56 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = compileClassPropertyReplacement; var _Placeholder = _interopRequireDefault(require("./Placeholder")); function compileClassPropertyReplacement(path, compileOptions) { var pattern = path.value; var n = compileOptions.backend.t.namedTypes; if (n.Identifier.check(pattern.key)) { var _pattern$typeAnnotati, _pattern$typeAnnotati2; if (!pattern.computed && !pattern["static"] && pattern.variance == null && pattern.value == null && (pattern.typeAnnotation == null || n.TypeAnnotation.check(pattern.typeAnnotation) && n.GenericTypeAnnotation.check((_pattern$typeAnnotati = pattern.typeAnnotation) === null || _pattern$typeAnnotati === void 0 ? void 0 : _pattern$typeAnnotati.typeAnnotation) && n.Identifier.check(pattern.typeAnnotation.typeAnnotation.id) && pattern.typeAnnotation.typeAnnotation.id.name === '$' || n.TSTypeAnnotation.check(pattern.typeAnnotation) && n.TSTypeReference.check((_pattern$typeAnnotati2 = pattern.typeAnnotation) === null || _pattern$typeAnnotati2 === void 0 ? void 0 : _pattern$typeAnnotati2.typeAnnotation) && n.Identifier.check(pattern.typeAnnotation.typeAnnotation.typeName) && pattern.typeAnnotation.typeAnnotation.typeName.name === '$')) { var placeholderReplacement = (0, _Placeholder["default"])(path, pattern.key.name, compileOptions); if (placeholderReplacement) return placeholderReplacement; } } }