UNPKG

saij

Version:
111 lines (89 loc) 7.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.clear = clear; exports.getValues = getValues; exports.isEmpty = isEmpty; exports.assign = void 0; /** * @module saij/core/utils/object */ /* eslint guard-for-in: 0 */ /* eslint no-unused-vars: 0 */ /** * Polyfill for Object.assign(). Assigns enumerable and own properties from * one or more source objects to a target object. * See https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign. * * @param {!Object} target The target object. * @param {...Object} var_sources The source object(s). * @return {!Object} The modified target object. */ /* istanbul ignore next */ const assign = typeof Object.assign === 'function' ? /* istanbul ignore next */ Object.assign : /* istanbul ignore next */ function (target, var_sources) { /* istanbul ignore next */ if (target === undefined || target === null) { throw new TypeError('Cannot convert undefined or null to object'); } /* istanbul ignore next */ const output = Object(target); /* istanbul ignore next */ for (let i = 1, ii = arguments.length; i < ii; i += 1) { // eslint-disable-next-line const source = arguments[i]; /* istanbul ignore next */ if (source !== undefined && source !== null) { /* istanbul ignore next */ for (const key in source) { /* istanbul ignore next */ if (source.hasOwnProperty(key)) { /* istanbul ignore next */ output[key] = source[key]; } } } } /* istanbul ignore next */ return output; }; /** * Removes all properties from an object. * @param {Object} object The object to clear. */ exports.assign = assign; function clear(object) { for (const property in object) { Reflect.deleteProperty(object, property); } } /** * Get an array of property values from an object. * @param {Object<K,V>} object The object from which to get the values. * @return {!Array<V>} The property values. * @template K,V */ function getValues(object) { const values = []; for (const property in object) { values.push(object[property]); } return values; } /** * Determine if an object has any properties. * @param {Object} object The object to check. * @return {boolean} The object is empty. */ function isEmpty(object) { let property = false; for (property in object) { return false; } return !property; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zYWlqL2NvcmUvdXRpbHMvb2JqZWN0LmpzIl0sIm5hbWVzIjpbImFzc2lnbiIsIk9iamVjdCIsInRhcmdldCIsInZhcl9zb3VyY2VzIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwib3V0cHV0IiwiaSIsImlpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJjbGVhciIsIm9iamVjdCIsInByb3BlcnR5IiwiUmVmbGVjdCIsImRlbGV0ZVByb3BlcnR5IiwiZ2V0VmFsdWVzIiwidmFsdWVzIiwicHVzaCIsImlzRW1wdHkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7OztBQUlBOztBQUNBOztBQUdBOzs7Ozs7Ozs7O0FBU0E7QUFDTyxNQUFNQSxNQUFNLEdBQUksT0FBT0MsTUFBTSxDQUFDRCxNQUFkLEtBQXlCLFVBQTFCO0FBQ3BCO0FBQ0VDLE1BQU0sQ0FBQ0QsTUFGVztBQUVGO0FBQTJCLFVBQVNFLE1BQVQsRUFBaUJDLFdBQWpCLEVBQThCO0FBQ3pFO0FBQ0EsTUFBSUQsTUFBTSxLQUFLRSxTQUFYLElBQXdCRixNQUFNLEtBQUssSUFBdkMsRUFBNkM7QUFDM0MsVUFBTSxJQUFJRyxTQUFKLENBQWMsNENBQWQsQ0FBTjtBQUNEO0FBQ0Q7OztBQUNBLFFBQU1DLE1BQU0sR0FBR0wsTUFBTSxDQUFDQyxNQUFELENBQXJCO0FBQ0E7O0FBQ0EsT0FBSyxJQUFJSyxDQUFDLEdBQUcsQ0FBUixFQUFXQyxFQUFFLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBL0IsRUFBdUNILENBQUMsR0FBR0MsRUFBM0MsRUFBK0NELENBQUMsSUFBSSxDQUFwRCxFQUF1RDtBQUNyRDtBQUNBLFVBQU1JLE1BQU0sR0FBR0YsU0FBUyxDQUFDRixDQUFELENBQXhCO0FBQ0E7O0FBQ0EsUUFBSUksTUFBTSxLQUFLUCxTQUFYLElBQXdCTyxNQUFNLEtBQUssSUFBdkMsRUFBNkM7QUFDM0M7QUFDQSxXQUFLLE1BQU1DLEdBQVgsSUFBa0JELE1BQWxCLEVBQTBCO0FBQ3hCO0FBQ0EsWUFBSUEsTUFBTSxDQUFDRSxjQUFQLENBQXNCRCxHQUF0QixDQUFKLEVBQWdDO0FBQzlCO0FBQ0FOLFVBQUFBLE1BQU0sQ0FBQ00sR0FBRCxDQUFOLEdBQWNELE1BQU0sQ0FBQ0MsR0FBRCxDQUFwQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGO0FBQ0Q7OztBQUNBLFNBQU9OLE1BQVA7QUFDRCxDQTNCSTtBQThCUDs7Ozs7OztBQUlPLFNBQVNRLEtBQVQsQ0FBZUMsTUFBZixFQUF1QjtBQUM1QixPQUFLLE1BQU1DLFFBQVgsSUFBdUJELE1BQXZCLEVBQStCO0FBQzdCRSxJQUFBQSxPQUFPLENBQUNDLGNBQVIsQ0FBdUJILE1BQXZCLEVBQStCQyxRQUEvQjtBQUNEO0FBQ0Y7QUFHRDs7Ozs7Ozs7QUFNTyxTQUFTRyxTQUFULENBQW1CSixNQUFuQixFQUEyQjtBQUNoQyxRQUFNSyxNQUFNLEdBQUcsRUFBZjs7QUFDQSxPQUFLLE1BQU1KLFFBQVgsSUFBdUJELE1BQXZCLEVBQStCO0FBQzdCSyxJQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWU4sTUFBTSxDQUFDQyxRQUFELENBQWxCO0FBQ0Q7O0FBQ0QsU0FBT0ksTUFBUDtBQUNEO0FBR0Q7Ozs7Ozs7QUFLTyxTQUFTRSxPQUFULENBQWlCUCxNQUFqQixFQUF5QjtBQUM5QixNQUFJQyxRQUFRLEdBQUcsS0FBZjs7QUFDQSxPQUFLQSxRQUFMLElBQWlCRCxNQUFqQixFQUF5QjtBQUN2QixXQUFPLEtBQVA7QUFDRDs7QUFDRCxTQUFPLENBQUNDLFFBQVI7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBzYWlqL2NvcmUvdXRpbHMvb2JqZWN0XG4gKi9cblxuLyogZXNsaW50IGd1YXJkLWZvci1pbjogMCAqL1xuLyogZXNsaW50IG5vLXVudXNlZC12YXJzOiAwICovXG5cblxuLyoqXG4gKiBQb2x5ZmlsbCBmb3IgT2JqZWN0LmFzc2lnbigpLiAgQXNzaWducyBlbnVtZXJhYmxlIGFuZCBvd24gcHJvcGVydGllcyBmcm9tXG4gKiBvbmUgb3IgbW9yZSBzb3VyY2Ugb2JqZWN0cyB0byBhIHRhcmdldCBvYmplY3QuXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2Fzc2lnbi5cbiAqXG4gKiBAcGFyYW0geyFPYmplY3R9IHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSB2YXJfc291cmNlcyBUaGUgc291cmNlIG9iamVjdChzKS5cbiAqIEByZXR1cm4geyFPYmplY3R9IFRoZSBtb2RpZmllZCB0YXJnZXQgb2JqZWN0LlxuICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGNvbnN0IGFzc2lnbiA9ICh0eXBlb2YgT2JqZWN0LmFzc2lnbiA9PT0gJ2Z1bmN0aW9uJylcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgPyBPYmplY3QuYXNzaWduIDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24odGFyZ2V0LCB2YXJfc291cmNlcykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkIHx8IHRhcmdldCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Jyk7XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgY29uc3Qgb3V0cHV0ID0gT2JqZWN0KHRhcmdldCk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBmb3IgKGxldCBpID0gMSwgaWkgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWk7IGkgKz0gMSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICBjb25zdCBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkICYmIHNvdXJjZSAhPT0gbnVsbCkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfTtcblxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIHByb3BlcnRpZXMgZnJvbSBhbiBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xlYXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhcihvYmplY3QpIHtcbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBvYmplY3QpIHtcbiAgICBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgcHJvcGVydHkpO1xuICB9XG59XG5cblxuLyoqXG4gKiBHZXQgYW4gYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzIGZyb20gYW4gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3Q8SyxWPn0gb2JqZWN0IFRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBnZXQgdGhlIHZhbHVlcy5cbiAqIEByZXR1cm4geyFBcnJheTxWPn0gVGhlIHByb3BlcnR5IHZhbHVlcy5cbiAqIEB0ZW1wbGF0ZSBLLFZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlcyhvYmplY3QpIHtcbiAgY29uc3QgdmFsdWVzID0gW107XG4gIGZvciAoY29uc3QgcHJvcGVydHkgaW4gb2JqZWN0KSB7XG4gICAgdmFsdWVzLnB1c2gob2JqZWN0W3Byb3BlcnR5XSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlcztcbn1cblxuXG4vKipcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaGFzIGFueSBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVGhlIG9iamVjdCBpcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkob2JqZWN0KSB7XG4gIGxldCBwcm9wZXJ0eSA9IGZhbHNlO1xuICBmb3IgKHByb3BlcnR5IGluIG9iamVjdCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gIXByb3BlcnR5O1xufVxuIl19