UNPKG

@ace-util/core

Version:
85 lines 2.9 kB
"use strict"; 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