Управление зависимостями - это очень важная задача при разработке программного обеспечения. Обычно в приложениях задействовано множество сторонних компонентов, которые, в свою очередь, тоже могут полагаться на сторонние компоненты. Одной из задач менеджера зависимостей является подключение зависимостей в правильном порядке. Библиотеки, от которых зависят другие, должны подключаться раньше. Определение этой последовательности сводится к задаче сортировки графа.
sortDeps.js
Реализуйте и экспортируйте по умолчанию функцию, которая принимает на вход список зависимостей и возвращает список (массив) отсортированных узлов.
Примеры
const deps1 = {
mongo: [],
tzinfo: ['thread_safe'],
uglifier: ['execjs'],
execjs: ['thread_safe', 'json'],
redis: [],
};
console.log(sortDeps(deps1));
// => ['mongo', 'thread_safe', 'tzinfo', 'json', 'execjs', 'uglifier', 'redis'];
Независимые библиотеки и цепочки библиотек должны быть в порядке, соответствующему порядку элементов в графе зависимостей.
Подсказки
- Об алгоритме: топологическая сортировка
Для полного доступа к испытанию нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.