UNPKG

keys-converter

Version:

This package provide a util function to convert snake case object keys to camel case

44 lines 2.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.findRangesForSensitiveCase = void 0; const get_case_range_1 = __importDefault(require("./get_case_range")); const is_all_lower_case_1 = __importDefault(require("./is_all_lower_case")); const is_all_upper_case_1 = __importDefault(require("./is_all_upper_case")); const is_last_char_underscore_1 = __importDefault(require("./is_last_char_underscore")); const is_last_char_upper_1 = __importDefault(require("./is_last_char_upper")); const is_only_alpha_upper_and_underscore_1 = __importDefault(require("./is_only_alpha_upper_and_underscore")); const remove_last_char_if_underscore_1 = __importDefault(require("./remove_last_char_if_underscore")); const transform_last_char_to_lower_1 = __importDefault(require("./transform_last_char_to_lower")); const findRangesForSensitiveCase = (str) => { const ranges = []; let strCopy = str; if (is_all_upper_case_1.default(str)) { return [str.toLowerCase()]; } if (is_all_lower_case_1.default(str)) { return [str.toLowerCase()]; } if (is_only_alpha_upper_and_underscore_1.default(str)) { strCopy = str.toLowerCase(); } let hasFinalUnderscoreValue = is_last_char_underscore_1.default(strCopy); if (is_last_char_upper_1.default(str)) { strCopy = transform_last_char_to_lower_1.default(strCopy); } while (hasFinalUnderscoreValue) { strCopy = remove_last_char_if_underscore_1.default(strCopy); hasFinalUnderscoreValue = is_last_char_underscore_1.default(strCopy); } while (strCopy.length > 1) { let range = get_case_range_1.default(strCopy); strCopy = strCopy.slice(0, strCopy.length - range.length); ranges.push(range); } return ranges.reverse(); }; exports.findRangesForSensitiveCase = findRangesForSensitiveCase; exports.default = findRangesForSensitiveCase; //# sourceMappingURL=find_range_for_sensitive_case.js.map