Sobes.tech
Назад к задачам
Junior — Senior
24

Определение наличия циклических зависимостей в графе файлов

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Реализуйте функцию hasCircularDependency, которая проверяет, присутствует ли цикл в графе зависимостей между файлами.

type Resource = string;
type Vector = Record<Resource, Resource[]>;

function hasCircularDependency(entrypoint: Resource, deps: Vector): boolean {
  // ваш код тут
}

// пример
console.warn(hasCircularDependency('index.js', {
  'index.js': ['foo.js', 'bar.js'],
  'bar.js': ['baz.js'],
  'foo.js': ['baz.js'],
  'baz.js': ['x.js'],
  'x.js': ['foo.js'] // цикл: index → foo → baz → x → foo
})); // true