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