UNPKG

@yookue/ts-lang-utils

Version:

Common lang utilities for typescript

34 lines 1.09 kB
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; }