function findDependencyCycleRecursive()

in tools/src/cycleCheck.ts [63:82]


function findDependencyCycleRecursive(originalIdentifier: string, identifier: string, root: SchemaRefNode, visited: Set<string>): string[] | undefined {
  const dependencies = root.children[identifier].children;
  for (const dependency of Object.keys(dependencies)) {
    if (visited.has(dependency)) {
      continue;
    }

    if (dependency === originalIdentifier) {
      return [originalIdentifier];
    }

    visited.add(dependency);
    const result = findDependencyCycleRecursive(originalIdentifier, dependency, root, visited);
    if (result) {
      return [dependency, ...result];
    }
  }

  return;
}