camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
26 lines (25 loc) • 850 B
JavaScript
import { camelCase, snakeCase, isPlainObject, mapKeys, mapValues } from 'lodash';
export const toCamelCase = (o) => mapKeys(o, camelCaseKey);
export const toCamelCaseDeep = (o) => {
return mapKeysDeep(o, camelCaseKey);
};
export const toSnakeCase = (o) => mapKeys(o, snakeCaseKey);
export const toSnakeCaseDeep = (o) => {
return mapKeysDeep(o, snakeCaseKey);
};
const camelCaseKey = (_, key) => camelCase(key);
const snakeCaseKey = (_, key) => snakeCase(key);
const mapKeysDeep = (obj, cb) => {
if (Array.isArray(obj)) {
return obj.map((item) => {
return mapKeysDeep(item, cb);
});
}
if (typeof obj !== 'object' || isPlainObject(obj) === false) {
return obj;
}
const result = mapKeys(obj, cb);
return mapValues(result, (value) => {
return mapKeysDeep(value, cb);
});
};