private dereferenceInner()

in src/lib/util/resolveSwagger.ts [354:375]


  private dereferenceInner(ref: string, visitedRefs: Set<string>): any {
    const model = this.getModelName(ref)
    if (model) {
      if (visitedRefs.has(ref)) {
        throw new Error("Circular reference")
      }
      if (visitedRefs.size > 40) {
        throw new Error("Exceeded max(40) reference count.")
      }
      visitedRefs.add(ref)
      const definitions = (this.innerSwagger as any).definitions
      if (definitions[model]) {
        if (definitions[model].$ref) {
          return this.dereferenceInner(definitions[model].$ref, visitedRefs)
        } else {
          return definitions[model]
        }
      } else {
        throw new Error("Invalid reference:" + ref)
      }
    }
  }