UNPKG

estree-to-babel

Version:
43 lines (35 loc) 996 B
import {types} from '@putout/babel'; const { isFunctionExpression, objectMethod, } = types; const {assign} = Object; export default (propertiesPaths) => { for (const propPath of propertiesPaths) { const { computed, key, method, value, } = propPath.node; if (method && isFunctionExpression(value)) { propPath.replaceWith(objectMethod('method', key, value.params, value.body, computed)); assign(propPath.node, { id: null, method: true, generator: value.generator, loc: getObjectMethodLoc(key, value), async: value.async, type: 'ObjectMethod', }); } } }; function getObjectMethodLoc(key, value) { if (key.loc && value.loc) return { start: key.loc.start, end: value.loc.end, }; return null; }