@htmlacademy/courses-task-checks

1.1.97 • Public • Published

courses-task-checks

Модуль экспортирует функцию createTaskChecker() и объект Logger.

Использование createTaskChecker()

Функция createTaskChecker() принимает один параметр, объект с ключами:

  • bin, содержит объект {compare: '/usr/bin/compare'}, где значение ключа compare указывает на расположение утилиты командной строки compare
  • checks, содержит объект с ключами:
    • baseDir — каталог в котором будут расположены закешированные данные
    • storeFileName — как правило, содержит значение result.json, имя файла, куда будет сохранён результат
    • cacheFileName — как правило, содержит значение cache.json, имя файла-метки
    • baseUrl — базовый url для вычисления адресов картинок в испытаниях
    • logCliDir — каталог, в котором будут сохраняться логи серверных проверок. Если значение не передано, будет использоваться ./log/cli
  • debug — по умолчанию имеет значение Logger.ERROR, управляет тем, что будет выводиться в лог. Чтобы изменить это значение, нужно проимпортировать объект Logger

Функция возвращает другую функцию, которая принимает на вход два параметра.

Первый параметр — объект с ключами:

  • type — тип задания (html-css, html-css-challenge и т.д.)
  • solutionOnly — используется для случаев, когда нужно получить только картинку с образцом для испытания
  • code — код, приходящий от клиента. Это объект, имеющий ключи html, css, js и svg (от одного до трёх) со строковыми значениями (если solutionOnly имеет значение true, не нужен)
  • goals — состояние целей, полученные с клиента. Для каждой цели приходит объект с ключом status и одним из значений: created, solved или answered (если solutionOnly имеет значение true, не нужен)
  • solution — код решения задания. Присутствует не во всех типах заданий, может быть html или js кодом
  • location — объект, который может быть передан из запускающей программы. Может содержать ключи:
    • dir — каталог, в котором будут сохраняться файлы
    • resultJson — путь к файлу, в который будет сохраняться результат (если файл не указан, предполагается, что сохранять его на диск не нужно)
    • cacheJson — путь к файлу, в который будет сохраняться отметка о запуске проверки
    • baseUrl — базовый путь, начиная от которого будут сохраняться картинки для испытаний
    • url — url, по которому можно будет получить результат

В случае, если ключ location не передан, каталог для сохранения данных вычисляется на основе checks.baseDir и md5-суммы полученного кода. В этом случае считается, что файлы result.json и cache.json нужно сохранять.

В случае, если ключ solutionOnly имеет значение true, достаточно передать type (или task.type) — тип задания и solution.

Второй параметр — колбэк, в который передаётся два параметра:

  • Первый — текст ошибки, если она случилась
  • Второй — результат проверки

Readme

Keywords

none

Package Sidebar

Install

npm i @htmlacademy/courses-task-checks

Weekly Downloads

1

Version

1.1.97

License

ISC

Unpacked Size

38.1 kB

Total Files

47

Last publish

Collaborators

  • andreychap
  • kaineer
  • nakleikoff
  • expa
  • kam4atka