UNPKG

camstreamerlib

Version:

Helper library for CamStreamer ACAP applications.

26 lines (25 loc) 850 B
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); }); };