const hexList: string[] = []
for (let i = 0; i <= 15; i++) {
  hexList[i] = i.toString(16)
}

/**
 * 生成随机数
 * @param min 最小值
 * @param max 最大值
 * @returns 生成的随机数
 */
export const randomNum = (min: number, max?: number) => {
  let value = 0
  if (max === undefined) {
    value = parseInt((Math.random() * min + 1).toString(), 10)
  } else {
    value = parseInt((Math.random() * (max - min + 1) + min).toString(), 10)
  }
  return value
}

/**
 * 生成全球唯一标识
 * @returns uuid
 */
export const uuid = (): string => {
  let uuid = ''
  for (let i = 1; i <= 36; i++) {
    if (i === 9 || i === 14 || i === 19 || i === 24) {
      uuid += '-'
    } else if (i === 15) {
      uuid += 4
    } else if (i === 20) {
      uuid += hexList[(Math.random() * 4) | 8]
    } else {
      uuid += hexList[(Math.random() * 16) | 0]
    }
  }
  return uuid
}
