Как заставить jscodeshift/recast сохранять запятые в выражениях объектов?
Я писал некоторые преобразования, чтобы помочь мне реорганизовать кодовую базу. В основном я добавляю новое свойство к некоторым объектным выражениям. Почему jscodeshift/recast
удалить запятые из этих объектов? Как я могу предотвратить это?
1 ответ
Решение
У Recast есть опция запятой:
// If you want to print trailing commas in object literals,
// array expressions, functions calls and function definitions pass true
// for this option.
trailingComma: false,
Вы можете передать параметры распечатки в jscodeshift для toSource
метод, как описано здесь:
return x.toSource({trailingComma: true});
Теперь, когда проблема в комментариях ниже была объединена, вы также можете использовать ее для большей детализации:
trailingComma: {
objects: true,
arrays: true,
functions: false,
}
Почему jscodeshift/recast удаляет запятые с этих объектов?
Recast не может удалить то, что не существует. Recast работает на AST кода. Пунктуаторы, такие как запятая для разделения свойств, не существует в AST.