keys-converter
Version:
This package provide a util function to convert snake case object keys to camel case
44 lines • 2.11 kB
JavaScript
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
;