UNPKG

@smontero/ppp-client-api

Version:

Project People & Profile client api

427 lines (354 loc) 12.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _getRandomValues = _interopRequireDefault(require("get-random-values")); var Util = /*#__PURE__*/ function () { function Util() { (0, _classCallCheck2["default"])(this, Util); } (0, _createClass2["default"])(Util, null, [{ key: "isEmptyObj", value: function isEmptyObj(obj) { for (var key in obj) { if (obj.hasOwnProperty(key)) return false; } return true; } }, { key: "_wasFound", value: function _wasFound(str, chars, pos) { var not = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var foundChar = chars.indexOf(str.charAt(pos)) > -1; return foundChar && !not || !foundChar && not; } }, { key: "indexOf", value: function indexOf(str, chars, pos) { var not = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; for (var i = pos; i < str.length; i++) { if (this._wasFound(str, chars, i, not)) { return i; } } return -1; } }, { key: "lastIndexOf", value: function lastIndexOf(str, chars, pos) { var not = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; for (var i = pos; i >= 0; i--) { if (this._wasFound(str, chars, i, not)) { return i; } } return -1; } }, { key: "modifiedProps", value: function modifiedProps(oldObj, newObj, _props) { var mod = {}; var props = _props; props = props || Object.keys(oldObj); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = props[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var prop = _step.value; if (!Util.areEqual(oldObj[prop], newObj[prop])) { mod[prop] = true; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator["return"] != null) { _iterator["return"](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return Util.isEmptyObj(mod) ? null : mod; } }, { key: "toKeyValue", value: function toKeyValue(objs, key, value) { var keyValue = {}; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = objs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var obj = _step2.value; keyValue[obj[key]] = obj[value]; } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { _iterator2["return"](); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return keyValue; } }, { key: "areArraysEqual", value: function areArraysEqual(a1, a2) { return a1.length === a2.length && !a1.some(function (v) { return a2.indexOf(v) < 0; }); } }, { key: "cloneArray", value: function cloneArray(a) { return a.slice(0); } /** * @desc Removes duplicate elements from array */ }, { key: "removeDuplicates", value: function removeDuplicates(values) { values = Array.isArray(values) ? values : [values]; return (0, _toConsumableArray2["default"])(new Set(values)); } }, { key: "areEqual", value: function areEqual(v1, v2) { // Get the value type var type = Object.prototype.toString.call(v1); // If the two objects are not the same type, return false if (type !== Object.prototype.toString.call(v2)) return false; // If items are not an object or array, return false if (['[object Array]', '[object Object]'].indexOf(type) < 0) { return v1 === v2; } // Compare the length of the length of the two items var valueLen = type === '[object Array]' ? v1.length : Object.keys(v1).length; var otherLen = type === '[object Array]' ? v2.length : Object.keys(v2).length; if (valueLen !== otherLen) return false; // Compare two items function compare(item1, item2) { // Get the object type var itemType = Object.prototype.toString.call(item1); // If an object or array, compare recursively if (['[object Array]', '[object Object]'].indexOf(itemType) >= 0) { if (!Util.areEqual(item1, item2)) return false; } // Otherwise, do a simple comparison else { // If the two items are not the same type, return false if (itemType !== Object.prototype.toString.call(item2)) return false; // Else if it's a function, convert to a string and compare // Otherwise, just compare if (itemType === '[object Function]') { if (item1.toString() !== item2.toString()) return false; } else if (item1 !== item2) return false; } return false; } // Compare properties if (type === '[object Array]') { for (var i = 0; i < valueLen; i++) { if (compare(v1[i], v2[i]) === false) return false; } } else { for (var key in v1) { if (v1.hasOwnProperty(key)) { if (compare(v1[key], v2[key]) === false) return false; } } } // If nothing failed, return true return true; } }, { key: "getPropertyValue", value: function getPropertyValue(obj, property) { var typeMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (obj) { obj = obj[property]; } if (typeMode && obj) { obj = obj[Object.keys(obj)[0]]; } return obj; } /** * Gets path in object if it does not exist return value * * @param {object} obj * @param {string} path string path separated by '.' char */ }, { key: "getPath", value: function getPath(obj, path, value) { var typeMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var steps = path.split('.'); var currentObj = obj; var i = 0; while (currentObj && i < steps.length - 1) { currentObj = this.getPropertyValue(currentObj, steps[i], typeMode); i++; } if (!currentObj) { return value; } currentObj = this.getPropertyValue(currentObj, steps[steps.length - 1], typeMode); return typeof currentObj === 'undefined' ? value : currentObj; } }, { key: "removeLeadingZeros", value: function removeLeadingZeros(_value) { var value = _value.toString(); return value.replace(/^0*/, ''); } }, { key: "getValueOfKey", value: function getValueOfKey(key, array) { // recorr array for (var item in array) { if (array[item].value === key) { return array[item].display; } } return null; } }, { key: "isString", value: function isString(value) { return typeof value === 'string' || value instanceof String; } }, { key: "getRandomString", value: function getRandomString(length) { var randomValues = new Uint8Array(length); (0, _getRandomValues["default"])(randomValues); return Array.from(randomValues).map(Util.intToHex).join(''); } }, { key: "intToHex", value: function intToHex(number) { return number.toString(16).padStart(2, '0'); } }, { key: "hydrate", value: function () { var _hydrate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee(objs, keyProp, hydratedProp, hydrateFn) { var keyValues, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, obj, keyValue, keyData, _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, _obj; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: keyValues = []; _iteratorNormalCompletion3 = true; _didIteratorError3 = false; _iteratorError3 = undefined; _context.prev = 4; for (_iterator3 = objs[Symbol.iterator](); !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { obj = _step3.value; keyValue = obj[keyProp]; if (keyValue) keyValues.push(keyValue); } _context.next = 12; break; case 8: _context.prev = 8; _context.t0 = _context["catch"](4); _didIteratorError3 = true; _iteratorError3 = _context.t0; case 12: _context.prev = 12; _context.prev = 13; if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { _iterator3["return"](); } case 15: _context.prev = 15; if (!_didIteratorError3) { _context.next = 18; break; } throw _iteratorError3; case 18: return _context.finish(15); case 19: return _context.finish(12); case 20: keyValues = Util.removeDuplicates(keyValues); if (!(keyValues.length === 0)) { _context.next = 23; break; } return _context.abrupt("return", objs); case 23: _context.next = 25; return hydrateFn(keyValues); case 25: keyData = _context.sent; _iteratorNormalCompletion4 = true; _didIteratorError4 = false; _iteratorError4 = undefined; _context.prev = 29; for (_iterator4 = objs[Symbol.iterator](); !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { _obj = _step4.value; _obj[hydratedProp] = keyData[_obj[keyProp]]; } _context.next = 37; break; case 33: _context.prev = 33; _context.t1 = _context["catch"](29); _didIteratorError4 = true; _iteratorError4 = _context.t1; case 37: _context.prev = 37; _context.prev = 38; if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { _iterator4["return"](); } case 40: _context.prev = 40; if (!_didIteratorError4) { _context.next = 43; break; } throw _iteratorError4; case 43: return _context.finish(40); case 44: return _context.finish(37); case 45: return _context.abrupt("return", objs); case 46: case "end": return _context.stop(); } } }, _callee, null, [[4, 8, 12, 20], [13,, 15, 19], [29, 33, 37, 45], [38,, 40, 44]]); })); function hydrate(_x, _x2, _x3, _x4) { return _hydrate.apply(this, arguments); } return hydrate; }() }]); return Util; }(); var _default = Util; exports["default"] = _default;