@ace-util/core
Version:
Utils.
85 lines • 2.9 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.pick = exports.omit = exports.hasOwn = exports.def = exports.proxy = exports.noop = void 0;
/**
* Empty function
*/
var noop = function (_) { return _; };
exports.noop = noop;
var sharedPropertyDefinition = {
enumerable: true,
configurable: true,
get: exports.noop,
set: exports.noop,
};
/**
* Proxy to a getter/setter
* @param target target
* @param key key
* @param get get
* @param set set
*/
function proxy(target, key, _a) {
var _b = _a === void 0 ? {} : _a, get = _b.get, set = _b.set;
sharedPropertyDefinition.get = get || exports.noop;
sharedPropertyDefinition.set = set || exports.noop;
Object.defineProperty(target, key, sharedPropertyDefinition);
}
exports.proxy = proxy;
/**
* Alias to Object.defineProperty
*/
function def(obj, key, val, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.enumerable, enumerable = _c === void 0 ? false : _c, _d = _b.writable, writable = _d === void 0 ? true : _d, _e = _b.configurable, configurable = _e === void 0 ? true : _e;
Object.defineProperty(obj, key, {
value: val,
enumerable: enumerable,
writable: writable,
configurable: configurable,
});
}
exports.def = def;
var hasOwnProperty = Object.prototype.hasOwnProperty;
function hasOwn(obj, key) {
return hasOwnProperty.call(obj, key);
}
exports.hasOwn = hasOwn;
function omit(obj) {
var keys = [];
for (var _i = 1; _i < arguments.length; _i++) {
keys[_i - 1] = arguments[_i];
}
var flatKeys = keys.map(function (key) { return (Array.isArray(key) ? key : [key]); }).flat();
if (!flatKeys.length)
return obj;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
var _a = obj, _b = flatKeys.pop(), omitted = _a[_b], rest = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
return omit(rest, flatKeys);
}
exports.omit = omit;
function pick(obj) {
var keys = [];
for (var _i = 1; _i < arguments.length; _i++) {
keys[_i - 1] = arguments[_i];
}
var flatKeys = keys.map(function (key) { return (Array.isArray(key) ? key : [key]); }).flat();
if (!flatKeys.length)
return obj;
return flatKeys.reduce(function (prev, key) {
prev[key] = obj[key];
return prev;
}, {});
}
exports.pick = pick;
//# sourceMappingURL=object.js.map
;