1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4  value: true
5});
6exports.reverseSortString = void 0;
7exports.sortObjWithOrder = sortObjWithOrder;
8exports.sortObject = sortObject;
9exports.sortWithOrder = sortWithOrder;
10function sortObject(obj, compareFn) {
11  return Object.keys(obj).sort(compareFn).reduce((acc, key) => ({
12    ...acc,
13    [key]: obj[key]
14  }), {});
15}
16function sortObjWithOrder(obj, order) {
17  const sorted = sortWithOrder(Object.keys(obj), order);
18  return sorted.reduce((acc, key) => ({
19    ...acc,
20    [key]: obj[key]
21  }), {});
22}
23function sortWithOrder(obj, order) {
24  const groupOrder = [...new Set(order.concat(obj))];
25  const sorted = [];
26  while (groupOrder.length) {
27    const key = groupOrder.shift();
28    const index = obj.indexOf(key);
29    if (index > -1) {
30      const [item] = obj.splice(index, 1);
31      sorted.push(item);
32    }
33  }
34  return sorted;
35}
36const reverseSortString = (a, b) => {
37  if (a < b) return 1;
38  if (a > b) return -1;
39  return 0;
40};
41exports.reverseSortString = reverseSortString;
42//# sourceMappingURL=sortObject.js.map