Using recast 0.17.3:
const recast = require('recast');
const ast = recast.parse('(/**/{foo} = 1)');
const assignmentExpressionText = recast.print(ast.program.body[0].expression).code;
console.log(assignmentExpressionText);Expected output: something like (/**/{foo} = 1) or {foo} = 1
Actual output: (/**/)({foo} = 1)
The output is invalid code because the initial parentheses are only surrounding a comment and nothing else.