@dxos/util 0.7.1 → 0.7.2-main.f1adc9f
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.
- package/dist/lib/browser/index.mjs +63 -0
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +62 -0
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +63 -0
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/order-keys.d.ts +2 -0
- package/dist/types/src/order-keys.d.ts.map +1 -0
- package/dist/types/src/tree.d.ts +10 -0
- package/dist/types/src/tree.d.ts.map +1 -0
- package/dist/types/src/tree.test.d.ts +2 -0
- package/dist/types/src/tree.test.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +4 -0
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +2 -0
- package/src/order-keys.ts +18 -0
- package/src/tree.test.ts +49 -0
- package/src/tree.ts +61 -0
- package/src/types.ts +11 -0
|
@@ -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;
|
|
@@ -1769,6 +1809,10 @@ var stripUndefinedValues = (obj) => {
|
|
|
1769
1809
|
}
|
|
1770
1810
|
return obj;
|
|
1771
1811
|
};
|
|
1812
|
+
var sortKeys = (obj) => Object.keys(obj).sort().reduce((sorted, key) => {
|
|
1813
|
+
sorted[key] = obj[key];
|
|
1814
|
+
return sorted;
|
|
1815
|
+
}, {});
|
|
1772
1816
|
var arrayMove = (array, from, to) => {
|
|
1773
1817
|
array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
|
|
1774
1818
|
return array;
|
|
@@ -1904,6 +1948,22 @@ var removeUndefinedProperties = (object) => {
|
|
|
1904
1948
|
}
|
|
1905
1949
|
return object;
|
|
1906
1950
|
};
|
|
1951
|
+
|
|
1952
|
+
// packages/common/util/src/order-keys.ts
|
|
1953
|
+
var orderKeys = (obj, order) => {
|
|
1954
|
+
const ordered = {};
|
|
1955
|
+
for (const key of order) {
|
|
1956
|
+
if (key in obj) {
|
|
1957
|
+
ordered[key] = obj[key];
|
|
1958
|
+
}
|
|
1959
|
+
}
|
|
1960
|
+
for (const key in obj) {
|
|
1961
|
+
if (!(key in ordered)) {
|
|
1962
|
+
ordered[key] = obj[key];
|
|
1963
|
+
}
|
|
1964
|
+
}
|
|
1965
|
+
return ordered;
|
|
1966
|
+
};
|
|
1907
1967
|
export {
|
|
1908
1968
|
BitField,
|
|
1909
1969
|
Callback,
|
|
@@ -1983,6 +2043,7 @@ export {
|
|
|
1983
2043
|
nonNullable,
|
|
1984
2044
|
numericalValues,
|
|
1985
2045
|
omit,
|
|
2046
|
+
orderKeys,
|
|
1986
2047
|
pick,
|
|
1987
2048
|
pickBy,
|
|
1988
2049
|
randomInt,
|
|
@@ -1998,7 +2059,9 @@ export {
|
|
|
1998
2059
|
safeParseInt,
|
|
1999
2060
|
safeParseJson,
|
|
2000
2061
|
setDeep,
|
|
2062
|
+
sortKeys,
|
|
2001
2063
|
stringToArray,
|
|
2064
|
+
stringifyTree,
|
|
2002
2065
|
stripUndefinedValues,
|
|
2003
2066
|
sum,
|
|
2004
2067
|
throwUnhandledError,
|