astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
57 lines (49 loc) • 5.75 kB
JavaScript
import convertToJSXIdentifierName from './convertToIdentifierName.mjs'
export default function convertToJSXIdentifierNamePair(node) {
switch (node.type) {
case 'ObjectProperty':
case 'ObjectTypeProperty':
case 'Property': {
const key = convertToJSXIdentifierName(node.key)
const value = convertToJSXIdentifierName(node.value)
if (key && value) return [key, value]
break
}
case 'TSPropertySignature': {
const key = convertToJSXIdentifierName(node.key)
const value = node.typeAnnotation
? convertToJSXIdentifierName(node.typeAnnotation)
: key
if (key && value) return [key, value]
break
}
case 'JSXAttribute': {
const key = convertToJSXIdentifierName(node.name)
const value = node.value ? convertToJSXIdentifierName(node.value) : key
if (key && value) return [key, value]
break
}
case 'ImportSpecifier': {
var _node$local
const key =
node.imported.type === 'StringLiteral'
? node.imported.value
: node.imported.name
const value =
((_node$local = node.local) === null || _node$local === void 0
? void 0
: _node$local.name) || key
return [key, value]
}
case 'ImportDefaultSpecifier': {
var _node$local2
const value =
((_node$local2 = node.local) === null || _node$local2 === void 0
? void 0
: _node$local2.name) || 'default'
return ['default', value]
}
}
const key = convertToJSXIdentifierName(node)
if (key) return [key, key]
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb252ZXJ0VG9KU1hJZGVudGlmaWVyTmFtZSIsImNvbnZlcnRUb0pTWElkZW50aWZpZXJOYW1lUGFpciIsIm5vZGUiLCJ0eXBlIiwia2V5IiwidmFsdWUiLCJ0eXBlQW5ub3RhdGlvbiIsIm5hbWUiLCJpbXBvcnRlZCIsImxvY2FsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnZlcnRSZXBsYWNlbWVudC9jb252ZXJ0VG9KU1hJZGVudGlmaWVyTmFtZVBhaXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IGNvbnZlcnRUb0pTWElkZW50aWZpZXJOYW1lIGZyb20gJy4vY29udmVydFRvSWRlbnRpZmllck5hbWUnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnZlcnRUb0pTWElkZW50aWZpZXJOYW1lUGFpcihcbiAgbm9kZTogTm9kZVxuKTogW3N0cmluZywgc3RyaW5nXSB8IHZvaWQge1xuICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgIGNhc2UgJ09iamVjdFByb3BlcnR5JzpcbiAgICBjYXNlICdPYmplY3RUeXBlUHJvcGVydHknOlxuICAgIGNhc2UgJ1Byb3BlcnR5Jzoge1xuICAgICAgY29uc3Qga2V5ID0gY29udmVydFRvSlNYSWRlbnRpZmllck5hbWUobm9kZS5rZXkpXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRUb0pTWElkZW50aWZpZXJOYW1lKG5vZGUudmFsdWUpXG4gICAgICBpZiAoa2V5ICYmIHZhbHVlKSByZXR1cm4gW2tleSwgdmFsdWVdXG4gICAgICBicmVha1xuICAgIH1cbiAgICBjYXNlICdUU1Byb3BlcnR5U2lnbmF0dXJlJzoge1xuICAgICAgY29uc3Qga2V5ID0gY29udmVydFRvSlNYSWRlbnRpZmllck5hbWUobm9kZS5rZXkpXG4gICAgICBjb25zdCB2YWx1ZSA9IG5vZGUudHlwZUFubm90YXRpb25cbiAgICAgICAgPyBjb252ZXJ0VG9KU1hJZGVudGlmaWVyTmFtZShub2RlLnR5cGVBbm5vdGF0aW9uKVxuICAgICAgICA6IGtleVxuICAgICAgaWYgKGtleSAmJiB2YWx1ZSkgcmV0dXJuIFtrZXksIHZhbHVlXVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAnSlNYQXR0cmlidXRlJzoge1xuICAgICAgY29uc3Qga2V5ID0gY29udmVydFRvSlNYSWRlbnRpZmllck5hbWUobm9kZS5uYW1lKVxuICAgICAgY29uc3QgdmFsdWUgPSBub2RlLnZhbHVlID8gY29udmVydFRvSlNYSWRlbnRpZmllck5hbWUobm9kZS52YWx1ZSkgOiBrZXlcbiAgICAgIGlmIChrZXkgJiYgdmFsdWUpIHJldHVybiBba2V5LCB2YWx1ZV1cbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgJ0ltcG9ydFNwZWNpZmllcic6IHtcbiAgICAgIGNvbnN0IGtleSA9XG4gICAgICAgIG5vZGUuaW1wb3J0ZWQudHlwZSA9PT0gJ1N0cmluZ0xpdGVyYWwnXG4gICAgICAgICAgPyBub2RlLmltcG9ydGVkLnZhbHVlXG4gICAgICAgICAgOiBub2RlLmltcG9ydGVkLm5hbWVcbiAgICAgIGNvbnN0IHZhbHVlID0gbm9kZS5sb2NhbD8ubmFtZSB8fCBrZXlcbiAgICAgIHJldHVybiBba2V5LCB2YWx1ZV1cbiAgICB9XG4gICAgY2FzZSAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcic6IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gbm9kZS5sb2NhbD8ubmFtZSB8fCAnZGVmYXVsdCdcbiAgICAgIHJldHVybiBbJ2RlZmF1bHQnLCB2YWx1ZV1cbiAgICB9XG4gIH1cbiAgY29uc3Qga2V5ID0gY29udmVydFRvSlNYSWRlbnRpZmllck5hbWUobm9kZSlcbiAgaWYgKGtleSkgcmV0dXJuIFtrZXksIGtleV1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU9BLDBCQUFQLE1BQXVDLDJCQUF2Qzs7QUFFQSxlQUFlLFNBQVNDLDhCQUFUO0FBQ2JDLElBRGE7QUFFWTtFQUN6QixRQUFRQSxJQUFJLENBQUNDLElBQWI7SUFDRSxLQUFLLGdCQUFMO0lBQ0EsS0FBSyxvQkFBTDtJQUNBLEtBQUssVUFBTCxDQUFpQjtRQUNmLE1BQU1DLEdBQUcsR0FBR0osMEJBQTBCLENBQUNFLElBQUksQ0FBQ0UsR0FBTixDQUF0QztRQUNBLE1BQU1DLEtBQUssR0FBR0wsMEJBQTBCLENBQUNFLElBQUksQ0FBQ0csS0FBTixDQUF4QztRQUNBLElBQUlELEdBQUcsSUFBSUMsS0FBWCxFQUFrQixPQUFPLENBQUNELEdBQUQsRUFBTUMsS0FBTixDQUFQO1FBQ2xCO01BQ0Q7SUFDRCxLQUFLLHFCQUFMLENBQTRCO1FBQzFCLE1BQU1ELEdBQUcsR0FBR0osMEJBQTBCLENBQUNFLElBQUksQ0FBQ0UsR0FBTixDQUF0QztRQUNBLE1BQU1DLEtBQUssR0FBR0gsSUFBSSxDQUFDSSxjQUFMO1FBQ1ZOLDBCQUEwQixDQUFDRSxJQUFJLENBQUNJLGNBQU4sQ0FEaEI7UUFFVkYsR0FGSjtRQUdBLElBQUlBLEdBQUcsSUFBSUMsS0FBWCxFQUFrQixPQUFPLENBQUNELEdBQUQsRUFBTUMsS0FBTixDQUFQO1FBQ2xCO01BQ0Q7SUFDRCxLQUFLLGNBQUwsQ0FBcUI7UUFDbkIsTUFBTUQsR0FBRyxHQUFHSiwwQkFBMEIsQ0FBQ0UsSUFBSSxDQUFDSyxJQUFOLENBQXRDO1FBQ0EsTUFBTUYsS0FBSyxHQUFHSCxJQUFJLENBQUNHLEtBQUwsR0FBYUwsMEJBQTBCLENBQUNFLElBQUksQ0FBQ0csS0FBTixDQUF2QyxHQUFzREQsR0FBcEU7UUFDQSxJQUFJQSxHQUFHLElBQUlDLEtBQVgsRUFBa0IsT0FBTyxDQUFDRCxHQUFELEVBQU1DLEtBQU4sQ0FBUDtRQUNsQjtNQUNEO0lBQ0QsS0FBSyxpQkFBTCxDQUF3QjtRQUN0QixNQUFNRCxHQUFHO1FBQ1BGLElBQUksQ0FBQ00sUUFBTCxDQUFjTCxJQUFkLEtBQXVCLGVBQXZCO1FBQ0lELElBQUksQ0FBQ00sUUFBTCxDQUFjSCxLQURsQjtRQUVJSCxJQUFJLENBQUNNLFFBQUwsQ0FBY0QsSUFIcEI7UUFJQSxNQUFNRixLQUFLLEdBQUcsZ0JBQUFILElBQUksQ0FBQ08sS0FBTCw0REFBWUYsSUFBWixLQUFvQkgsR0FBbEM7UUFDQSxPQUFPLENBQUNBLEdBQUQsRUFBTUMsS0FBTixDQUFQO01BQ0Q7SUFDRCxLQUFLLHdCQUFMLENBQStCO1FBQzdCLE1BQU1BLEtBQUssR0FBRyxpQkFBQUgsSUFBSSxDQUFDTyxLQUFMLDhEQUFZRixJQUFaLEtBQW9CLFNBQWxDO1FBQ0EsT0FBTyxDQUFDLFNBQUQsRUFBWUYsS0FBWixDQUFQO01BQ0QsQ0FsQ0g7O0VBb0NBLE1BQU1ELEdBQUcsR0FBR0osMEJBQTBCLENBQUNFLElBQUQsQ0FBdEM7RUFDQSxJQUFJRSxHQUFKLEVBQVMsT0FBTyxDQUFDQSxHQUFELEVBQU1BLEdBQU4sQ0FBUDtBQUNWIn0=