string/kebabCase.jsjavascript
/**
 * 将字符串转换为短横线命名。
 * @function kebabCase
 * @memberof module:string
 * @param {string} value 原字符串
 * @returns {string} kebab-case 字符串
 * @throws {TypeError} 参数不是字符串时抛出
 */
function kebabCase(value) {
  if (typeof value !== 'string') throw new TypeError('value must be a string')
  return value.trim().replace(/([a-z\d])([A-Z])/g, '$1-$2').split(/[\s_\-]+/).filter(Boolean).map(word => word.toLowerCase()).join('-')
}

export default kebabCase