val-path-helper
Version:
val path helper
57 lines (53 loc) • 1.43 kB
JavaScript
var getPropByPath = function getPropByPath(obj, path, defaultVal) {
var _tempObj$keyArr$i;
if (!obj || typeof obj !== 'object') {
return {
v: defaultVal
};
}
if (typeof path !== 'string' || !path) {
return {
v: defaultVal
};
}
var tempObj = obj;
var keyArr = path.replace(/\[/g, '.').replace(/\]/g, '').split('.').filter(Boolean);
var i = 0;
for (var len = keyArr.length; i < len - 1; ++i) {
var key = keyArr[i];
if (key in tempObj) {
tempObj = tempObj[key];
} else {
return {
v: defaultVal
};
}
}
return {
o: tempObj,
k: keyArr[i],
v: (_tempObj$keyArr$i = tempObj[keyArr[i]]) != null ? _tempObj$keyArr$i : defaultVal
};
};
var isObj = function isObj(val) {
return Object.prototype.toString.call(val) === '[object Object]';
};
var convertImmutabilityByPath = function convertImmutabilityByPath(path, value) {
if (typeof path !== 'string' || !path) {
return {};
}
if (!value || !isObj(value)) {
return {};
}
var keys = path.replace(/\[/g, '.').replace(/\]/g, '').split('.').filter(Boolean);
var result = {};
var current = result;
var len = keys.length;
keys.forEach(function (key, index) {
current[key] = index === len - 1 ? value : {};
current = current[key];
});
return result;
};
export { convertImmutabilityByPath, getPropByPath };
//# sourceMappingURL=val-path-helper.esm.js.map