Задача сделать консольную утилиту для фронтендера.
Утилита будет брать все файлы с расширением .js
в текущей директории, находить в них все комментарии с TODO
. Искать по ним, фильтровать, сортировать.
Мы уже написали за тебя метод для работы с консолью и методы для чтения из файлов. Осталось написать остальное =)
Для запуска используй команду node index.js
При запуске специальный код ждет команды из консоли.
Сейчас он знает только команду exit
, остальные нужно дописать тебе.
- Получи из всех файлов все однострочные комментарии, начинающиеся с
TODO
. Все комментарии имеют одинаковое начало: два слеша, пробел, словоTODO
капсом, снова пробел и дальше текст комментария. Например:
// TODO Переделать это!
- Сейчас метод
processCommand
обрабатывает только командуexit
и завершает процесс в node. Научись обрабатывать еще одну команду из консоли:
show : показать все todo
Выводить нужно стандартным выводом в консоль console.log
. Можешь выводить как угодно твоим эстетическим чувствам: можно выводить просто массив в консоль, можно каждый элемент на новой строчке.
- В комментарии может присутствовать восклицательный знак (!), что означает, что это задача с высоким приоритетом. Научись обрабатывать команду из консоли:
important : показывать только todo, в которых есть восклицательный знак
- Текст в todo может быть представлен обычным текстом.
Или же использовать специальную разметку:
// TODO {Имя автора}; {Дата комментария}; {текст комментария}
После имени и даты обязательно ставится точка с запятой, а вот пробел между ними не обязателен. Научись обрабатывать еще одну команду из консоли:
user {username} : показывать только комментарии от указанного пользователя
Причем имя пользователя должно быть регистронезависимо.
Пример команды: user veronika
- Научись обрабатывать команды
sort {importance | user | date} : выводит отсортированные todo
Если аргумент importance
, то сначала выводятся комментарии с восклицательными знаками, потом все остальные.
Чем больше восклицательных знаков, тем выше приоритет и тем выше в списке этот комментарий.
Если аргумент user
, то выводятся задачи сгрупированные по пользователям, а в конце безымянные.
Если аргумент date
, то выводятся сначала самые новые, потом постарше, потом без дат.
Примеры команд: sort importance
, sort user
, sort date