camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
33 lines (32 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toSnakeCaseDeep = exports.toSnakeCase = exports.toCamelCaseDeep = exports.toCamelCase = void 0;
const lodash_1 = require("lodash");
const toCamelCase = (o) => (0, lodash_1.mapKeys)(o, camelCaseKey);
exports.toCamelCase = toCamelCase;
const toCamelCaseDeep = (o) => {
return mapKeysDeep(o, camelCaseKey);
};
exports.toCamelCaseDeep = toCamelCaseDeep;
const toSnakeCase = (o) => (0, lodash_1.mapKeys)(o, snakeCaseKey);
exports.toSnakeCase = toSnakeCase;
const toSnakeCaseDeep = (o) => {
return mapKeysDeep(o, snakeCaseKey);
};
exports.toSnakeCaseDeep = toSnakeCaseDeep;
const camelCaseKey = (_, key) => (0, lodash_1.camelCase)(key);
const snakeCaseKey = (_, key) => (0, lodash_1.snakeCase)(key);
const mapKeysDeep = (obj, cb) => {
if (Array.isArray(obj)) {
return obj.map((item) => {
return mapKeysDeep(item, cb);
});
}
if (typeof obj !== 'object' || (0, lodash_1.isPlainObject)(obj) === false) {
return obj;
}
const result = (0, lodash_1.mapKeys)(obj, cb);
return (0, lodash_1.mapValues)(result, (value) => {
return mapKeysDeep(value, cb);
});
};