Soy nuevo en jscodeshift y AST, pero estoy tratando de hacer una conversión para mis bucles forEach existentes y convertirlos en bucles regulares.
Quiero encubrir lo siguiente:
[ `foo`, `bar` ].forEach(test => { console.log(test); });A esto:
for(const test of [`foo`, `bar`]) { console.log(test); } export default (file, api) => { const j = api.jscodeshift; const root = j(file.source); // What do I do here to transform the forEach to a regular for loop? return root.toSource(); };He estado revisando algunos de los documentos y buscando, pero no puedo encontrar una manera de hacer esto.
El es lo que estaba buscando.
root.find(j.CallExpression, { callee : { property : { name : "forEach" } } }) .replaceWith(path => { // Hangles foo.forEach() and [1,2].forEach() const expression = path.value.callee.object.name ? j.identifier(path.value.callee.object.name) : j.arrayExpression(path.value.callee.object.elements); return j.forOfStatement( j.variableDeclaration( "const", path.value.arguments[0].params ), expression, path.value.arguments[0].body ) });