Начиная с текущего состояния реализаций Javascript, вы не можете напрямую экспортировать асинхронно полученное значение, потому что экспорт происходит синхронно, прежде чем любая асинхронная операция может быть завершена.
Обычный обходной путь заключается в экспортировать функцию, которую может вызвать вызывающая сторона, и эта функция возвращает обещание, которое разрешается с асинхронным значением. Затем вы можете либо выбрать экспорт своей синхронной части напрямую, и позволить вызывающей стороне вызвать вашу экспортированную функцию, чтобы получить асинхронную часть, либо вы можете просто поместить синхронную и асинхронную части в разрешенное значение обещания, которое возвращает ваша функция. Когда часть операции является синхронной, а часть - асинхронной, все значение можно получить только асинхронно.
Я не могу вернуть Promise, потому что остальная часть кода должна быть изменена чтобы решить их - есть ли чистый способ, которым я могу экспортировать модуль таким способом, используя данные из асинхронного c метода?
У вас нет выбора здесь. Вы не можете синхронно экспортировать асинхронное значение с текущего состояния Javascript. В настоящее время ведется работа по стандартизации для обеспечения механизма асинхронного экспорта, в котором процесс экспорта может фактически блокировать процесс загрузки до тех пор, пока не будет получен результат, но он пока недоступен.
Итак, если вы хотите включить асинхронное значение в ваши экспорты, вызывающие абоненты должны будут изменить способ импорта, если они хотят получить это асинхронно полученное значение. Там нет выбора.