38 lines
948 B
JavaScript
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
|
|
};
|