Project

General

Profile

« Previous | Next » 

Revision 7fabb372

Added by Ondřej Pražák almost 5 years ago

Fixes #27642 - Add helpers for deep keys transforms

View differences:

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