UNPKG

verificator

Version:

Client and server-side validation JavaScript library

31 lines (25 loc) 911 B
'use strict'; 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;