@dxos/util 0.7.1 → 0.7.2-staging.6d26b2a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1744,6 +1744,46 @@ var Tracer = class {
1744
1744
  };
1745
1745
  var tracer = new Tracer();
1746
1746
 
1747
+ // packages/common/util/src/tree.ts
1748
+ import { truncateKey } from "@dxos/debug";
1749
+ var stringifyTree = (node, ancestors = [], rows = []) => {
1750
+ if (node.children?.length) {
1751
+ node.children.forEach((child, i) => {
1752
+ stringifyTree(child, [
1753
+ ...ancestors,
1754
+ [
1755
+ node,
1756
+ i
1757
+ ]
1758
+ ], rows);
1759
+ });
1760
+ } else {
1761
+ const keyLen = 8;
1762
+ const name = (node2) => truncateKey(node2.id, keyLen);
1763
+ const parts = [];
1764
+ ancestors.forEach(([node2, i], j) => {
1765
+ const first = ancestors.slice(j).every(([_, i2]) => i2 === 0);
1766
+ parts.push(j === 0 ? first ? "\u251C" : " " : "");
1767
+ parts.push(first ? `\u2500(${name(node2)})\u2500` : "".padEnd(keyLen + 4));
1768
+ if (node2.children) {
1769
+ if (first) {
1770
+ parts.push(node2.children.length > 1 ? "\u252C" : "\u2500");
1771
+ } else {
1772
+ const childFirst = ancestors.slice(j + 1).every(([_, i2]) => i2 === 0);
1773
+ if (node2.children.length - 1 === i) {
1774
+ parts.push(childFirst ? "\u2570" : " ");
1775
+ } else {
1776
+ parts.push(childFirst ? "\u251C" : "\u2502");
1777
+ }
1778
+ }
1779
+ }
1780
+ });
1781
+ parts.push(`\u2500(${name(node)})`);
1782
+ rows.push(parts.join(""));
1783
+ }
1784
+ return rows;
1785
+ };
1786
+
1747
1787
  // packages/common/util/src/types.ts
1748
1788
  var isNotFalsy = (value) => !!value;
1749
1789
  var nonNullable = (value) => value !== null && value !== void 0;
@@ -1904,6 +1944,22 @@ var removeUndefinedProperties = (object) => {
1904
1944
  }
1905
1945
  return object;
1906
1946
  };
1947
+
1948
+ // packages/common/util/src/order-keys.ts
1949
+ var orderKeys = (obj, order) => {
1950
+ const ordered = {};
1951
+ for (const key of order) {
1952
+ if (key in obj) {
1953
+ ordered[key] = obj[key];
1954
+ }
1955
+ }
1956
+ for (const key in obj) {
1957
+ if (!(key in ordered)) {
1958
+ ordered[key] = obj[key];
1959
+ }
1960
+ }
1961
+ return ordered;
1962
+ };
1907
1963
  export {
1908
1964
  BitField,
1909
1965
  Callback,
@@ -1983,6 +2039,7 @@ export {
1983
2039
  nonNullable,
1984
2040
  numericalValues,
1985
2041
  omit,
2042
+ orderKeys,
1986
2043
  pick,
1987
2044
  pickBy,
1988
2045
  randomInt,
@@ -1999,6 +2056,7 @@ export {
1999
2056
  safeParseJson,
2000
2057
  setDeep,
2001
2058
  stringToArray,
2059
+ stringifyTree,
2002
2060
  stripUndefinedValues,
2003
2061
  sum,
2004
2062
  throwUnhandledError,