base-repository
Version:
[](https://travis-ci.org/joehua87/base-repository)
53 lines (43 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
exports.default = nestOmit;
var _lodash = require('lodash');
function nestOmit(obj /*:Object | Array*/, omitKeys /*:Array<string>*/) {
if (Array.isArray(obj)) {
return nestOmit({ obj: obj }, omitKeys).obj;
}
var result = Object.assign({}, obj);
var keys = Object.keys(result);
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var key = _step.value;
if (Array.isArray(result[key])) {
result[key] = result[key].map(function (item) {
return nestOmit(item, omitKeys);
});
} else if (_typeof(result[key]) === 'object') {
result[key] = nestOmit(result[key], omitKeys);
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return (0, _lodash.omit)(result, omitKeys);
}