benjamn / recast

JavaScript syntax tree transformer, nondestructive pretty-printer, and automatic source map generator
MIT License
4.95k stars 346 forks source link

Comments moved after recast print #1272

Closed coderaiser closed 1 year ago

coderaiser commented 1 year ago
hello (/** @type {string} */ (a), b);

becames:

hello/** @type {string} */(b, a, b);

After:

export default function transformer(file, api) {
  const j = api.jscodeshift;

  return j(file.source)
    .find(j.CallExpression)
    .forEach(path => {
    const [, arg] = path.node.arguments;
      path.node.arguments.unshift(arg);
    })
    .toSource();
}

https://astexplorer.net/#/gist/79f2d0ef7de4aeb1a913a862217da9ec/9a2e487ad7159d9777bab7dac6d13990d94fc98c

wenq1 commented 1 year ago

Can this be reviewed please?