astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
68 lines (49 loc) • 1.96 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = convertToJSXIdentifierNamePair;
var _convertToIdentifierName = _interopRequireDefault(require("./convertToIdentifierName"));
function convertToJSXIdentifierNamePair(node) {
switch (node.type) {
case 'ObjectProperty':
case 'ObjectTypeProperty':
case 'Property':
{
var _key = (0, _convertToIdentifierName["default"])(node.key);
var value = (0, _convertToIdentifierName["default"])(node.value);
if (_key && value) return [_key, value];
break;
}
case 'TSPropertySignature':
{
var _key2 = (0, _convertToIdentifierName["default"])(node.key);
var _value = node.typeAnnotation ? (0, _convertToIdentifierName["default"])(node.typeAnnotation) : _key2;
if (_key2 && _value) return [_key2, _value];
break;
}
case 'JSXAttribute':
{
var _key3 = (0, _convertToIdentifierName["default"])(node.name);
var _value2 = node.value ? (0, _convertToIdentifierName["default"])(node.value) : _key3;
if (_key3 && _value2) return [_key3, _value2];
break;
}
case 'ImportSpecifier':
{
var _node$local;
var _key4 = node.imported.type === 'StringLiteral' ? node.imported.value : node.imported.name;
var _value3 = ((_node$local = node.local) === null || _node$local === void 0 ? void 0 : _node$local.name) || _key4;
return [_key4, _value3];
}
case 'ImportDefaultSpecifier':
{
var _node$local2;
var _value4 = ((_node$local2 = node.local) === null || _node$local2 === void 0 ? void 0 : _node$local2.name) || 'default';
return ['default', _value4];
}
}
var key = (0, _convertToIdentifierName["default"])(node);
if (key) return [key, key];
}