generateAdjustedExportFile = async (fileName, exportsDir, outputDir) => {
  const outputPath = path.resolve(outputDir, fileName);
  if (existsSync(outputPath)) {
    throw new Error(ERROR_CAN_NOT_OVERWRITE_EXISTING_FILE);
  }
  const inputPath = path.resolve(exportsDir, fileName);
  const initialCode = await readFile(inputPath, 'utf-8');
  const adjustImportExportVisitor = getAdjustImportExportVisitor(exportsDir, outputDir);
  const adjustedCode = transformCode(initialCode, adjustImportExportVisitor);
  return writeFile(outputPath, await prettify(adjustedCode));
}
Adjusts relative paths for a given fileName,
and writes it with the same fileName under the outputDir

@param {string} fileName
@param {string} exportsDir
@param {string} outputDir
@throws ERROR_CAN_NOT_OVERWRITE_EXISTING_FILE