UNPKG

astx

Version:

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

20 lines (18 loc) 2.83 kB
import * as t from '@babel/types' import convertToIdentifierExpressionPair from './convertToIdentifierExpressionPair.mjs' import convertToExpression from './convertToExpression.mjs' export default function convertPropertyReplacement(node) { switch (node.type) { case 'SpreadElement': case 'ObjectProperty': return node case 'TSRestType': case 'ObjectTypeSpreadProperty': { const expr = convertToExpression(node) if (expr) return t.spreadElement(expr) } } const keyValue = convertToIdentifierExpressionPair(node) if (keyValue) return t.objectProperty(keyValue[0], keyValue[1]) return node } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0IiwiY29udmVydFRvSWRlbnRpZmllckV4cHJlc3Npb25QYWlyIiwiY29udmVydFRvRXhwcmVzc2lvbiIsImNvbnZlcnRQcm9wZXJ0eVJlcGxhY2VtZW50Iiwibm9kZSIsInR5cGUiLCJleHByIiwic3ByZWFkRWxlbWVudCIsImtleVZhbHVlIiwib2JqZWN0UHJvcGVydHkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udmVydFJlcGxhY2VtZW50L2NvbnZlcnRQcm9wZXJ0eVJlcGxhY2VtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJ1xuaW1wb3J0IGNvbnZlcnRUb0lkZW50aWZpZXJFeHByZXNzaW9uUGFpciBmcm9tICcuL2NvbnZlcnRUb0lkZW50aWZpZXJFeHByZXNzaW9uUGFpcidcbmltcG9ydCBjb252ZXJ0VG9FeHByZXNzaW9uIGZyb20gJy4vY29udmVydFRvRXhwcmVzc2lvbidcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udmVydFByb3BlcnR5UmVwbGFjZW1lbnQobm9kZTogTm9kZSk6IE5vZGUge1xuICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgIGNhc2UgJ1NwcmVhZEVsZW1lbnQnOlxuICAgIGNhc2UgJ09iamVjdFByb3BlcnR5JzpcbiAgICAgIHJldHVybiBub2RlXG4gICAgY2FzZSAnVFNSZXN0VHlwZSc6XG4gICAgY2FzZSAnT2JqZWN0VHlwZVNwcmVhZFByb3BlcnR5Jzoge1xuICAgICAgY29uc3QgZXhwciA9IGNvbnZlcnRUb0V4cHJlc3Npb24obm9kZSlcbiAgICAgIGlmIChleHByKSByZXR1cm4gdC5zcHJlYWRFbGVtZW50KGV4cHIgYXMgdC5FeHByZXNzaW9uKVxuICAgIH1cbiAgfVxuICBjb25zdCBrZXlWYWx1ZSA9IGNvbnZlcnRUb0lkZW50aWZpZXJFeHByZXNzaW9uUGFpcihub2RlKVxuICBpZiAoa2V5VmFsdWUpXG4gICAgcmV0dXJuIHQub2JqZWN0UHJvcGVydHkoXG4gICAgICBrZXlWYWx1ZVswXSBhcyB0LklkZW50aWZpZXIsXG4gICAgICBrZXlWYWx1ZVsxXSBhcyB0LkV4cHJlc3Npb25cbiAgICApXG4gIHJldHVybiBub2RlXG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEtBQUtBLENBQVosTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxpQ0FBUCxNQUE4QyxxQ0FBOUM7QUFDQSxPQUFPQyxtQkFBUCxNQUFnQyx1QkFBaEM7O0FBRUEsZUFBZSxTQUFTQywwQkFBVCxDQUFvQ0MsSUFBcEMsRUFBc0Q7RUFDbkUsUUFBUUEsSUFBSSxDQUFDQyxJQUFiO0lBQ0UsS0FBSyxlQUFMO0lBQ0EsS0FBSyxnQkFBTDtNQUNFLE9BQU9ELElBQVA7SUFDRixLQUFLLFlBQUw7SUFDQSxLQUFLLDBCQUFMLENBQWlDO1FBQy9CLE1BQU1FLElBQUksR0FBR0osbUJBQW1CLENBQUNFLElBQUQsQ0FBaEM7UUFDQSxJQUFJRSxJQUFKLEVBQVUsT0FBT04sQ0FBQyxDQUFDTyxhQUFGLENBQWdCRCxJQUFoQixDQUFQO01BQ1gsQ0FSSDs7RUFVQSxNQUFNRSxRQUFRLEdBQUdQLGlDQUFpQyxDQUFDRyxJQUFELENBQWxEO0VBQ0EsSUFBSUksUUFBSjtFQUNFLE9BQU9SLENBQUMsQ0FBQ1MsY0FBRjtFQUNMRCxRQUFRLENBQUMsQ0FBRCxDQURIO0VBRUxBLFFBQVEsQ0FBQyxDQUFELENBRkgsQ0FBUDs7RUFJRixPQUFPSixJQUFQO0FBQ0QifQ==