export function getProperty()

in packages/rulesets/src/native/utilities/swagger-workspace.ts [51:74]


  export function getProperty(schema: EnhancedSchema, propertyName: string, inventory: ISwaggerInventory): EnhancedSchema | undefined {
    let source = schema
    const visited = new Set<any>()
    while (source.value && source.value.$ref && !visited.has(source.value)) {
      visited.add(source.value)
      source = resolveRef(source, inventory)!
    }
    if (!source || !source.value) {
      return undefined
    }
    const model = source.value
    if (model.properties && model.properties[propertyName]) {
      return resolveRef(createEnhancedSchema(model.properties[propertyName], source.file), inventory!)
    }
    if (model.allOf) {
      for (const element of model.allOf) {
        const property: any = getProperty({ file: source.file, value: element }, propertyName, inventory)
        if (property) {
          return property
        }
      }
    }
    return undefined
  }