mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
* Enable strings category methods tests * Ensure escape, pad, padEnd, padStart, trim, trimEnd, trimStart, unescape return an empty string for falsey values * Coerce value to string using toString in truncate, capitalize and case methods * Ensure createCaseFirst returns an empty string for falsey values
31 lines
762 B
JavaScript
31 lines
762 B
JavaScript
import words from './words.js'
|
|
import toString from './toString.js'
|
|
|
|
/**
|
|
* Converts `string` to
|
|
* [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
|
|
*
|
|
* @since 3.0.0
|
|
* @category String
|
|
* @param {string} [string=''] The string to convert.
|
|
* @returns {string} Returns the kebab cased string.
|
|
* @see camelCase, lowerCase, snakeCase, startCase, upperCase, upperFirst
|
|
* @example
|
|
*
|
|
* kebabCase('Foo Bar')
|
|
* // => 'foo-bar'
|
|
*
|
|
* kebabCase('fooBar')
|
|
* // => 'foo-bar'
|
|
*
|
|
* kebabCase('__FOO_BAR__')
|
|
* // => 'foo-bar'
|
|
*/
|
|
const kebabCase = (string) => (
|
|
words(toString(string).replace(/['\u2019]/g, '')).reduce((result, word, index) => (
|
|
result + (index ? '-' : '') + word.toLowerCase()
|
|
), '')
|
|
)
|
|
|
|
export default kebabCase
|