До того, как приступить к решению задачи колебался между JavaScript и TypeScript. Поскольку я являюсь разработчиком на C#, то TS очень манил статической типизацией. Но ни на JS, ни на TS я раньше не писал и решил использовать JS, а TS уже осваивать, когда будет хорошие знания по JS.
Собирает весь проект в один файл и с помощью параметров
format: "umd", name: "lint", extend: true
добавляет возможность использовать
этот файл и в браузере, и в NodeJS.
Подсмотрел чем собирается библиотека json-to-ast
.
Настроил, все заработало и код бандла показался очень читабельным, решил оставить.
Анализирует код и выводит все несоответствия исходного кода заданным правилам как синтаксическим, так и стилистическим. Помогает поддерживать единый стиль кода во всем проекте.
Настроен pre-commit git hook
запускающий линтинг JS кода и прогон тестов перед каждым коммитом.
Необходим для того, чтобы в репозиторий не попадал код с ошибками и красными тестами.
Тестовый фреймворк. Выбрал самый популярный по npm.
Парсер, который преобразует JSON строку в абстрактное синтаксическое дерево (AST). С помощью AST можно перемещаться по дереву без необходимости знать конкретную структуру и проводить различные анализы элементов. Кроме того AST дерево содержит информацию о позиции каждого элемента.
Выбрал благодаря подсказке в 3 задании. Поиски альтернативных JSON парсеров в npm не увенчались успехом.