UNPKG

keys-converter

Version:

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

65 lines 2.44 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.objectKeysToCamelCase = void 0; const is_camel_case_1 = __importDefault(require("./is_camel_case")); const is_valid_camel_case_1 = __importDefault(require("./is_valid_camel_case")); /** * @deprecated use import objectKeysToCamelCaseV2 */ const objectKeysToCamelCase = function (obj) { let index = 0; let result = {}; const keys = Object.keys(obj); if (keys.length < 1) { return {}; } const value = Object.values(obj); if (value.length < 1) { return {}; } while (index < keys.length) { const chars = keys[index].split(''); let camelCaseKey = ''; if (chars[chars.length - 1] === '_') { chars.pop(); chars.map((char) => { camelCaseKey += char; }); } if (is_valid_camel_case_1.default(keys[index])) { camelCaseKey = keys[index]; } else { if (!is_valid_camel_case_1.default(camelCaseKey)) { camelCaseKey = ''; for (let pos = 0; pos < chars.length; pos++) { chars[pos] = chars[pos].toLowerCase(); if (chars[pos] === '_' && pos > 1 && pos < (chars.length - 1)) { let next = pos + 1; if (chars[next] === '_') { chars.splice(next, 1); } chars[next] = chars[next].toUpperCase(); chars.splice(pos, 1); if (is_camel_case_1.default(chars[next])) { chars[next] = chars[next].toLowerCase(); } } camelCaseKey += chars[pos]; } if (camelCaseKey[camelCaseKey.length - 1] === '_') { camelCaseKey = camelCaseKey .slice(0, camelCaseKey.length - 1); } } } result = Object.assign(result, { [camelCaseKey]: value[index] }); index++; } return result; }; exports.objectKeysToCamelCase = objectKeysToCamelCase; exports.default = objectKeysToCamelCase; //# sourceMappingURL=to_camel_case.js.map