Files
Alberto-Audrix 32a36cceff
CI / lint-and-test (push) Canceled after 0s
first commit
2026-07-28 08:55:05 +07:00

38 lines
948 B
JavaScript

/**
* Convert snake_case string to camelCase
* @param {string} str - String in snake_case
* @returns {string} String in camelCase
*/
function snakeToCamel(str) {
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
}
/**
* Convert all keys in an object from snake_case to camelCase
* @param {Object} obj - Object with snake_case keys
* @returns {Object} Object with camelCase keys
*/
function convertKeysToCamelCase(obj) {
if (obj === null || typeof obj !== 'object') {
return obj;
}
if (Array.isArray(obj)) {
return obj.map(item => convertKeysToCamelCase(item));
}
const converted = {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
const camelKey = snakeToCamel(key);
converted[camelKey] = convertKeysToCamelCase(obj[key]);
}
}
return converted;
}
module.exports = {
snakeToCamel,
convertKeysToCamelCase
};