in src/lib/util/resolveSwagger.ts [318:340]
private checkCircularAllOf(schema: any, visited: any[] | undefined, referenceChain: string[]) {
visited = visited ? visited : []
referenceChain = referenceChain ? referenceChain : []
if (schema) {
if (visited.includes(schema)) {
throw new Error("Found circular allOf reference: " + referenceChain.join("-> "))
}
if (!schema.allOf) {
return
}
visited.push(schema)
sm.values(schema.allOf)
.filter(s => (s as any).$ref)
.forEach(s => {
const ref = (s as any).$ref
referenceChain.push(ref)
const referredSchema = this.dereference(ref)
this.checkCircularAllOf(referredSchema, visited, referenceChain)
referenceChain.pop()
})
visited.pop()
}
}