@yookue/ts-lang-utils
Version:
Common lang utilities for typescript
22 lines • 856 B
JavaScript
import _typeof from "@babel/runtime/helpers/esm/typeof";
export function getProp(object, prop, defaultValue) {
var _props$reduce;
if (_typeof(object) !== 'object' || !prop) {
return defaultValue;
}
if (!prop.includes('.')) {
var _object$prop;
return (_object$prop = object[prop]) !== null && _object$prop !== void 0 ? _object$prop : defaultValue;
}
var props = prop.replace(/\[/g, '.').replace(/]/g, '').split('.');
if (!props || !props.length) {
return defaultValue;
}
if (props.length === 1) {
var _object$props$;
return (_object$props$ = object[props[0]]) !== null && _object$props$ !== void 0 ? _object$props$ : defaultValue;
}
return (_props$reduce = props.reduce(function (value, name) {
return (value || {})[name];
}, object)) !== null && _props$reduce !== void 0 ? _props$reduce : defaultValue;
}