@dxos/util 0.7.4 → 0.7.5-labs.071a3e2
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 +108 -46
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +106 -44
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +108 -46
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/array-to-hex.d.ts +1 -1
- package/dist/types/src/array-to-hex.d.ts.map +1 -1
- package/dist/types/src/array.d.ts +12 -0
- package/dist/types/src/array.d.ts.map +1 -1
- package/dist/types/src/bitfield.d.ts +1 -1
- package/dist/types/src/deep.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +6 -4
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/no-infer.d.ts +2 -0
- package/dist/types/src/no-infer.d.ts.map +1 -0
- package/dist/types/src/position.d.ts +15 -0
- package/dist/types/src/position.d.ts.map +1 -0
- package/dist/types/src/position.test.d.ts +2 -0
- package/dist/types/src/position.test.d.ts.map +1 -0
- package/dist/types/src/safe-parse.d.ts +7 -0
- package/dist/types/src/safe-parse.d.ts.map +1 -0
- package/dist/types/src/string.d.ts +5 -0
- package/dist/types/src/string.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +22 -4
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +6 -6
- package/src/array-to-hex.ts +1 -1
- package/src/array.test.ts +83 -1
- package/src/array.ts +29 -0
- package/src/deep.ts +5 -3
- package/src/index.ts +7 -5
- package/src/instance-id.ts +1 -1
- package/src/no-infer.ts +5 -0
- package/src/position.test.ts +98 -0
- package/src/position.ts +30 -0
- package/src/safe-parse.ts +32 -0
- package/src/string.ts +14 -0
- package/src/types.ts +31 -13
- package/dist/types/src/safe-parse-json.d.ts +0 -5
- package/dist/types/src/safe-parse-json.d.ts.map +0 -1
- package/src/safe-parse-json.ts +0 -15
|
@@ -33,6 +33,48 @@ var distinctBy = (array, selector) => {
|
|
|
33
33
|
return true;
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
|
+
var removeBy = (array, test) => {
|
|
37
|
+
const removed = [];
|
|
38
|
+
for (let i = array.length - 1; i >= 0; i--) {
|
|
39
|
+
if (test(array[i], i)) {
|
|
40
|
+
removed.push(...array.splice(i, 1));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return removed;
|
|
44
|
+
};
|
|
45
|
+
var partition = (array, guard) => {
|
|
46
|
+
return array.reduce(([accepted, rejected], item, index, array2) => guard(item, index, array2) ? [
|
|
47
|
+
[
|
|
48
|
+
...accepted,
|
|
49
|
+
item
|
|
50
|
+
],
|
|
51
|
+
rejected
|
|
52
|
+
] : [
|
|
53
|
+
accepted,
|
|
54
|
+
[
|
|
55
|
+
...rejected,
|
|
56
|
+
item
|
|
57
|
+
]
|
|
58
|
+
], [
|
|
59
|
+
[],
|
|
60
|
+
[]
|
|
61
|
+
]);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// packages/common/util/src/array-to-hex.ts
|
|
65
|
+
var byteToHex = [];
|
|
66
|
+
for (let n = 0; n <= 255; ++n) {
|
|
67
|
+
const hexOctet = n.toString(16).padStart(2, "0");
|
|
68
|
+
byteToHex.push(hexOctet);
|
|
69
|
+
}
|
|
70
|
+
var arrayToHex = (buf) => {
|
|
71
|
+
const buff = new Uint8Array(buf);
|
|
72
|
+
const hexOctets = [];
|
|
73
|
+
for (let i = 0; i < buff.length; ++i) {
|
|
74
|
+
hexOctets.push(byteToHex[buff[i]]);
|
|
75
|
+
}
|
|
76
|
+
return hexOctets.join("");
|
|
77
|
+
};
|
|
36
78
|
|
|
37
79
|
// packages/common/util/src/binder.ts
|
|
38
80
|
import util from "@dxos/node-std/util";
|
|
@@ -525,11 +567,14 @@ var setDeep = (obj, path, value) => {
|
|
|
525
567
|
});
|
|
526
568
|
let parent = obj;
|
|
527
569
|
for (const key of path.slice(0, -1)) {
|
|
528
|
-
parent[key]
|
|
570
|
+
if (parent[key] === void 0) {
|
|
571
|
+
const isArrayIndex = !isNaN(Number(key));
|
|
572
|
+
parent[key] = isArrayIndex ? [] : {};
|
|
573
|
+
}
|
|
529
574
|
parent = parent[key];
|
|
530
575
|
}
|
|
531
576
|
parent[path.at(-1)] = value;
|
|
532
|
-
return
|
|
577
|
+
return obj;
|
|
533
578
|
};
|
|
534
579
|
var getDeep = (obj, path) => {
|
|
535
580
|
let parent = obj;
|
|
@@ -944,7 +989,7 @@ var getDebugName = (instance) => {
|
|
|
944
989
|
return "null";
|
|
945
990
|
}
|
|
946
991
|
const prototype = Object.getPrototypeOf(instance);
|
|
947
|
-
return `${prototype.constructor
|
|
992
|
+
return `${prototype.constructor?.name ?? "Object"}#${getPrototypeSpecificInstanceId(instance)}`;
|
|
948
993
|
};
|
|
949
994
|
|
|
950
995
|
// packages/common/util/src/join-tables.ts
|
|
@@ -1200,6 +1245,22 @@ var inferRecordOrder = (objectMap, order = []) => {
|
|
|
1200
1245
|
}, {}), objectMap);
|
|
1201
1246
|
};
|
|
1202
1247
|
|
|
1248
|
+
// packages/common/util/src/order-keys.ts
|
|
1249
|
+
var orderKeys = (obj, order) => {
|
|
1250
|
+
const ordered = {};
|
|
1251
|
+
for (const key of order) {
|
|
1252
|
+
if (key in obj) {
|
|
1253
|
+
ordered[key] = obj[key];
|
|
1254
|
+
}
|
|
1255
|
+
}
|
|
1256
|
+
for (const key in obj) {
|
|
1257
|
+
if (!(key in ordered)) {
|
|
1258
|
+
ordered[key] = obj[key];
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1261
|
+
return ordered;
|
|
1262
|
+
};
|
|
1263
|
+
|
|
1203
1264
|
// packages/common/util/src/pick.ts
|
|
1204
1265
|
var pick = (obj, keys) => {
|
|
1205
1266
|
return keys.reduce((result, key) => {
|
|
@@ -1269,6 +1330,20 @@ var getHostPlatform = () => {
|
|
|
1269
1330
|
}
|
|
1270
1331
|
};
|
|
1271
1332
|
|
|
1333
|
+
// packages/common/util/src/position.ts
|
|
1334
|
+
var byPosition = (a, b) => {
|
|
1335
|
+
const aPosition = a.position ?? "static";
|
|
1336
|
+
const bPosition = b.position ?? "static";
|
|
1337
|
+
if (aPosition === bPosition) {
|
|
1338
|
+
return 0;
|
|
1339
|
+
} else if (aPosition === "hoist" || bPosition === "fallback") {
|
|
1340
|
+
return -1;
|
|
1341
|
+
} else if (bPosition === "hoist" || aPosition === "fallback") {
|
|
1342
|
+
return 1;
|
|
1343
|
+
}
|
|
1344
|
+
return 0;
|
|
1345
|
+
};
|
|
1346
|
+
|
|
1272
1347
|
// packages/common/util/src/random.ts
|
|
1273
1348
|
var randomInt = (max, min = 0) => {
|
|
1274
1349
|
min = Math.ceil(min);
|
|
@@ -1401,9 +1476,24 @@ var safeInstanceof = (tag) => (target) => {
|
|
|
1401
1476
|
});
|
|
1402
1477
|
};
|
|
1403
1478
|
|
|
1404
|
-
// packages/common/util/src/safe-parse
|
|
1479
|
+
// packages/common/util/src/safe-parse.ts
|
|
1480
|
+
var safeParseInt = (value, defaultValue) => {
|
|
1481
|
+
try {
|
|
1482
|
+
const n = parseInt(value ?? "");
|
|
1483
|
+
return isNaN(n) ? defaultValue : n;
|
|
1484
|
+
} catch (err) {
|
|
1485
|
+
return defaultValue;
|
|
1486
|
+
}
|
|
1487
|
+
};
|
|
1488
|
+
var safeParseFloat = (str, defaultValue) => {
|
|
1489
|
+
try {
|
|
1490
|
+
return parseFloat(str);
|
|
1491
|
+
} catch {
|
|
1492
|
+
return defaultValue ?? 0;
|
|
1493
|
+
}
|
|
1494
|
+
};
|
|
1405
1495
|
var safeParseJson = (data, defaultValue) => {
|
|
1406
|
-
if (data) {
|
|
1496
|
+
if (data && data.length > 0) {
|
|
1407
1497
|
try {
|
|
1408
1498
|
return JSON.parse(data);
|
|
1409
1499
|
} catch (err) {
|
|
@@ -1788,7 +1878,6 @@ var stringifyTree = (node, ancestors = [], rows = []) => {
|
|
|
1788
1878
|
var isNotFalsy = (value) => !!value;
|
|
1789
1879
|
var nonNullable = (value) => value !== null && value !== void 0;
|
|
1790
1880
|
var isNotNullOrUndefined = (value) => value != null;
|
|
1791
|
-
var boolGuard = (value) => Boolean(value);
|
|
1792
1881
|
var doAsync = async (fn) => fn();
|
|
1793
1882
|
var getProviderValue = (provider, arg) => {
|
|
1794
1883
|
return typeof provider === "function" ? provider(arg) : provider;
|
|
@@ -1796,14 +1885,14 @@ var getProviderValue = (provider, arg) => {
|
|
|
1796
1885
|
var getAsyncProviderValue = (provider, arg) => {
|
|
1797
1886
|
return getProviderValue(provider, arg);
|
|
1798
1887
|
};
|
|
1799
|
-
var
|
|
1888
|
+
var stripUndefined = (obj) => {
|
|
1800
1889
|
if (typeof obj === "object") {
|
|
1801
1890
|
Object.keys(obj).forEach((key) => {
|
|
1802
1891
|
const value = obj[key];
|
|
1803
1892
|
if (value === void 0) {
|
|
1804
1893
|
delete obj[key];
|
|
1805
1894
|
} else if (value !== null && typeof value === "object") {
|
|
1806
|
-
|
|
1895
|
+
stripUndefined(value);
|
|
1807
1896
|
}
|
|
1808
1897
|
});
|
|
1809
1898
|
}
|
|
@@ -1817,14 +1906,6 @@ var arrayMove = (array, from, to) => {
|
|
|
1817
1906
|
array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
|
|
1818
1907
|
return array;
|
|
1819
1908
|
};
|
|
1820
|
-
var safeParseInt = (value, defaultValue) => {
|
|
1821
|
-
try {
|
|
1822
|
-
const n = parseInt(value ?? "");
|
|
1823
|
-
return isNaN(n) ? defaultValue : n;
|
|
1824
|
-
} catch (err) {
|
|
1825
|
-
return defaultValue;
|
|
1826
|
-
}
|
|
1827
|
-
};
|
|
1828
1909
|
|
|
1829
1910
|
// packages/common/util/src/weak.ts
|
|
1830
1911
|
var WeakDictionary = class {
|
|
@@ -1921,19 +2002,12 @@ var WeakDictionary = class {
|
|
|
1921
2002
|
}
|
|
1922
2003
|
};
|
|
1923
2004
|
|
|
1924
|
-
// packages/common/util/src/
|
|
1925
|
-
var
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
byteToHex.push(hexOctet);
|
|
1929
|
-
}
|
|
1930
|
-
var arrayToHex = (buf) => {
|
|
1931
|
-
const buff = new Uint8Array(buf);
|
|
1932
|
-
const hexOctets = [];
|
|
1933
|
-
for (let i = 0; i < buff.length; ++i) {
|
|
1934
|
-
hexOctets.push(byteToHex[buff[i]]);
|
|
2005
|
+
// packages/common/util/src/string.ts
|
|
2006
|
+
var capitalize = (str) => {
|
|
2007
|
+
if (str.length === 0) {
|
|
2008
|
+
return "";
|
|
1935
2009
|
}
|
|
1936
|
-
return
|
|
2010
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
1937
2011
|
};
|
|
1938
2012
|
|
|
1939
2013
|
// packages/common/util/src/remove-undefined-keys.ts
|
|
@@ -1948,22 +2022,6 @@ var removeUndefinedProperties = (object) => {
|
|
|
1948
2022
|
}
|
|
1949
2023
|
return object;
|
|
1950
2024
|
};
|
|
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
|
-
};
|
|
1967
2025
|
export {
|
|
1968
2026
|
BitField,
|
|
1969
2027
|
Callback,
|
|
@@ -1982,8 +2040,9 @@ export {
|
|
|
1982
2040
|
arrayToHex,
|
|
1983
2041
|
arrayToString,
|
|
1984
2042
|
arraysEqual,
|
|
1985
|
-
boolGuard,
|
|
1986
2043
|
bufferToArray,
|
|
2044
|
+
byPosition,
|
|
2045
|
+
capitalize,
|
|
1987
2046
|
chunkArray,
|
|
1988
2047
|
compareMulti,
|
|
1989
2048
|
compareObject,
|
|
@@ -2044,6 +2103,7 @@ export {
|
|
|
2044
2103
|
numericalValues,
|
|
2045
2104
|
omit,
|
|
2046
2105
|
orderKeys,
|
|
2106
|
+
partition,
|
|
2047
2107
|
pick,
|
|
2048
2108
|
pickBy,
|
|
2049
2109
|
randomInt,
|
|
@@ -2052,17 +2112,19 @@ export {
|
|
|
2052
2112
|
reduceGroupBy,
|
|
2053
2113
|
reduceSeries,
|
|
2054
2114
|
reduceSet,
|
|
2115
|
+
removeBy,
|
|
2055
2116
|
removeUndefinedProperties,
|
|
2056
2117
|
safariCheck,
|
|
2057
2118
|
safeAwaitAll,
|
|
2058
2119
|
safeInstanceof,
|
|
2120
|
+
safeParseFloat,
|
|
2059
2121
|
safeParseInt,
|
|
2060
2122
|
safeParseJson,
|
|
2061
2123
|
setDeep,
|
|
2062
2124
|
sortKeys,
|
|
2063
2125
|
stringToArray,
|
|
2064
2126
|
stringifyTree,
|
|
2065
|
-
|
|
2127
|
+
stripUndefined,
|
|
2066
2128
|
sum,
|
|
2067
2129
|
throwUnhandledError,
|
|
2068
2130
|
toEmoji,
|