@zohodesk/components
Version:
In this Package, we Provide Some Basic Components to Build Web App
76 lines (51 loc) • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.omit = exports.extract = exports.equals = exports.clone = void 0;
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
/*eslint-disable */
var clone = function clone(a, b, c, d, e, f) {
return Object.assign(a, b, c, d, e, f);
};
exports.clone = clone;
var extract = function extract(obj, keys, target) {
target = target || {};
for (var i in obj) {
if (keys.indexOf(i) < 0) continue;
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
target[i] = obj[i];
}
return target;
};
exports.extract = extract;
var omit = function omit(obj, keys, target) {
target = target || {};
for (var i in obj) {
if (keys.indexOf(i) >= 0) continue;
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
target[i] = obj[i];
}
return target;
};
exports.omit = omit;
var equals = function equals(x, y) {
if (x === y) return true; // if both x and y are null or undefined and exactly the same
if (x == null && y != null || x != null && y == null) return false; //break if not same null or undefined
if (!(x instanceof Object) || !(y instanceof Object)) return false; // if they are not strictly equal, they both need to be Objects
if (x.constructor !== y.constructor) return false; // they must have the exact same prototype chain, the closest we can do is
// test there constructor.
for (var p in x) {
if (!x.hasOwnProperty(p)) continue; // other properties were tested using x.constructor === y.constructor
if (!y.hasOwnProperty(p)) return false; // allows to compare x[ p ] and y[ p ] when set to undefined
if (x[p] === y[p]) continue; // if they have the same strict value or identity then they are equal
if (_typeof(x[p]) !== 'object') return false; // Numbers, Strings, Functions, Booleans must be strictly equal
if (!equals(x[p], y[p])) return false; // Objects and Arrays must be tested recursively
}
for (p in y) {
if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) return false; // allows x[ p ] to be set to undefined
}
return true;
};
/*eslint-enable */
exports.equals = equals;