javascript recast .toSource параметры игнорируются
Я пытаюсь преобразовать и переформатировать этот код JavaScript:
if (name == "c") {b();}
используя этот плагин перекодирования:
return j(file.source)
.find(j.Identifier)
.forEach(path => {
j(path).replaceWith(
j.identifier(path.node.name.split('').reverse().join(''))
);
})
.toSource({quote:'single'});
как сохранено здесь https://astexplorer.net/#/gist/994b660144d9e065906dc41bc14c9c39/c3910178f527d57de5422a0ddce9e515a460182d
Я хочу получить следующий вывод:
if (eman == 'c') {
b();
}
но {quote:'single'}
опция игнорируется, и я не уверен, что есть опция для принудительного отступа, если тело в новой строке. Это ошибка с astexplorer, перекодировать или я делаю что-то не так?
1 ответ
Проблема в том, что .toSource()
использования recast.print()
который пытается сохранить оригинальное форматирование. prettyPrint()
будет уважать больше вариантов:
var rc = require('recast');
rc.prettyPrint(ast, {quote:'single'}).code