@dxos/util 0.6.14-staging.e15392e → 0.7.0
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 +93 -61
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +89 -57
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +93 -61
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/{assign.d.ts → deep.d.ts} +1 -1
- package/dist/types/src/deep.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +2 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/map-values.d.ts +2 -2
- package/dist/types/src/map-values.d.ts.map +1 -1
- package/dist/types/src/pick.d.ts +8 -2
- package/dist/types/src/pick.d.ts.map +1 -1
- package/dist/types/src/remove-undefined-keys.d.ts +2 -0
- package/dist/types/src/remove-undefined-keys.d.ts.map +1 -0
- package/package.json +6 -6
- package/src/index.ts +2 -1
- package/src/map-values.ts +29 -10
- package/src/pick.ts +28 -13
- package/src/remove-undefined-keys.ts +13 -0
- package/dist/types/src/assign.d.ts.map +0 -1
- /package/src/{assign.ts → deep.ts} +0 -0
|
@@ -34,35 +34,6 @@ var distinctBy = (array, selector) => {
|
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
// packages/common/util/src/assign.ts
|
|
38
|
-
import { invariant } from "@dxos/invariant";
|
|
39
|
-
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/util/src/assign.ts";
|
|
40
|
-
var setDeep = (obj, path, value) => {
|
|
41
|
-
invariant(path.length > 0, void 0, {
|
|
42
|
-
F: __dxlog_file,
|
|
43
|
-
L: 12,
|
|
44
|
-
S: void 0,
|
|
45
|
-
A: [
|
|
46
|
-
"path.length > 0",
|
|
47
|
-
""
|
|
48
|
-
]
|
|
49
|
-
});
|
|
50
|
-
let parent = obj;
|
|
51
|
-
for (const key of path.slice(0, -1)) {
|
|
52
|
-
parent[key] ??= {};
|
|
53
|
-
parent = parent[key];
|
|
54
|
-
}
|
|
55
|
-
parent[path.at(-1)] = value;
|
|
56
|
-
return parent[path.at(-1)];
|
|
57
|
-
};
|
|
58
|
-
var getDeep = (obj, path) => {
|
|
59
|
-
let parent = obj;
|
|
60
|
-
for (const key of path) {
|
|
61
|
-
parent = parent?.[key];
|
|
62
|
-
}
|
|
63
|
-
return parent;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
37
|
// packages/common/util/src/binder.ts
|
|
67
38
|
import util from "@dxos/node-std/util";
|
|
68
39
|
var createBinder = (obj) => ({
|
|
@@ -71,8 +42,8 @@ var createBinder = (obj) => ({
|
|
|
71
42
|
});
|
|
72
43
|
|
|
73
44
|
// packages/common/util/src/bitfield.ts
|
|
74
|
-
import { invariant
|
|
75
|
-
var
|
|
45
|
+
import { invariant } from "@dxos/invariant";
|
|
46
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/util/src/bitfield.ts";
|
|
76
47
|
var BitField = class _BitField {
|
|
77
48
|
static get(data, idx) {
|
|
78
49
|
const bit = data[idx >> 3] >> 7 - idx % 8 & 1;
|
|
@@ -104,8 +75,8 @@ var BitField = class _BitField {
|
|
|
104
75
|
return result;
|
|
105
76
|
}
|
|
106
77
|
static and(first, second) {
|
|
107
|
-
|
|
108
|
-
F:
|
|
78
|
+
invariant(first.length === second.length, "Bitfields must be of the same length", {
|
|
79
|
+
F: __dxlog_file,
|
|
109
80
|
L: 52,
|
|
110
81
|
S: this,
|
|
111
82
|
A: [
|
|
@@ -141,12 +112,12 @@ var BitField = class _BitField {
|
|
|
141
112
|
};
|
|
142
113
|
|
|
143
114
|
// packages/common/util/src/callback.ts
|
|
144
|
-
import { invariant as
|
|
145
|
-
var
|
|
115
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
116
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/util/src/callback.ts";
|
|
146
117
|
var Callback = class {
|
|
147
118
|
call(...args) {
|
|
148
|
-
|
|
149
|
-
F:
|
|
119
|
+
invariant2(this._callback, "Callback not set", {
|
|
120
|
+
F: __dxlog_file2,
|
|
150
121
|
L: 20,
|
|
151
122
|
S: this,
|
|
152
123
|
A: [
|
|
@@ -160,8 +131,8 @@ var Callback = class {
|
|
|
160
131
|
return this._callback?.(...args);
|
|
161
132
|
}
|
|
162
133
|
set(callback) {
|
|
163
|
-
|
|
164
|
-
F:
|
|
134
|
+
invariant2(!this._callback, "Callback already set", {
|
|
135
|
+
F: __dxlog_file2,
|
|
165
136
|
L: 29,
|
|
166
137
|
S: this,
|
|
167
138
|
A: [
|
|
@@ -259,14 +230,14 @@ var chunkArray = (array, size) => {
|
|
|
259
230
|
};
|
|
260
231
|
|
|
261
232
|
// packages/common/util/src/circular-buffer.ts
|
|
262
|
-
import { invariant as
|
|
263
|
-
var
|
|
233
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
234
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/common/util/src/circular-buffer.ts";
|
|
264
235
|
var CircularBuffer = class {
|
|
265
236
|
constructor(size) {
|
|
266
237
|
this._nextIndex = 0;
|
|
267
238
|
this._elementCount = 0;
|
|
268
|
-
|
|
269
|
-
F:
|
|
239
|
+
invariant3(size >= 1, void 0, {
|
|
240
|
+
F: __dxlog_file3,
|
|
270
241
|
L: 13,
|
|
271
242
|
S: this,
|
|
272
243
|
A: [
|
|
@@ -539,6 +510,35 @@ var DeferAsyncGuard = class {
|
|
|
539
510
|
// packages/common/util/src/defer-function.ts
|
|
540
511
|
var deferFunction = (fnProvider) => (...args) => fnProvider()(...args);
|
|
541
512
|
|
|
513
|
+
// packages/common/util/src/deep.ts
|
|
514
|
+
import { invariant as invariant4 } from "@dxos/invariant";
|
|
515
|
+
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/common/util/src/deep.ts";
|
|
516
|
+
var setDeep = (obj, path, value) => {
|
|
517
|
+
invariant4(path.length > 0, void 0, {
|
|
518
|
+
F: __dxlog_file4,
|
|
519
|
+
L: 12,
|
|
520
|
+
S: void 0,
|
|
521
|
+
A: [
|
|
522
|
+
"path.length > 0",
|
|
523
|
+
""
|
|
524
|
+
]
|
|
525
|
+
});
|
|
526
|
+
let parent = obj;
|
|
527
|
+
for (const key of path.slice(0, -1)) {
|
|
528
|
+
parent[key] ??= {};
|
|
529
|
+
parent = parent[key];
|
|
530
|
+
}
|
|
531
|
+
parent[path.at(-1)] = value;
|
|
532
|
+
return parent[path.at(-1)];
|
|
533
|
+
};
|
|
534
|
+
var getDeep = (obj, path) => {
|
|
535
|
+
let parent = obj;
|
|
536
|
+
for (const key of path) {
|
|
537
|
+
parent = parent?.[key];
|
|
538
|
+
}
|
|
539
|
+
return parent;
|
|
540
|
+
};
|
|
541
|
+
|
|
542
542
|
// packages/common/util/src/entry.ts
|
|
543
543
|
var entry = (map, key) => new MapEntry(map, key);
|
|
544
544
|
var MapEntry = class {
|
|
@@ -1107,14 +1107,14 @@ var DeepMapper = class {
|
|
|
1107
1107
|
const res = new Array(value.length);
|
|
1108
1108
|
this._cyclic.set(value, res);
|
|
1109
1109
|
for (let i = 0; i < value.length; i++) {
|
|
1110
|
-
res[i] = this.
|
|
1110
|
+
res[i] = this._map(value[i], i);
|
|
1111
1111
|
}
|
|
1112
1112
|
return res;
|
|
1113
1113
|
} else if (value !== null && typeof value === "object") {
|
|
1114
1114
|
const res = {};
|
|
1115
1115
|
this._cyclic.set(value, res);
|
|
1116
1116
|
for (const key in value) {
|
|
1117
|
-
res[key] = this.
|
|
1117
|
+
res[key] = this._map(value[key], key);
|
|
1118
1118
|
}
|
|
1119
1119
|
return res;
|
|
1120
1120
|
} else {
|
|
@@ -1123,10 +1123,13 @@ var DeepMapper = class {
|
|
|
1123
1123
|
};
|
|
1124
1124
|
}
|
|
1125
1125
|
map(value) {
|
|
1126
|
+
return this._map(value, void 0);
|
|
1127
|
+
}
|
|
1128
|
+
_map(value, key) {
|
|
1126
1129
|
if (this._cyclic.has(value)) {
|
|
1127
1130
|
return this._cyclic.get(value);
|
|
1128
1131
|
}
|
|
1129
|
-
return this._fn(value, this._recurse);
|
|
1132
|
+
return this._fn(value, this._recurse, key);
|
|
1130
1133
|
}
|
|
1131
1134
|
};
|
|
1132
1135
|
var deepMapValuesAsync = (value, fn) => {
|
|
@@ -1144,14 +1147,14 @@ var DeepMapperAsync = class {
|
|
|
1144
1147
|
const res = new Array(value.length);
|
|
1145
1148
|
this._cyclic.set(value, res);
|
|
1146
1149
|
for (let i = 0; i < value.length; i++) {
|
|
1147
|
-
res[i] = await this.
|
|
1150
|
+
res[i] = await this._map(value[i], i);
|
|
1148
1151
|
}
|
|
1149
1152
|
return res;
|
|
1150
1153
|
} else if (value !== null && typeof value === "object") {
|
|
1151
1154
|
const res = {};
|
|
1152
1155
|
this._cyclic.set(value, res);
|
|
1153
1156
|
for (const key in value) {
|
|
1154
|
-
res[key] = await this.
|
|
1157
|
+
res[key] = await this._map(value[key], key);
|
|
1155
1158
|
}
|
|
1156
1159
|
return res;
|
|
1157
1160
|
} else {
|
|
@@ -1160,10 +1163,13 @@ var DeepMapperAsync = class {
|
|
|
1160
1163
|
};
|
|
1161
1164
|
}
|
|
1162
1165
|
map(value) {
|
|
1166
|
+
return this._map(value, void 0);
|
|
1167
|
+
}
|
|
1168
|
+
_map(value, key) {
|
|
1163
1169
|
if (this._cyclic.has(value)) {
|
|
1164
1170
|
return this._cyclic.get(value);
|
|
1165
1171
|
}
|
|
1166
|
-
return this._fn(value, this._recurse);
|
|
1172
|
+
return this._fn(value, this._recurse, key);
|
|
1167
1173
|
}
|
|
1168
1174
|
};
|
|
1169
1175
|
|
|
@@ -1195,20 +1201,31 @@ var inferRecordOrder = (objectMap, order = []) => {
|
|
|
1195
1201
|
};
|
|
1196
1202
|
|
|
1197
1203
|
// packages/common/util/src/pick.ts
|
|
1198
|
-
var pick = (
|
|
1199
|
-
|
|
1200
|
-
obj
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1204
|
+
var pick = (obj, keys) => {
|
|
1205
|
+
return keys.reduce((result, key) => {
|
|
1206
|
+
if (obj && key in obj) {
|
|
1207
|
+
result[key] = obj[key];
|
|
1208
|
+
}
|
|
1209
|
+
return result;
|
|
1210
|
+
}, {});
|
|
1211
|
+
};
|
|
1212
|
+
var pickBy = (obj, predicate) => {
|
|
1213
|
+
const result = {};
|
|
1214
|
+
for (const key in obj) {
|
|
1215
|
+
if (predicate(obj[key])) {
|
|
1216
|
+
result[key] = obj[key];
|
|
1209
1217
|
}
|
|
1210
1218
|
}
|
|
1211
|
-
return
|
|
1219
|
+
return result;
|
|
1220
|
+
};
|
|
1221
|
+
var omit = (obj, keys) => {
|
|
1222
|
+
const result = {
|
|
1223
|
+
...obj
|
|
1224
|
+
};
|
|
1225
|
+
keys.forEach((key) => {
|
|
1226
|
+
delete result[key];
|
|
1227
|
+
});
|
|
1228
|
+
return result;
|
|
1212
1229
|
};
|
|
1213
1230
|
|
|
1214
1231
|
// packages/common/util/src/platform.ts
|
|
@@ -1874,6 +1891,19 @@ var arrayToHex = (buf) => {
|
|
|
1874
1891
|
}
|
|
1875
1892
|
return hexOctets.join("");
|
|
1876
1893
|
};
|
|
1894
|
+
|
|
1895
|
+
// packages/common/util/src/remove-undefined-keys.ts
|
|
1896
|
+
var removeUndefinedProperties = (object) => {
|
|
1897
|
+
for (const prop of [
|
|
1898
|
+
...Object.getOwnPropertyNames(object),
|
|
1899
|
+
...Object.getOwnPropertySymbols(object)
|
|
1900
|
+
]) {
|
|
1901
|
+
if (object[prop] === void 0) {
|
|
1902
|
+
delete object[prop];
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
return object;
|
|
1906
|
+
};
|
|
1877
1907
|
export {
|
|
1878
1908
|
BitField,
|
|
1879
1909
|
Callback,
|
|
@@ -1952,6 +1982,7 @@ export {
|
|
|
1952
1982
|
mobileAndTabletCheck,
|
|
1953
1983
|
nonNullable,
|
|
1954
1984
|
numericalValues,
|
|
1985
|
+
omit,
|
|
1955
1986
|
pick,
|
|
1956
1987
|
pickBy,
|
|
1957
1988
|
randomInt,
|
|
@@ -1960,6 +1991,7 @@ export {
|
|
|
1960
1991
|
reduceGroupBy,
|
|
1961
1992
|
reduceSeries,
|
|
1962
1993
|
reduceSet,
|
|
1994
|
+
removeUndefinedProperties,
|
|
1963
1995
|
safariCheck,
|
|
1964
1996
|
safeAwaitAll,
|
|
1965
1997
|
safeInstanceof,
|