Codemod - чтение файла в узле, который использует синтаксис экспорта
Работая над npm
пакет, который запускает codemod в любом исходном репозитории. В рамках моего codemod я ищу замену определенных значений в исходном репозитории. Прежде чем заменить эти значения, мне нужно проверить значения в объекте, экспортируемом из определенного файла (назовем егоconstants.js
) для существования этих значений. Проверка выше, которую мне нужно выполнить изconstants.js
условно. Это условно, если пользователь codemod хочет найтиconstants.js
файл. Вconstants.js
файл использует import..export
оператор для экспорта нужного мне объекта.
Любые указатели на то, как я могу извлечь объект из этого файла? Я действительно не могу использоватьbabel
вариант здесь, поэтому я пытаюсь использовать fs
методы, чтобы получить то, что я хочу. Я использовалcreateReadStream
метод чтения файла, но его анализ для извлечения экспорта по умолчанию кажется очень хрупким. Есть ли чистый способ получить то, что мне нужно?
В приведенном ниже примере я хочу извлечь Messages
так что я могу посмотреть termsOfUse
для моих изменений codemod.
Constants.js
const Messages = {
termsOfUse: locale => (locale === 'en' ? `TERMS OF USE` : `CONDITIONS`),
};
export default Messages;
Заранее спасибо за помощь.