verificator
Version:
Client and server-side validation JavaScript library
31 lines (25 loc) • 911 B
JavaScript
;
exports.__esModule = true;
var _constants = require('../constants');
var _isObject = require('./isObject');
var _isObject2 = _interopRequireDefault(_isObject);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var set = function set(object, keyPath, value) {
var path = keyPath.split('.');
var length = path.length;
var lastIndex = length - 1;
var index = -1;
var nested = object;
while (nested != null && ++index < length) {
var key = path[index];
var newValue = value;
if (index !== lastIndex) {
var objValue = nested[key];
newValue = (0, _isObject2['default'])(objValue) ? objValue : _constants.REGEXP_IS_UINT.test(path[index + 1]) ? [] : {};
}
nested[key] = newValue;
nested = nested[key];
}
return object;
};
exports['default'] = set;