astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
21 lines (19 loc) • 2.69 kB
JavaScript
import * as t from '@babel/types'
import convertToExpression from './convertToExpression.mjs'
export default function convertStatementReplacement(value) {
switch (value.type) {
case 'ClassExpression':
return { ...value, type: 'ClassDeclaration' }
case 'FunctionExpression':
return {
...value,
id: value.id || t.identifier('anonymous'),
type: 'FunctionDeclaration',
}
}
if (!t.isStatement(value)) {
const expression = convertToExpression(value)
if (expression) return t.expressionStatement(expression)
}
return value
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0IiwiY29udmVydFRvRXhwcmVzc2lvbiIsImNvbnZlcnRTdGF0ZW1lbnRSZXBsYWNlbWVudCIsInZhbHVlIiwidHlwZSIsImlkIiwiaWRlbnRpZmllciIsImlzU3RhdGVtZW50IiwiZXhwcmVzc2lvbiIsImV4cHJlc3Npb25TdGF0ZW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udmVydFJlcGxhY2VtZW50L2NvbnZlcnRTdGF0ZW1lbnRSZXBsYWNlbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlLCBDbGFzc0RlY2xhcmF0aW9uIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgKiBhcyB0IGZyb20gJ0BiYWJlbC90eXBlcydcblxuaW1wb3J0IGNvbnZlcnRUb0V4cHJlc3Npb24gZnJvbSAnLi9jb252ZXJ0VG9FeHByZXNzaW9uJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb252ZXJ0U3RhdGVtZW50UmVwbGFjZW1lbnQodmFsdWU6IE5vZGUpOiBOb2RlIHtcbiAgc3dpdGNoICh2YWx1ZS50eXBlKSB7XG4gICAgY2FzZSAnQ2xhc3NFeHByZXNzaW9uJzpcbiAgICAgIHJldHVybiB7IC4uLnZhbHVlLCB0eXBlOiAnQ2xhc3NEZWNsYXJhdGlvbicgfSBhcyBhbnkgYXMgQ2xhc3NEZWNsYXJhdGlvblxuICAgIGNhc2UgJ0Z1bmN0aW9uRXhwcmVzc2lvbic6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgaWQ6IHZhbHVlLmlkIHx8IHQuaWRlbnRpZmllcignYW5vbnltb3VzJyksXG4gICAgICAgIHR5cGU6ICdGdW5jdGlvbkRlY2xhcmF0aW9uJyxcbiAgICAgIH0gYXMgYW55XG4gIH1cbiAgaWYgKCF0LmlzU3RhdGVtZW50KHZhbHVlKSkge1xuICAgIGNvbnN0IGV4cHJlc3Npb24gPSBjb252ZXJ0VG9FeHByZXNzaW9uKHZhbHVlKVxuICAgIGlmIChleHByZXNzaW9uKSByZXR1cm4gdC5leHByZXNzaW9uU3RhdGVtZW50KGV4cHJlc3Npb24gYXMgdC5FeHByZXNzaW9uKVxuICB9XG4gIHJldHVybiB2YWx1ZVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxLQUFLQSxDQUFaLE1BQW1CLGNBQW5COztBQUVBLE9BQU9DLG1CQUFQLE1BQWdDLHVCQUFoQzs7QUFFQSxlQUFlLFNBQVNDLDJCQUFULENBQXFDQyxLQUFyQyxFQUF3RDtFQUNyRSxRQUFRQSxLQUFLLENBQUNDLElBQWQ7SUFDRSxLQUFLLGlCQUFMO01BQ0UsT0FBTyxFQUFFLEdBQUdELEtBQUwsRUFBWUMsSUFBSSxFQUFFLGtCQUFsQixFQUFQO0lBQ0YsS0FBSyxvQkFBTDtNQUNFLE9BQU87UUFDTCxHQUFHRCxLQURFO1FBRUxFLEVBQUUsRUFBRUYsS0FBSyxDQUFDRSxFQUFOLElBQVlMLENBQUMsQ0FBQ00sVUFBRixDQUFhLFdBQWIsQ0FGWDtRQUdMRixJQUFJLEVBQUUscUJBSEQsRUFBUCxDQUpKOzs7RUFVQSxJQUFJLENBQUNKLENBQUMsQ0FBQ08sV0FBRixDQUFjSixLQUFkLENBQUwsRUFBMkI7SUFDekIsTUFBTUssVUFBVSxHQUFHUCxtQkFBbUIsQ0FBQ0UsS0FBRCxDQUF0QztJQUNBLElBQUlLLFVBQUosRUFBZ0IsT0FBT1IsQ0FBQyxDQUFDUyxtQkFBRixDQUFzQkQsVUFBdEIsQ0FBUDtFQUNqQjtFQUNELE9BQU9MLEtBQVA7QUFDRCJ9