1 | import {
|
2 | isArray,
|
3 | isObjectLike,
|
4 | isPlainObject,
|
5 | map,
|
6 | transform,
|
7 | set,
|
8 | camelCase,
|
9 | } from "lodash";
|
10 |
|
11 | function createIteratee(converter, self) {
|
12 | return (result, value, key) =>
|
13 | set(result, converter(key), isObjectLike(value) ? self(value) : value);
|
14 | }
|
15 |
|
16 | function 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 |
|
25 | export const humps = createHumps(camelCase);
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 | export const camelCaseKey = key => {
|
32 | return key
|
33 | .split(".")
|
34 | .map(k => camelCase(k))
|
35 | .join(".");
|
36 | };
|