self.type_for

in doc-src/templates/api-versions/model_documentor.rb [646:694]


  def self.type_for(rules, options={})
    type = rules['type']
    normalizedType = type

    if type == 'structure'
      if rules['eventstream']
        normalizedType = 'ReadableStream<Events> | Array<Events>'
      else
        normalizedType = 'map'
      end
    elsif type == 'list'
      normalizedType = 'Array'
    elsif type == 'map'
      normalizedType = 'map'
    elsif type == 'string' || type == nil
      normalizedType = 'String'
    elsif type == 'integer'
      normalizedType = 'Integer'
    elsif type == 'long'
      normalizedType = 'Integer'
    elsif type == 'float'
      normalizedType = 'Float'
    elsif type == 'double'
      normalizedType = 'Float'
    elsif type == 'bigdecimal'
      normalizedType = 'Float'
    elsif type == 'boolean'
      normalizedType = 'Boolean'
    elsif type == 'binary' || type == 'blob'
      normalizedType = "Buffer"
      unless rules['eventpayload']
        if !!options[:in_output]
          normalizedType += "(Node.js), Typed Array(Browser)"
        else
          normalizedType += ", Typed Array, Blob, String"
        end
      end
    elsif type == 'timestamp'
      normalizedType = 'Date'
    else
      raise "unhandled type: #{rules['type']}"
    end

    
    normalizedType += ', ReadableStream' if rules['streaming']

    normalizedType
  end