@crpt/react-utils
Version:
A useful kit for daily using
28 lines (21 loc) • 732 B
JavaScript
import { get, isEmpty } from 'lodash';
/**
* @param {Object} target
* @param {String|Function} accessor
* @param {*} ...args
*/
var getPropWith = function getPropWith(target, accessor) {
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
var currArgs = isEmpty(args) ? [target] : args;
if (typeof accessor === 'function') {
return accessor.apply(undefined, currArgs);
}
if (typeof accessor === 'string') {
var currAccessor = get(target, accessor);
return typeof currAccessor === 'function' ? currAccessor.apply(undefined, currArgs) : currAccessor;
}
return undefined;
};
export default getPropWith;