Перед выполнением задания внимательно прочитайте:
- О всех этапах проверки задания
- Как отправить пулл
- Как пройти тесты
- Правила оформления javascript, HTML и CSS кода
Мы очень хотим, чтобы код вы написали сами, а не пользовались внешними библиотеками.
Настоящие разработчики редко пользуются web-интерфейсами и предпочитают командную строку.
Даже погоду и текущую фазу луны смотрят в окне терминала (смотри картинку внизу).
Предлагаем вам последовать за хорошей традицией
и написать небольшой модуль для получения информации о задачах курса.
Для решения задачи вам понадобится Github API.
Для безопасного взаимодействия с ним необходимо получить авторизационный token
и положить его в файл token.txt
(исключение в .gitignore мы уже добавили).
Для выполения запросов к API необходимо брать токен из файла,
и ни в коем случае не оставлять его где-либо в коде!
Обязательно оберните чтение токена в try/catch – для тестов он не нужен и может быть пустым.
И так, предлагаем для начала реализовать пару полезных функций.
Принимает на вход категорию задачи: demo, javascript или markup.
А на выходе возвращает список задач этой категории с названием и описанием:
javascript-task-1: Задача «XXL»
javascript-task-2: Задача «Телефонная книга»
javascript-task-3: Задача «0b11 друзей Оушена»
javascript-task-4: Задача «Картофельная вечеринка Билли»
...
Необходимый интерфейс возьмите из следующего раздела документации:
Принимает на вход название репозитория. Например, javascript-task-1.
А на выходе возвращает объект с информацией:
{
name: 'javascript-task-1', // Название репозитория
description: 'Задача «XXL»', // Описание
markdown: '# Задача «XXL» ...' // И markdown из README.md
}
Необходимые интерфейсы возьмите из следующих разделов документации:
- Можно пользоваться только встроенными модулями Node.js
и своим модулемflow
из предыдущей задачи
(по возможности установите его средствами npm, используя git URL). - Можно использовать только рекомендованные в тексте задачи интерфейсы GitHub API.
Любые другие будут блокироваться в тестах. - Выполнение запросов к API обязательно изолируйте в отдельный модуль.
- А так же обязательно обрабатывайте различные ошибки.
Например, неудачное сетевое соединение до API.
Примеры с подробными комментариями можно традиционно найти в index.js и в тестах.
Перед выполнением внимательно прочитайте про особенности
Очень круто, если вместе с markdown разметкой текста задачи,
вы будете возвращать и html представление в отдельном поле:
{
name: 'javascript-task-1',
description: 'Задача «XXL»',
markdown: '# Задача «XXL» ...',
html: '<h1>Задача «XXL»</h1> ...'
}
Интерфейс для этого описан в разделе Render a Markdown document in raw mode
Пример с подробными комментариями можно найти в index.js и в тестах.