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.
		
		
		
		
		
			
		
			
				
					25 lines
				
				635 B
			
		
		
			
		
	
	
					25 lines
				
				635 B
			| 
											3 years ago
										 | var arrayReduce = require('./_arrayReduce'), | ||
|  |     deburr = require('./deburr'), | ||
|  |     words = require('./words'); | ||
|  | 
 | ||
|  | /** 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, ''); | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = createCompounder; |