| 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; |