@yookue/ts-lang-utils
Version:
Common lang utilities for typescript
34 lines • 1.09 kB
JavaScript
import _typeof from "@babel/runtime/helpers/esm/typeof";
var findPropIgnoreCase = function findPropIgnoreCase(object, propName) {
if (_typeof(object) !== 'object' || !object) {
return undefined;
}
return Object.keys(object).find(function (key) {
return key.toLowerCase() === propName.toLowerCase();
});
};
export function getPropIgnoreCase(object, prop, defaultValue) {
if (_typeof(object) !== 'object' || !prop) {
return defaultValue;
}
if (!prop.includes('.')) {
var actualProp = findPropIgnoreCase(object, prop);
return actualProp !== undefined ? object[actualProp] : defaultValue;
}
var props = prop.replace(/\[/g, '.').replace(/]/g, '').split('.');
if (!props || !props.length) {
return defaultValue;
}
var result = object;
for (var i = 0; i < props.length; i++) {
if (_typeof(result) !== 'object' || !result) {
return defaultValue;
}
var _actualProp = findPropIgnoreCase(result, props[i]);
if (_actualProp === undefined) {
return defaultValue;
}
result = result[_actualProp];
}
return result;
}