UNPKG

@enonic/js-utils

Version:
155 lines (154 loc) 5.58 kB
"use strict"; function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else { return left instanceof right; } } function _type_of(obj) { "@swc/helpers - typeof"; return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; } var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = function(target, all) { for(var name in all)__defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = function(to, from, except, desc) { if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") { var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; try { var _loop = function() { var key = _step.value; if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: function() { return from[key]; }, enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); }; for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop(); } catch (err) { _didIteratorError = true; _iteratorError = err; } finally{ try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally{ if (_didIteratorError) { throw _iteratorError; } } } } return to; }; var __toCommonJS = function(mod) { return __copyProps(__defProp({}, "__esModule", { value: true }), mod); }; // array/sortBy.ts var sortBy_exports = {}; __export(sortBy_exports, { sortByProperty: function() { return sortByProperty; } }); module.exports = __toCommonJS(sortBy_exports); // value/isBasicObject.ts var isBasicObject = function(value) { return (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object"; }; // value/isNumber.ts function isNumber(value) { return typeof value === "number" && isFinite(value); } // value/isStringLiteral.ts var isStringLiteral = function(value) { return typeof value === "string"; }; // value/isStringObject.ts var isStringObject = function(value) { return _instanceof(value, String); }; // value/isString.ts var isString = function(value) { return isStringLiteral(value) || isStringObject(value); }; // value/isSymbol.ts var isSymbol = function(value) { return (typeof value === "undefined" ? "undefined" : _type_of(value)) === "symbol"; }; // value/isPropertyKey.ts var isPropertyKey = function(value) { return isString(value) || isNumber(value) || isSymbol(value); }; // value/toStr.ts function toStr(value, replacer) { var space = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 4; return JSON.stringify(value, replacer, space); } // object/hasOwnProperty.ts function hasOwnProperty(obj, propKey) { if (!isBasicObject(obj)) { throw new Error("First parameter to hasOwnProperty must be a basic Object! ".concat(toStr(obj))); } if (!isPropertyKey(propKey)) { throw new Error("Second parameter to hasOwnProperty must be a PropertyKey (string|number|symbol)! ".concat(toStr(propKey))); } return obj.hasOwnProperty(propKey); } // value/isObject.ts var isObject = function(value) { return Object.prototype.toString.call(value).slice(8, -1) === "Object"; }; // array/sortBy.ts function compareNumbers(a, b) { return a - b; } function compareStrings(a, b) { var caseSensitive = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true; if (!caseSensitive) { a = a.toLowerCase(); b = b.toLowerCase(); } if (a < b) { return -1; } if (a > b) { return 1; } return 0; } function sortByProperty(array, propertyName) { var localArray = JSON.parse(JSON.stringify(array)); return localArray.sort(function(a, b) { if (!isObject(a) || !isObject(b)) { throw new TypeError("sortByProperty: a or b not an object! a:".concat(toStr(a), " b:").concat(toStr(b))); } if (!hasOwnProperty(a, propertyName)) { throw new TypeError("sortByProperty: a doesn't have a property named:'".concat(propertyName, "'! a:").concat(toStr(a))); } if (!hasOwnProperty(b, propertyName)) { throw new TypeError("sortByProperty: b doesn't have a property named:'".concat(propertyName, "'! b:").concat(toStr(b))); } var valueA = a[propertyName]; var valueB = b[propertyName]; if (isNumber(valueA) && isNumber(valueB)) { return compareNumbers(valueA, valueB); } if (isString(valueA) && isString(valueB)) { return compareStrings(valueA, valueB); } throw new TypeError("sortByProperty: Value of propertyName:".concat(propertyName, " is neither number nor string! a:").concat(toStr(a), " b:").concat(toStr(b))); }); }