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