UNPKG

val-path-helper

Version:

val path helper

57 lines (53 loc) 1.43 kB
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