@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.
- package/dist/lib/browser/index.mjs +58 -0
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +56 -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 +58 -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/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
|
@@ -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,
|