Български
Тема
Български
Тема
Помощна библиотека за JSON на един продукт.
Малка библиотека от helper функции, която улеснява другите потребители при писането на правила за проверка - най-вече като прави четенето на properties от JSON на продукта по-просто и по-безопасно. По време на курса я изграждаме за един продукт; структурата ѝ трябва да улеснява добавянето на следващите продукти.
| Занятие | Какво добавяме |
|---|---|
| 5. Функции | compareVersions(a, b) и versionBelow(a, b) - сравняване на версии, записани като strings |
| 6. Обекти | get(doc, path, fallback) - безопасен достъп до дълбоки пътища; пътят е string или array (за ключове с точки) |
| 7. Методи на arrays | старт: ваше собствено repository, избран продукт, примерни документи, library.js; helper функции, които групират списък от записи и изграждат индекс |
| 8. Strings, regex, дати | нормализиране на версии във всякакъв формат; разчитане (parse) на дати и ключове с regular expression |
| 9. JSON, модули, грешки | библиотеката като CommonJS модул; локален runner, който изпълнява правило върху папка с примерни документи с фалшив emit; ясни грешки при лоши входни данни |
| 10. Тестове, типове, преглед | тестове с node:test; JSDoc типове за JSON на продукта; README; представяне и code review |
<product>.js или library.js) с документирани helper функции.node:test върху анонимизирани примерни документи.@typedef) за JSON на продукта, проверени с // @ts-check.Минимумът за прегледа: точки 1, 2 и едно пренаписано правило. Точки 3 - 5 могат да се доразвият след курса.
Предложена структура (лекция 7 я създава, лекции 9 и 10 я попълват):
my-library/
|-- library.js the helpers (module.exports = { ... })
|-- rules/ rules rewritten with the library
| `-- chk-0211.js
|-- samples/ anonymised sample documents, one JSON file each
|-- run-rule.js runs a rule on every sample, with a fake emit (lecture 9)
|-- test/ tests with node:test (lecture 10)
| `-- library.test.js
|-- README.md what the helpers do, with examples
`-- package.jsonКакво трябва да изберете
Кой продукт е първи и кои helper функции трябват най-много. Съберете примери за правила, които днес се пишат трудно.