Код Middle Файлы и процессы обновлено

Парсер .env-файла

Условие

Напиши parseEnv(text): разбирает содержимое .env в объект.

  • Строка KEY=value; пробелы вокруг ключа и неквотированного значения обрезаются. Допустим префикс export .
  • Пустые строки и строки, начинающиеся с # (после пробелов), пропускаются.
  • Неквотированное значение: всё до # (пробел + решётка начинает комментарий).
  • В одинарных кавычках значение берётся буквально. В двойных \n превращается в перевод строки, \" в кавычку. Решётка внутри кавычек это часть значения.
  • Строки без = и с невалидным ключом (допустимо [A-Za-z_][A-Za-z0-9_]*) пропускаются.
  • Повторный ключ перезаписывает предыдущий.

Примеры

parseEnv("PORT=3000\nHOST = localhost ") // {"PORT":"3000","HOST":"localhost"}
parseEnv("# comment\n\n  # indented\nA=1") // {"A":"1"}
parseEnv("export DB_URL=postgres://u:p@db:5432/app") // {"DB_URL":"postgres://u:p@db:5432/app"}

Как подойти

Подсказки: 2
  1. Разбирай построчно, ключ до первого =.
  2. Кавычки обрабатывай до поиска комментария.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.