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
.
Второй параметр — колбэк, в который передаётся два параметра:
- Первый — текст ошибки, если она случилась
- Второй — результат проверки