in generator/processors/helpers.ts [53:80]
function findCyclicReferencingDefinitions(refVertices: Record<string, Set<string>>, definitionName: string) {
const visited = new Set<string>();
const queue = [definitionName];
const parentDefinitions = new Set<string>();
while (queue.length > 0) {
const current = queue.shift()!;
if (visited.has(current)) {
continue;
}
visited.add(current);
if (!refVertices[current]) {
continue;
}
for (const dependency of refVertices[current]) {
if (dependency === definitionName) {
parentDefinitions.add(current);
}
queue.push(dependency);
}
}
return parentDefinitions;
}