"use strict";
const _arrayMap = require("./_arrayMap.js");
const _baseClone = require("./_baseClone.js");
const _baseUnset = require("./_baseUnset.js");
const _castPath = require("./_castPath.js");
const _copyObject = require("./_copyObject.js");
const _customOmitClone = require("./_customOmitClone.js");
const _flatRest = require("./_flatRest.js");
const _getAllKeysIn = require("./_getAllKeysIn.js");
var arrayMap = _arrayMap, baseClone = _baseClone, baseUnset = _baseUnset, castPath = _castPath, copyObject = _copyObject, customOmitClone = _customOmitClone, flatRest = _flatRest, getAllKeysIn = _getAllKeysIn;
var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;
var omit = flatRest(function(object, paths) {
  var result = {};
  if (object == null) {
    return result;
  }
  var isDeep = false;
  paths = arrayMap(paths, function(path) {
    path = castPath(path, object);
    isDeep || (isDeep = path.length > 1);
    return path;
  });
  copyObject(object, getAllKeysIn(object), result);
  if (isDeep) {
    result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
  }
  var length = paths.length;
  while (length--) {
    baseUnset(result, paths[length]);
  }
  return result;
});
var omit_1 = omit;
module.exports = omit_1;
//# sourceMappingURL=omit.js.map
