@newdash/newdash
Version:
javascript/typescript utility library
34 lines (33 loc) • 1.16 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const castSlice_1 = __importDefault(require("./castSlice"));
const hasUnicode_1 = __importDefault(require("./hasUnicode"));
const stringToArray_1 = __importDefault(require("./stringToArray"));
/**
* 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 (string) => {
if (!string) {
return '';
}
const strSymbols = (0, hasUnicode_1.default)(string)
? (0, stringToArray_1.default)(string)
: undefined;
const chr = strSymbols
? strSymbols[0]
: string[0];
const trailing = strSymbols
? (0, castSlice_1.default)(strSymbols, 1).join('')
: string.slice(1);
return chr[methodName]() + trailing;
};
}
exports.default = createCaseFirst;