mirror of
https://github.com/SyncrowIOT/backend.git
synced 2026-10-25 11:17:55 +00:00
17 lines
480 B
TypeScript
17 lines
480 B
TypeScript
function toSnakeCase(str) {
|
|
return str.replace(/([A-Z])/g, '_$1').toLowerCase();
|
|
}
|
|
|
|
export function convertKeysToSnakeCase(obj) {
|
|
if (Array.isArray(obj)) {
|
|
return obj.map((v) => convertKeysToSnakeCase(v));
|
|
} else if (obj !== null && obj.constructor === Object) {
|
|
return Object.keys(obj).reduce((result, key) => {
|
|
const snakeKey = toSnakeCase(key);
|
|
result[snakeKey] = convertKeysToSnakeCase(obj[key]);
|
|
return result;
|
|
}, {});
|
|
}
|
|
return obj;
|
|
}
|