Към съдържанието

Курсов проект ​

Помощна библиотека за 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

Какво се предава ​

  1. CommonJS модул за продукта (<product>.js или library.js) с документирани helper функции.
  2. Тестове с node:test върху анонимизирани примерни документи.
  3. Две или три съществуващи правила, пренаписани с библиотеката.
  4. README с примери за другите потребители.
  5. JSDoc типове (@typedef) за JSON на продукта, проверени с // @ts-check.

Минимумът за прегледа: точки 1, 2 и едно пренаписано правило. Точки 3 - 5 могат да се доразвият след курса.

Repository-то ​

Предложена структура (лекция 7 я създава, лекции 9 и 10 я попълват):

text
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 функции трябват най-много. Съберете примери за правила, които днес се пишат трудно.

Създаден за