verificator
Version:
Client and server-side validation JavaScript library
57 lines (46 loc) • 1.9 kB
JavaScript
;
exports.__esModule = true;
var _isPlainObject = require('./isPlainObject');
var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var flatten = function flatten(object) {
if (!(0, _isPlainObject2['default'])(object) && !Array.isArray(object)) {
return object;
}
var result = {};
for (var _iterator = Object.keys(object), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var key = _ref;
if ((0, _isPlainObject2['default'])(object[key]) || Array.isArray(object[key])) {
var keys = Object.keys(object[key]);
if (keys.length) {
var flatData = flatten(object[key]);
for (var _iterator2 = Object.keys(flatData), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var kkey = _ref2;
result[key + '.' + kkey] = flatData[kkey];
}
continue;
}
}
result[key] = object[key];
}
return result;
};
exports['default'] = flatten;