UNPKG

astx

Version:

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

47 lines (41 loc) 5.85 kB
import * as t from '@babel/types' import convertToJSXIdentifierName from './convertToIdentifierName.mjs' import convertToExpression from './convertToExpression.mjs' export default function convertToJSXIdentifierNameExpressionPair(node) { switch (node.type) { case 'ObjectProperty': case 'ObjectTypeProperty': case 'Property': { const key = convertToJSXIdentifierName(node.key) const value = convertToExpression(node.value) if (key && value) return [key, value] break } case 'TSPropertySignature': { const key = convertToJSXIdentifierName(node.key) const value = convertToExpression(node.typeAnnotation || node.key) if (key && value) return [key, value] break } case 'JSXAttribute': { const key = convertToJSXIdentifierName(node.name) const value = convertToExpression(node.value || node.name) if (key && value) return [key, value] break } case 'ImportSpecifier': { const key = node.imported.type === 'StringLiteral' ? node.imported.value : node.imported.name const value = node.local || node.imported return [key, value] } case 'ImportDefaultSpecifier': { const value = node.local || t.identifier('default') return ['default', value] } } const key = convertToJSXIdentifierName(node) if (key) return [key, t.identifier(key)] } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0IiwiY29udmVydFRvSlNYSWRlbnRpZmllck5hbWUiLCJjb252ZXJ0VG9FeHByZXNzaW9uIiwiY29udmVydFRvSlNYSWRlbnRpZmllck5hbWVFeHByZXNzaW9uUGFpciIsIm5vZGUiLCJ0eXBlIiwia2V5IiwidmFsdWUiLCJ0eXBlQW5ub3RhdGlvbiIsIm5hbWUiLCJpbXBvcnRlZCIsImxvY2FsIiwiaWRlbnRpZmllciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0UmVwbGFjZW1lbnQvY29udmVydFRvSlNYSWRlbnRpZmllck5hbWVFeHByZXNzaW9uUGFpci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlLCBFeHByZXNzaW9uIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgKiBhcyB0IGZyb20gJ0BiYWJlbC90eXBlcydcbmltcG9ydCBjb252ZXJ0VG9KU1hJZGVudGlmaWVyTmFtZSBmcm9tICcuL2NvbnZlcnRUb0lkZW50aWZpZXJOYW1lJ1xuaW1wb3J0IGNvbnZlcnRUb0V4cHJlc3Npb24gZnJvbSAnLi9jb252ZXJ0VG9FeHByZXNzaW9uJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb252ZXJ0VG9KU1hJZGVudGlmaWVyTmFtZUV4cHJlc3Npb25QYWlyKFxuICBub2RlOiBOb2RlXG4pOiBbc3RyaW5nLCBFeHByZXNzaW9uXSB8IHZvaWQge1xuICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgIGNhc2UgJ09iamVjdFByb3BlcnR5JzpcbiAgICBjYXNlICdPYmplY3RUeXBlUHJvcGVydHknOlxuICAgIGNhc2UgJ1Byb3BlcnR5Jzoge1xuICAgICAgY29uc3Qga2V5ID0gY29udmVydFRvSlNYSWRlbnRpZmllck5hbWUobm9kZS5rZXkpXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRUb0V4cHJlc3Npb24obm9kZS52YWx1ZSlcbiAgICAgIGlmIChrZXkgJiYgdmFsdWUpIHJldHVybiBba2V5LCB2YWx1ZV1cbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgJ1RTUHJvcGVydHlTaWduYXR1cmUnOiB7XG4gICAgICBjb25zdCBrZXkgPSBjb252ZXJ0VG9KU1hJZGVudGlmaWVyTmFtZShub2RlLmtleSlcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udmVydFRvRXhwcmVzc2lvbihub2RlLnR5cGVBbm5vdGF0aW9uIHx8IG5vZGUua2V5KVxuICAgICAgaWYgKGtleSAmJiB2YWx1ZSkgcmV0dXJuIFtrZXksIHZhbHVlXVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAnSlNYQXR0cmlidXRlJzoge1xuICAgICAgY29uc3Qga2V5ID0gY29udmVydFRvSlNYSWRlbnRpZmllck5hbWUobm9kZS5uYW1lKVxuICAgICAgY29uc3QgdmFsdWUgPSBjb252ZXJ0VG9FeHByZXNzaW9uKG5vZGUudmFsdWUgfHwgbm9kZS5uYW1lKVxuICAgICAgaWYgKGtleSAmJiB2YWx1ZSkgcmV0dXJuIFtrZXksIHZhbHVlXVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAnSW1wb3J0U3BlY2lmaWVyJzoge1xuICAgICAgY29uc3Qga2V5ID1cbiAgICAgICAgbm9kZS5pbXBvcnRlZC50eXBlID09PSAnU3RyaW5nTGl0ZXJhbCdcbiAgICAgICAgICA/IG5vZGUuaW1wb3J0ZWQudmFsdWVcbiAgICAgICAgICA6IG5vZGUuaW1wb3J0ZWQubmFtZVxuICAgICAgY29uc3QgdmFsdWUgPSBub2RlLmxvY2FsIHx8IG5vZGUuaW1wb3J0ZWRcbiAgICAgIHJldHVybiBba2V5LCB2YWx1ZV1cbiAgICB9XG4gICAgY2FzZSAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcic6IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gbm9kZS5sb2NhbCB8fCB0LmlkZW50aWZpZXIoJ2RlZmF1bHQnKVxuICAgICAgcmV0dXJuIFsnZGVmYXVsdCcsIHZhbHVlXVxuICAgIH1cbiAgfVxuICBjb25zdCBrZXkgPSBjb252ZXJ0VG9KU1hJZGVudGlmaWVyTmFtZShub2RlKVxuICBpZiAoa2V5KSByZXR1cm4gW2tleSwgdC5pZGVudGlmaWVyKGtleSldXG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEtBQUtBLENBQVosTUFBbUIsY0FBbkI7QUFDQSxPQUFPQywwQkFBUCxNQUF1QywyQkFBdkM7QUFDQSxPQUFPQyxtQkFBUCxNQUFnQyx1QkFBaEM7O0FBRUEsZUFBZSxTQUFTQyx3Q0FBVDtBQUNiQyxJQURhO0FBRWdCO0VBQzdCLFFBQVFBLElBQUksQ0FBQ0MsSUFBYjtJQUNFLEtBQUssZ0JBQUw7SUFDQSxLQUFLLG9CQUFMO0lBQ0EsS0FBSyxVQUFMLENBQWlCO1FBQ2YsTUFBTUMsR0FBRyxHQUFHTCwwQkFBMEIsQ0FBQ0csSUFBSSxDQUFDRSxHQUFOLENBQXRDO1FBQ0EsTUFBTUMsS0FBSyxHQUFHTCxtQkFBbUIsQ0FBQ0UsSUFBSSxDQUFDRyxLQUFOLENBQWpDO1FBQ0EsSUFBSUQsR0FBRyxJQUFJQyxLQUFYLEVBQWtCLE9BQU8sQ0FBQ0QsR0FBRCxFQUFNQyxLQUFOLENBQVA7UUFDbEI7TUFDRDtJQUNELEtBQUsscUJBQUwsQ0FBNEI7UUFDMUIsTUFBTUQsR0FBRyxHQUFHTCwwQkFBMEIsQ0FBQ0csSUFBSSxDQUFDRSxHQUFOLENBQXRDO1FBQ0EsTUFBTUMsS0FBSyxHQUFHTCxtQkFBbUIsQ0FBQ0UsSUFBSSxDQUFDSSxjQUFMLElBQXVCSixJQUFJLENBQUNFLEdBQTdCLENBQWpDO1FBQ0EsSUFBSUEsR0FBRyxJQUFJQyxLQUFYLEVBQWtCLE9BQU8sQ0FBQ0QsR0FBRCxFQUFNQyxLQUFOLENBQVA7UUFDbEI7TUFDRDtJQUNELEtBQUssY0FBTCxDQUFxQjtRQUNuQixNQUFNRCxHQUFHLEdBQUdMLDBCQUEwQixDQUFDRyxJQUFJLENBQUNLLElBQU4sQ0FBdEM7UUFDQSxNQUFNRixLQUFLLEdBQUdMLG1CQUFtQixDQUFDRSxJQUFJLENBQUNHLEtBQUwsSUFBY0gsSUFBSSxDQUFDSyxJQUFwQixDQUFqQztRQUNBLElBQUlILEdBQUcsSUFBSUMsS0FBWCxFQUFrQixPQUFPLENBQUNELEdBQUQsRUFBTUMsS0FBTixDQUFQO1FBQ2xCO01BQ0Q7SUFDRCxLQUFLLGlCQUFMLENBQXdCO1FBQ3RCLE1BQU1ELEdBQUc7UUFDUEYsSUFBSSxDQUFDTSxRQUFMLENBQWNMLElBQWQsS0FBdUIsZUFBdkI7UUFDSUQsSUFBSSxDQUFDTSxRQUFMLENBQWNILEtBRGxCO1FBRUlILElBQUksQ0FBQ00sUUFBTCxDQUFjRCxJQUhwQjtRQUlBLE1BQU1GLEtBQUssR0FBR0gsSUFBSSxDQUFDTyxLQUFMLElBQWNQLElBQUksQ0FBQ00sUUFBakM7UUFDQSxPQUFPLENBQUNKLEdBQUQsRUFBTUMsS0FBTixDQUFQO01BQ0Q7SUFDRCxLQUFLLHdCQUFMLENBQStCO1FBQzdCLE1BQU1BLEtBQUssR0FBR0gsSUFBSSxDQUFDTyxLQUFMLElBQWNYLENBQUMsQ0FBQ1ksVUFBRixDQUFhLFNBQWIsQ0FBNUI7UUFDQSxPQUFPLENBQUMsU0FBRCxFQUFZTCxLQUFaLENBQVA7TUFDRCxDQWhDSDs7RUFrQ0EsTUFBTUQsR0FBRyxHQUFHTCwwQkFBMEIsQ0FBQ0csSUFBRCxDQUF0QztFQUNBLElBQUlFLEdBQUosRUFBUyxPQUFPLENBQUNBLEdBQUQsRUFBTU4sQ0FBQyxDQUFDWSxVQUFGLENBQWFOLEdBQWIsQ0FBTixDQUFQO0FBQ1YifQ==