@htmlacademy/courses-task-checks
v1.1.97
Published
courses-task-checks ===================
Downloads
22
Readme
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
.
Второй параметр — колбэк, в который передаётся два параметра:
- Первый — текст ошибки, если она случилась
- Второй — результат проверки