in packages/azure-openapi-validator/core/src/utils.ts [58:81]
export function traverse(obj: unknown, path: string[], visited: Set<any>, options: any, visitor: (obj:any, path:string[], context:any) => boolean) {
if (!obj) {
return
}
if (visited.has(obj)) {
return
}
visited.add(obj)
if (visitor(obj, path, options) === false) {
return
}
if (Array.isArray(obj)) {
for (const [index, item] of obj.entries()) {
traverse(item, [...path, index.toString()], visited, options, visitor)
}
} else if (typeof obj === "object") {
for (const [key, item] of Object.entries(obj)) {
traverse(item, [...path, key], visited, options, visitor)
}
}
return
}