in generator/processors/helpers.ts [16:35]
export function replaceCyclicRefByName(schema: any, definitionName: string, replacement: any) {
const refVertices: Record<string, Set<string>> = {};
for (const refName in schema.definitions) {
refVertices[refName] = new Set<string>();
transformSchemaRecursively(schema.definitions[refName], val => {
if (val['$ref'] && val['$ref'].startsWith('#/definitions/')) {
refVertices[refName].add(val['$ref'].substring('#/definitions/'.length));
}
return val;
});
}
const parentDefinitions = findCyclicReferencingDefinitions(refVertices, definitionName);
for (const parentDefinition of parentDefinitions) {
replaceRefByName(schema.definitions[parentDefinition], definitionName, replacement);
}
}