astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
26 lines (23 loc) • 2.9 kB
JavaScript
import * as t from '@babel/types'
import convertToIdentifierName from './convertToIdentifierName.mjs'
export default function convertToExpression(value) {
var _value$expression
switch (value.type) {
case 'ClassDeclaration':
return { ...value, type: 'ClassExpression' }
case 'FunctionDeclaration':
return { ...value, type: 'FunctionExpression' }
case 'ExpressionStatement':
case 'JSXExpressionContainer':
if (
((_value$expression = value.expression) === null ||
_value$expression === void 0
? void 0
: _value$expression.type) !== 'JSXEmptyExpression'
)
return value.expression
}
if (t.isExpression(value)) return value
const name = convertToIdentifierName(value)
if (name) return t.identifier(name)
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0IiwiY29udmVydFRvSWRlbnRpZmllck5hbWUiLCJjb252ZXJ0VG9FeHByZXNzaW9uIiwidmFsdWUiLCJ0eXBlIiwiZXhwcmVzc2lvbiIsImlzRXhwcmVzc2lvbiIsIm5hbWUiLCJpZGVudGlmaWVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnZlcnRSZXBsYWNlbWVudC9jb252ZXJ0VG9FeHByZXNzaW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGUsIEV4cHJlc3Npb24gfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJ1xuaW1wb3J0IGNvbnZlcnRUb0lkZW50aWZpZXJOYW1lIGZyb20gJy4vY29udmVydFRvSWRlbnRpZmllck5hbWUnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnZlcnRUb0V4cHJlc3Npb24odmFsdWU6IE5vZGUpOiBFeHByZXNzaW9uIHwgdm9pZCB7XG4gIHN3aXRjaCAodmFsdWUudHlwZSkge1xuICAgIGNhc2UgJ0NsYXNzRGVjbGFyYXRpb24nOlxuICAgICAgcmV0dXJuIHsgLi4udmFsdWUsIHR5cGU6ICdDbGFzc0V4cHJlc3Npb24nIH1cbiAgICBjYXNlICdGdW5jdGlvbkRlY2xhcmF0aW9uJzpcbiAgICAgIHJldHVybiB7IC4uLnZhbHVlLCB0eXBlOiAnRnVuY3Rpb25FeHByZXNzaW9uJyB9XG4gICAgY2FzZSAnRXhwcmVzc2lvblN0YXRlbWVudCc6XG4gICAgY2FzZSAnSlNYRXhwcmVzc2lvbkNvbnRhaW5lcic6XG4gICAgICBpZiAodmFsdWUuZXhwcmVzc2lvbj8udHlwZSAhPT0gJ0pTWEVtcHR5RXhwcmVzc2lvbicpXG4gICAgICAgIHJldHVybiB2YWx1ZS5leHByZXNzaW9uXG4gIH1cbiAgaWYgKHQuaXNFeHByZXNzaW9uKHZhbHVlKSkgcmV0dXJuIHZhbHVlXG4gIGNvbnN0IG5hbWUgPSBjb252ZXJ0VG9JZGVudGlmaWVyTmFtZSh2YWx1ZSlcbiAgaWYgKG5hbWUpIHJldHVybiB0LmlkZW50aWZpZXIobmFtZSlcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sS0FBS0EsQ0FBWixNQUFtQixjQUFuQjtBQUNBLE9BQU9DLHVCQUFQLE1BQW9DLDJCQUFwQzs7QUFFQSxlQUFlLFNBQVNDLG1CQUFULENBQTZCQyxLQUE3QixFQUE2RDtFQUMxRSxRQUFRQSxLQUFLLENBQUNDLElBQWQ7SUFDRSxLQUFLLGtCQUFMO01BQ0UsT0FBTyxFQUFFLEdBQUdELEtBQUwsRUFBWUMsSUFBSSxFQUFFLGlCQUFsQixFQUFQO0lBQ0YsS0FBSyxxQkFBTDtNQUNFLE9BQU8sRUFBRSxHQUFHRCxLQUFMLEVBQVlDLElBQUksRUFBRSxvQkFBbEIsRUFBUDtJQUNGLEtBQUsscUJBQUw7SUFDQSxLQUFLLHdCQUFMO01BQ0UsSUFBSSxzQkFBQUQsS0FBSyxDQUFDRSxVQUFOLHdFQUFrQkQsSUFBbEIsTUFBMkIsb0JBQS9CO01BQ0UsT0FBT0QsS0FBSyxDQUFDRSxVQUFiLENBUk47O0VBVUEsSUFBSUwsQ0FBQyxDQUFDTSxZQUFGLENBQWVILEtBQWYsQ0FBSixFQUEyQixPQUFPQSxLQUFQO0VBQzNCLE1BQU1JLElBQUksR0FBR04sdUJBQXVCLENBQUNFLEtBQUQsQ0FBcEM7RUFDQSxJQUFJSSxJQUFKLEVBQVUsT0FBT1AsQ0FBQyxDQUFDUSxVQUFGLENBQWFELElBQWIsQ0FBUDtBQUNYIn0=