UNPKG

712 BJavaScriptView Raw
1import {
2 isArray,
3 isObjectLike,
4 isPlainObject,
5 map,
6 transform,
7 set,
8 camelCase,
9} from "lodash";
10
11function createIteratee(converter, self) {
12 return (result, value, key) =>
13 set(result, converter(key), isObjectLike(value) ? self(value) : value);
14}
15
16function createHumps(keyConverter) {
17 return function humps(node) {
18 if (isArray(node)) return map(node, humps);
19 if (isPlainObject(node))
20 return transform(node, createIteratee(keyConverter, humps));
21 return node;
22 };
23}
24
25export const humps = createHumps(camelCase);
26
27/**
28 * camel case key
29 * @param {String} key
30 */
31export const camelCaseKey = key => {
32 return key
33 .split(".")
34 .map(k => camelCase(k))
35 .join(".");
36};