| var castSlice = require('./_castSlice'), | |
|     hasUnicode = require('./_hasUnicode'), | |
|     stringToArray = require('./_stringToArray'), | |
|     toString = require('./toString'); | |
| 
 | |
| /** | |
|  * Creates a function like `_.lowerFirst`. | |
|  * | |
|  * @private | |
|  * @param {string} methodName The name of the `String` case method to use. | |
|  * @returns {Function} Returns the new case function. | |
|  */ | |
| function createCaseFirst(methodName) { | |
|   return function(string) { | |
|     string = toString(string); | |
| 
 | |
|     var strSymbols = hasUnicode(string) | |
|       ? stringToArray(string) | |
|       : undefined; | |
| 
 | |
|     var chr = strSymbols | |
|       ? strSymbols[0] | |
|       : string.charAt(0); | |
| 
 | |
|     var trailing = strSymbols | |
|       ? castSlice(strSymbols, 1).join('') | |
|       : string.slice(1); | |
| 
 | |
|     return chr[methodName]() + trailing; | |
|   }; | |
| } | |
| 
 | |
| module.exports = createCaseFirst;
 |