@dxos/util 0.7.4 → 0.7.5-feature-compute.4d9d99a
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 +70 -17
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +72 -18
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +70 -17
- 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/disposition.d.ts +15 -0
- package/dist/types/src/disposition.d.ts.map +1 -0
- package/dist/types/src/disposition.test.d.ts +2 -0
- package/dist/types/src/disposition.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -1
- 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/safe-parse.d.ts +7 -0
- package/dist/types/src/safe-parse.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/disposition.test.ts +98 -0
- package/src/disposition.ts +30 -0
- package/src/index.ts +3 -1
- package/src/instance-id.ts +1 -1
- package/src/no-infer.ts +5 -0
- package/src/safe-parse.ts +32 -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,33 @@ 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
|
+
};
|
|
36
63
|
|
|
37
64
|
// packages/common/util/src/binder.ts
|
|
38
65
|
import util from "@dxos/node-std/util";
|
|
@@ -525,11 +552,14 @@ var setDeep = (obj, path, value) => {
|
|
|
525
552
|
});
|
|
526
553
|
let parent = obj;
|
|
527
554
|
for (const key of path.slice(0, -1)) {
|
|
528
|
-
parent[key]
|
|
555
|
+
if (parent[key] === void 0) {
|
|
556
|
+
const isArrayIndex = !isNaN(Number(key));
|
|
557
|
+
parent[key] = isArrayIndex ? [] : {};
|
|
558
|
+
}
|
|
529
559
|
parent = parent[key];
|
|
530
560
|
}
|
|
531
561
|
parent[path.at(-1)] = value;
|
|
532
|
-
return
|
|
562
|
+
return obj;
|
|
533
563
|
};
|
|
534
564
|
var getDeep = (obj, path) => {
|
|
535
565
|
let parent = obj;
|
|
@@ -539,6 +569,20 @@ var getDeep = (obj, path) => {
|
|
|
539
569
|
return parent;
|
|
540
570
|
};
|
|
541
571
|
|
|
572
|
+
// packages/common/util/src/disposition.ts
|
|
573
|
+
var byDisposition = (a, b) => {
|
|
574
|
+
const aDisposition = a.disposition ?? "static";
|
|
575
|
+
const bDisposition = b.disposition ?? "static";
|
|
576
|
+
if (aDisposition === bDisposition) {
|
|
577
|
+
return 0;
|
|
578
|
+
} else if (aDisposition === "hoist" || bDisposition === "fallback") {
|
|
579
|
+
return -1;
|
|
580
|
+
} else if (bDisposition === "hoist" || aDisposition === "fallback") {
|
|
581
|
+
return 1;
|
|
582
|
+
}
|
|
583
|
+
return 0;
|
|
584
|
+
};
|
|
585
|
+
|
|
542
586
|
// packages/common/util/src/entry.ts
|
|
543
587
|
var entry = (map, key) => new MapEntry(map, key);
|
|
544
588
|
var MapEntry = class {
|
|
@@ -944,7 +988,7 @@ var getDebugName = (instance) => {
|
|
|
944
988
|
return "null";
|
|
945
989
|
}
|
|
946
990
|
const prototype = Object.getPrototypeOf(instance);
|
|
947
|
-
return `${prototype.constructor
|
|
991
|
+
return `${prototype.constructor?.name ?? "Object"}#${getPrototypeSpecificInstanceId(instance)}`;
|
|
948
992
|
};
|
|
949
993
|
|
|
950
994
|
// packages/common/util/src/join-tables.ts
|
|
@@ -1401,7 +1445,22 @@ var safeInstanceof = (tag) => (target) => {
|
|
|
1401
1445
|
});
|
|
1402
1446
|
};
|
|
1403
1447
|
|
|
1404
|
-
// packages/common/util/src/safe-parse
|
|
1448
|
+
// packages/common/util/src/safe-parse.ts
|
|
1449
|
+
var safeParseInt = (value, defaultValue) => {
|
|
1450
|
+
try {
|
|
1451
|
+
const n = parseInt(value ?? "");
|
|
1452
|
+
return isNaN(n) ? defaultValue : n;
|
|
1453
|
+
} catch (err) {
|
|
1454
|
+
return defaultValue;
|
|
1455
|
+
}
|
|
1456
|
+
};
|
|
1457
|
+
var safeParseFloat = (str, defaultValue) => {
|
|
1458
|
+
try {
|
|
1459
|
+
return parseFloat(str);
|
|
1460
|
+
} catch {
|
|
1461
|
+
return defaultValue ?? 0;
|
|
1462
|
+
}
|
|
1463
|
+
};
|
|
1405
1464
|
var safeParseJson = (data, defaultValue) => {
|
|
1406
1465
|
if (data) {
|
|
1407
1466
|
try {
|
|
@@ -1788,7 +1847,6 @@ var stringifyTree = (node, ancestors = [], rows = []) => {
|
|
|
1788
1847
|
var isNotFalsy = (value) => !!value;
|
|
1789
1848
|
var nonNullable = (value) => value !== null && value !== void 0;
|
|
1790
1849
|
var isNotNullOrUndefined = (value) => value != null;
|
|
1791
|
-
var boolGuard = (value) => Boolean(value);
|
|
1792
1850
|
var doAsync = async (fn) => fn();
|
|
1793
1851
|
var getProviderValue = (provider, arg) => {
|
|
1794
1852
|
return typeof provider === "function" ? provider(arg) : provider;
|
|
@@ -1796,14 +1854,14 @@ var getProviderValue = (provider, arg) => {
|
|
|
1796
1854
|
var getAsyncProviderValue = (provider, arg) => {
|
|
1797
1855
|
return getProviderValue(provider, arg);
|
|
1798
1856
|
};
|
|
1799
|
-
var
|
|
1857
|
+
var stripUndefined = (obj) => {
|
|
1800
1858
|
if (typeof obj === "object") {
|
|
1801
1859
|
Object.keys(obj).forEach((key) => {
|
|
1802
1860
|
const value = obj[key];
|
|
1803
1861
|
if (value === void 0) {
|
|
1804
1862
|
delete obj[key];
|
|
1805
1863
|
} else if (value !== null && typeof value === "object") {
|
|
1806
|
-
|
|
1864
|
+
stripUndefined(value);
|
|
1807
1865
|
}
|
|
1808
1866
|
});
|
|
1809
1867
|
}
|
|
@@ -1817,14 +1875,6 @@ var arrayMove = (array, from, to) => {
|
|
|
1817
1875
|
array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
|
|
1818
1876
|
return array;
|
|
1819
1877
|
};
|
|
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
1878
|
|
|
1829
1879
|
// packages/common/util/src/weak.ts
|
|
1830
1880
|
var WeakDictionary = class {
|
|
@@ -1982,8 +2032,8 @@ export {
|
|
|
1982
2032
|
arrayToHex,
|
|
1983
2033
|
arrayToString,
|
|
1984
2034
|
arraysEqual,
|
|
1985
|
-
boolGuard,
|
|
1986
2035
|
bufferToArray,
|
|
2036
|
+
byDisposition,
|
|
1987
2037
|
chunkArray,
|
|
1988
2038
|
compareMulti,
|
|
1989
2039
|
compareObject,
|
|
@@ -2044,6 +2094,7 @@ export {
|
|
|
2044
2094
|
numericalValues,
|
|
2045
2095
|
omit,
|
|
2046
2096
|
orderKeys,
|
|
2097
|
+
partition,
|
|
2047
2098
|
pick,
|
|
2048
2099
|
pickBy,
|
|
2049
2100
|
randomInt,
|
|
@@ -2052,17 +2103,19 @@ export {
|
|
|
2052
2103
|
reduceGroupBy,
|
|
2053
2104
|
reduceSeries,
|
|
2054
2105
|
reduceSet,
|
|
2106
|
+
removeBy,
|
|
2055
2107
|
removeUndefinedProperties,
|
|
2056
2108
|
safariCheck,
|
|
2057
2109
|
safeAwaitAll,
|
|
2058
2110
|
safeInstanceof,
|
|
2111
|
+
safeParseFloat,
|
|
2059
2112
|
safeParseInt,
|
|
2060
2113
|
safeParseJson,
|
|
2061
2114
|
setDeep,
|
|
2062
2115
|
sortKeys,
|
|
2063
2116
|
stringToArray,
|
|
2064
2117
|
stringifyTree,
|
|
2065
|
-
|
|
2118
|
+
stripUndefined,
|
|
2066
2119
|
sum,
|
|
2067
2120
|
throwUnhandledError,
|
|
2068
2121
|
toEmoji,
|