1082815dcSEvan Bacon"use strict"; 2082815dcSEvan Bacon 3082815dcSEvan BaconObject.defineProperty(exports, "__esModule", { 4082815dcSEvan Bacon value: true 5082815dcSEvan Bacon}); 6082815dcSEvan Baconexports.reverseSortString = void 0; 7082815dcSEvan Baconexports.sortObjWithOrder = sortObjWithOrder; 8082815dcSEvan Baconexports.sortObject = sortObject; 9082815dcSEvan Baconexports.sortWithOrder = sortWithOrder; 10082815dcSEvan Baconfunction sortObject(obj, compareFn) { 11*ee216927STomasz Sapeta return Object.keys(obj).sort(compareFn).reduce((acc, key) => ({ 12*ee216927STomasz Sapeta ...acc, 13082815dcSEvan Bacon [key]: obj[key] 14082815dcSEvan Bacon }), {}); 15082815dcSEvan Bacon} 16082815dcSEvan Baconfunction sortObjWithOrder(obj, order) { 17082815dcSEvan Bacon const sorted = sortWithOrder(Object.keys(obj), order); 18*ee216927STomasz Sapeta return sorted.reduce((acc, key) => ({ 19*ee216927STomasz Sapeta ...acc, 20082815dcSEvan Bacon [key]: obj[key] 21082815dcSEvan Bacon }), {}); 22082815dcSEvan Bacon} 23082815dcSEvan Baconfunction sortWithOrder(obj, order) { 24082815dcSEvan Bacon const groupOrder = [...new Set(order.concat(obj))]; 25082815dcSEvan Bacon const sorted = []; 26082815dcSEvan Bacon while (groupOrder.length) { 27082815dcSEvan Bacon const key = groupOrder.shift(); 28082815dcSEvan Bacon const index = obj.indexOf(key); 29082815dcSEvan Bacon if (index > -1) { 30082815dcSEvan Bacon const [item] = obj.splice(index, 1); 31082815dcSEvan Bacon sorted.push(item); 32082815dcSEvan Bacon } 33082815dcSEvan Bacon } 34082815dcSEvan Bacon return sorted; 35082815dcSEvan Bacon} 36082815dcSEvan Baconconst reverseSortString = (a, b) => { 37082815dcSEvan Bacon if (a < b) return 1; 38082815dcSEvan Bacon if (a > b) return -1; 39082815dcSEvan Bacon return 0; 40082815dcSEvan Bacon}; 41082815dcSEvan Baconexports.reverseSortString = reverseSortString; 42082815dcSEvan Bacon//# sourceMappingURL=sortObject.js.map