You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
633 B
24 lines
633 B
import arrayReduce from './_arrayReduce.js'; |
|
import deburr from './deburr.js'; |
|
import words from './words.js'; |
|
|
|
/** Used to compose unicode capture groups. */ |
|
var rsApos = "['\u2019]"; |
|
|
|
/** Used to match apostrophes. */ |
|
var reApos = RegExp(rsApos, 'g'); |
|
|
|
/** |
|
* Creates a function like `_.camelCase`. |
|
* |
|
* @private |
|
* @param {Function} callback The function to combine each word. |
|
* @returns {Function} Returns the new compounder function. |
|
*/ |
|
function createCompounder(callback) { |
|
return function(string) { |
|
return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); |
|
}; |
|
} |
|
|
|
export default createCompounder;
|
|
|