This repository has been archived on 2024-02-08. You can view files and clone it, but cannot push or open issues or pull requests.
frontend/src/helpers/case.js

44 lines
945 B
JavaScript

import {camelCase} from 'camel-case'
import {snakeCase} from 'snake-case'
/**
* Transforms field names to camel case.
* @param object
* @returns {*}
*/
export function objectToCamelCase(object) {
let parsedObject = {}
for (const m in object) {
parsedObject[camelCase(m)] = object[m]
// Call it again for nested objects
if(
typeof object[m] === 'object' &&
object[m] !== null
) {
object[m] = objectToCamelCase(object[m])
}
}
return parsedObject
}
/**
* Transforms field names to snake case - used before making an api request.
* @param object
* @returns {*}
*/
export function objectToSnakeCase(object) {
let parsedObject = {}
for (const m in object) {
parsedObject[snakeCase(m)] = object[m]
// Call it again for nested objects
if(
typeof object[m] === 'object' &&
object[m] !== null &&
!(object[m] instanceof Date)
) {
object[m] = objectToSnakeCase(object[m])
}
}
return parsedObject
}