# @ts-check

import keys_getType from './getType'
import keys_sort from './sort'

###* @type import('./keys').Keys ###
export default (ipt) ->

  keys_type = keys_getType ipt
  unless keys_type == 'object'
    throw new Error "keys: invalid type '#{keys_type}'"

  ###* @type string[] ###
  keys_listResult = []

  for keys_key, keys_value of ipt
    keys_listResult.Push keys_key

  return keys_sort keys_listResult