Revision 7fabb372
Added by Ondřej Pražák almost 5 years ago
webpack/assets/javascripts/react_app/common/helpers.js | ||
---|---|---|
}, {});
|
||
};
|
||
|
||
/**
|
||
* Transform object keys to camel case, works for nested objects
|
||
*/
|
||
export const deepPropsToCamelCase = obj =>
|
||
deepPropsToCase(camelCase, 'propsToCamelCase only takes objects')(obj);
|
||
|
||
/**
|
||
* Transform object keys to snake case, works for nested objects
|
||
*/
|
||
export const deepPropsToSnakeCase = obj =>
|
||
deepPropsToCase(snakeCase, 'propsToSnakeCase only takes objects')(obj);
|
||
|
||
const deepPropsToCase = (casingFn, errorMsg) => obj => {
|
||
if (typeof obj !== 'object' || obj === null) {
|
||
return obj;
|
||
}
|
||
if (Array.isArray(obj)) {
|
||
return obj.map(deepPropsToCase(casingFn, errorMsg));
|
||
}
|
||
const transformed = propsToCase(casingFn, errorMsg, obj);
|
||
return Object.keys(transformed).reduce((memo, key) => {
|
||
memo[key] = deepPropsToCase(casingFn, errorMsg)(transformed[key]);
|
||
return memo;
|
||
}, {});
|
||
};
|
||
|
||
/**
|
||
* Check if a string is a positive integer
|
||
* @param {String} value - the string
|
||
... | ... | |
translateArray,
|
||
propsToCamelCase,
|
||
propsToSnakeCase,
|
||
deepPropsToCamelCase,
|
||
deepPropsToSnakeCase,
|
||
stringIsPositiveNumber,
|
||
};
|
Also available in: Unified diff
Fixes #27642 - Add helpers for deep keys transforms